Project Texture from Camera (like Window, but not from Viewport) I have a Window projected texture and a fixed camera. The texture was made in another program based on a render of the scene. As long as I am looking through the camera, the texture is lined up properly. But if I switch to the viewport camera, then the texture is projected from the viewport, and so looks wrong.

Is there a way to do something like Window projection, but have it always be projected from the Active Camera (or object I can place in the same location), and not the viewport? Preferably a node based solution. I understand that the UV project modifier might work for this, but then I have to maintain that on every object in the project rather than just adding some nodes to a group.
This setup projects texture from camera and adjusts scale based on Z depth.

Works only in camera/perspective mode due to Z-depth socket used in calculations, viewport zooming doesn't affect texture scaling also due to Z-depth.