Link to home
Start Free TrialLog in
Avatar of Robert Berke
Robert BerkeFlag for United States of America

asked on

"print" option missing when I right click on Myfile.pdf

When I right click on the file in explorer, I do not get the "Print" option in the context menu.

Same problem on two windows 7 64bit machines.

Windows 7 does not have the powerful file association techniques that Xp had (i.e. the ability to say pdf's should print with certain parameters.
 
All I can seem to do is tell windows to use adobe acrobat 10.
Avatar of John-Paul
John-Paul

From an earlier Experts-Exchange post


 ShellExView - Shell Extension Manager For Windows
http://www.nirsoft.net/utils/shexview.html

Sort by the MFGR column, and try disabling all NON MS extensions, and see if the problem is resolved. If it is, then you have the proces of elimination to play with....

If not, start disabling in larger chunks...... Then keep retrying....
ASKER CERTIFIED SOLUTION
Avatar of deroode
deroode
Flag of Netherlands image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Robert Berke

ASKER

deroode, THANKS with your help I fixed it.

But things are very weird, so perhaps you can give me some explanation.

After reading your post, I examined HKEY_CLASSES_ROOT\AcroExch.Document7\Shell and discovered that it already had a Print method, so I did not need to add it.



I then assigned 3 different apps as the "default".
#1 Acrobat 10, #2 pdf converter 5, and #3 foxit reader 5.1.

No matter which program was the default, I ALWAYS ALWAYS ALWAYS found "foxit reader document" in HKEY_CLASSES_ROOT\.pdf.


Despite having the WRONG value in .pdf, Windows invoked the correct program when I opened a document !!! So windows must use a different "magic key" to decide how to Open a document.

This was so weird, that I rotated through all 3 apps several times before convincing myself that I was not crazy.

Even weirder, the Print method appeared in the context menu ONLY When pdf converter was the default.


I then zapped HKEY_CLASSES_ROOT\.pdf to contain "AcroExch.Document.7" and now when I rotate through the 3 apps, only Foxit lacks a Print method on context menu. But, HKEY_CLASSES_ROOT\.pdf still NEVER CHANGES, no matter which application is assigned.

I did a little searching for the magic key.  I thought it might be HKEY_CURRENT_uSER\software\classes\.pdf which also has AcroExch.Document.7.  Alas, that also does not change when I rotate through the associations.

In my opinion, there is clearly a windows 7 bug at work here, at least on my machine. I don't have time to do any more searching, so I am leaving it to deroode or perhaps another expert to explain things.



I will close the problem in a day and will award most of the points to deroode.
Windows has several methods to determine how to open a particular file. The keys in HKEY_CLASSES_ROOT are created when installing an application that "owns" a particular extension. When later a user decides that he wants a different program to open a file extension a key is made in
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts

And as you pointed out yourself the HKEY_CURRENT_USER\software\classes\ key also exists, and overrides the HKEY_CLASSES_ROOT for the current user.

N.B. HKEY_CLASSES_ROOT is actually a pointer to HKEY_LOCAL_MACHINE\software\classes\

I guess that when changing the file association for .pdf files the FileExts key changes, but i'm not sure how the "Print" command fits in there. You could check the HKEY_CURRENT_USER\software\classes\AcroExch.Document7 key to see if the print command disappears when the default "Open" program to Foxit. (it doesn't on my workstation..)
Thanks for the  good suggestions.  I will probably play with them sometime in the next few weeks.
I have the same problem here, but my HKEY_CLASSES_ROOT\AcroExch.Document  contains the correct print entry, but the user did not see it in context menu.

Any ideas how to get it back?
Please start a new question instead of reviving an old thread..