Copy link to clipboard
Copied
I have a couple of Adobe Acrobat's plug-ins working perfectly fine in a few computers with Adobea Acroat DC installed. However, in one of the computers the "plug-ins" menu does not appear in the toolbar.
Under "Help->>Generate System Report" the plug-ins are listed under "Installed Plug-ins".
How do I make sure the "Plug-ins" menu is activated?
Thanks
Copy link to clipboard
Copied
HI,
Can you check the simple stuff first, is this checkbox checked:
Preferences -> General
Copy link to clipboard
Copied
Hi BarlaaDC,
thanks for your response.
the checkbox is not checked.
Copy link to clipboard
Copied
Is this problem in an M1 Mac conputer?
Copy link to clipboard
Copied
No. This issue is happening in a windows 10 computer.
Copy link to clipboard
Copied
Ok, next... on Windows, Acrobat Pro comes in both "32-bit" and "64-bit" versions. Check and compare this on all systems. Plug-ins are not interchangeable, they will be either 32-bit or 64-bit.
Copy link to clipboard
Copied
both are 32-bit versions
Copy link to clipboard
Copied
by the way the plug-in shows in the Installed Plug-ins report.
Copy link to clipboard
Copied
But I still not able to find the plug-in in the menu bar.
Copy link to clipboard
Copied
Dear all,
Can anybody help me?. I don't know what the problem is
the plug-ins load and work perfectly fine in one computers, but not to others. same OS sane bit size.
Is there any library that need to install in the new computers?
I tried everything to solve this issue but I do not see a solution.
thanks in advance for your help.
Oscar
Copy link to clipboard
Copied
Hi,
Silly question: Do the plug-ins add the plug-in menu them selves, can you share the code as to how you add the plug-in menu and how you add your menuitems to it?
Copy link to clipboard
Copied
Here is the code
AVMenubar menubar = AVAppGetMenubar ();
AVMenuItem menuItem;
AVMenu commandMenu = NULL;
// Set up our command menuitem.
commandMenu = AVMenubarAcquireMenuByName (menubar, "Plug-Ins");
if (commandMenu == NULL) {
commandMenu = AVMenuNew ("Plug-Ins", "OOPS:Plug-Ins", gExtensionID);
}
if (commandMenu) {
// Add command menu item to plug-in menu.
menuItem = AVMenuItemNew ("&MarkedPDFReport", "OOPS:MarkedPDFReport", (AVMenu)NULL, false, NO_SHORTCUT, 0, NULL, gExtensionID);
AVMenuItemSetExecuteProc (menuItem,
ASCallbackCreateProto(AVExecuteProc, &MarkedPDFReportCommand), NULL);
AVMenuItemSetComputeEnabledProc (menuItem,
ASCallbackCreateProto(AVComputeEnabledProc, &MarkedPDFReportIsEnabled), NULL);
AVMenuAddMenuItem (commandMenu, menuItem, APPEND_MENUITEM);
AVMenubarAddMenu (menubar, commandMenu, APPEND_MENU);
// Release the menu resource.
AVMenuRelease (commandMenu);
} else {
AVAlertNote ("Unable to open plug-ins");
}
Copy link to clipboard
Copied
Ah, I think I see the problem. The Plug-ins menu is a shared resource, and yet you are making it in a way that is unique to your plug-in (is OOPS really your company prefix? Cool!)
You must access the Plug-ins menu using AVMenubarAcquireMenuByName with the same name you will find in other plug-ins that add to a Plug-ins menu. You never try to create it; Acrobat makes it visible if you add to it. Otherwise the results are going to be unpredictable - and may well depend on plug-in load order, which you cannot control.
Copy link to clipboard
Copied
Yes, I registered OOPS a few years ago with acrobat 🙂
I still not able to load the plug-ins in some computers. Same version of acrobat, same operating system, same bit size.
I modified the access to the menu code. So it is the simpliest version and it works perfectly fine in some computer and not in others 😞
AVMenubar menubar = AVAppGetMenubar();
AVMenu volatile commonMenu = NULL;
AVMenuItem menuItem = NULL;
if (!menubar){
AVAlertNote ("ERROR !menubar");
return false;
}
DURING
// Create our menuitem
menuItem = AVMenuItemNew ("MarkedPDFReport", "OOPS:MarkedPDFReport", NULL, false, NO_SHORTCUT, 0, NULL, gExtensionID);
AVMenuItemSetExecuteProc (menuItem, ASCallbackCreateProto(AVExecuteProc, MarkedPDFReportCommand), NULL);
AVMenuItemSetComputeEnabledProc (menuItem,
ASCallbackCreateProto(AVComputeEnabledProc, MarkedPDFReportIsEnabled), (void *)pdPermEdit);
commonMenu = AVMenubarAcquireMenuByName (menubar, "OOPS:Acrobat_SDK");
// if "Acrobat SDK" menu is not existing, create one.
if (!commonMenu) {
commonMenu = AVMenuNew ("Acrobat SDK", "OOPS:Acrobat_SDK", gExtensionID);
AVMenubarAddMenu(menubar, commonMenu, APPEND_MENU);
}
AVMenuAddMenuItem(commonMenu, menuItem, APPEND_MENUITEM);
AVMenuRelease(commonMenu);
HANDLER
AVAlertNote ("ERROR handler");
if (commonMenu)
AVMenuRelease (commonMenu);
return false;
END_HANDLER
return true;
Copy link to clipboard
Copied
Please try the fix I suggested, instead of a completely different one.
Copy link to clipboard
Copied
I tried your suggestion. and it does not work.
by the way when a plug-in does not load none of them do. I have 4 plug-ins working fine in one computer but 4 plug-ins that do not load in another.
Copy link to clipboard
Copied
Please show the complete non working code with the suggested change.
Copy link to clipboard
Copied
Here is the code, that works some computers and does not work some others.
AVMenubar menubar = AVAppGetMenubar ();
AVMenuItem menuItem;
// Set up our command menuitem.
AVMenu commandMenu = AVMenubarAcquireMenuByName (menubar, "Extensions");
if (commandMenu) {
// Add command menu item to plug-in menu.
menuItem = AVMenuItemNew ("&MarkedPDFReport", "OOPS:MarkedPDFReport", (AVMenu)NULL, false, NO_SHORTCUT, 0, NULL, gExtensionID);
AVMenuItemSetExecuteProc (menuItem, ASCallbackCreateProto(AVExecuteProc, &MarkedPDFReportCommand), NULL);
AVMenuItemSetComputeEnabledProc (menuItem, ASCallbackCreateProto(AVComputeEnabledProc, &MarkedPDFReportIsEnabled), NULL);
AVMenuAddMenuItem (commandMenu, menuItem, APPEND_MENUITEM);
// Release the menu resource.
AVMenuRelease (commandMenu);
}
//Set up our help menuitem.
AVMenu helpMenu = AVMenubarAcquireMenuByName (menubar, "UsingExtensions");
if (helpMenu) {
menuItem = AVMenuItemNew ("MarkedPDFReport", "OOPS:MarkedPDFReport", (AVMenu)NULL, false, NO_SHORTCUT, 0, NULL, gExtensionID);
AVMenuItemSetExecuteProc (menuItem, ASCallbackCreateProto(AVExecuteProc, &MarkedPDFReportHelp), NULL);
AVMenuAddMenuItem (helpMenu, menuItem, APPEND_MENUITEM);
AVMenuRelease (helpMenu);
}
// Set up our "About" menuitem. Its text does not include "About" because the viewer provides that.
AVMenu aboutMenu = AVMenubarAcquireMenuByName (menubar, "AboutExtensions");
if (aboutMenu) {
menuItem = AVMenuItemNew ("MarkedPDFReport...", "OOPS:AboutMarkedPDFReport", (AVMenu)NULL, false, NO_SHORTCUT, 0, NULL, gExtensionID);
AVMenuItemSetExecuteProc (menuItem, ASCallbackCreateProto(AVExecuteProc, &MarkedPDFReportAbout), NULL);
AVMenuAddMenuItem (aboutMenu, menuItem, APPEND_MENUITEM);
AVMenuRelease (aboutMenu);
}
// Set up our "Preferences" menuitem.
// The menuitem text does not include "Preferences", since the viewer provides that.
// The text also does not include "Plug-In".
AVMenu prefsMenu = AVMenubarAcquireMenuByName (menubar, "Prefs");
if (prefsMenu) {
menuItem = AVMenuItemNew ("MarkedPDFReport...", "OOPS:MarkedPDFReportPrefs", (AVMenu)NULL, false, NO_SHORTCUT, 0, NULL, gExtensionID);
AVMenuItemSetExecuteProc (menuItem, ASCallbackCreateProto(AVExecuteProc, &MarkedPDFReportPrefs), NULL);
AVMenuAddMenuItem (prefsMenu, menuItem, APPEND_MENUITEM);
AVMenuRelease (prefsMenu);
}
AVToolBar toolBar = AVAppGetToolBar ();
AVToolButton toolButton, toolsSeparator;
// Set up our toolbutton
toolsSeparator = AVToolBarGetButtonByName (toolBar, ASAtomFromString("endToolsGroup"));
toolButton = AVToolButtonNew (ASAtomFromString("OOPS:MarkedPDFReport"), GetButtonIcon(), true, false);
// Toolbutton internal by default.
//AVToolButtonSetExternal (toolButton, TOOLBUTTON_EXTERNAL);
AVToolBarAddButton(toolBar, toolButton, true, toolsSeparator);
AVToolButtonSetExecuteProc (toolButton,
ASCallbackCreateProto(AVExecuteProc, &MarkedPDFReportCommand), NULL);
AVToolButtonSetComputeEnabledProc (toolButton,
ASCallbackCreateProto(AVComputeEnabledProc, &MarkedPDFReportIsEnabled), NULL);
AVToolButtonSetHelpText (toolButton, "Activates MarkedPDFReport command");
// Initialize our custom tool
InitializeMarkedPDFReportTool ();
// Set up our toolbutton
toolsSeparator = AVToolBarGetButtonByName(toolBar, ASAtomFromString("endToolsGroup"));
toolButton = AVToolButtonNew(ASAtomFromString("OOPS:MarkedPDFReportToolBtn"), GetMarkedPDFReportToolIcon(), true, false);
AVToolBarAddButton (toolBar, toolButton, true, toolsSeparator);
AVToolButtonSetExecuteProc (toolButton,
ASCallbackCreateProto(AVExecuteProc, &MarkedPDFReportToolCommand), NULL);
AVToolButtonSetComputeEnabledProc (toolButton,
ASCallbackCreateProto(AVComputeEnabledProc, &MarkedPDFReportToolIsEnabled), NULL);
AVToolButtonSetComputeMarkedProc (toolButton,
ASCallbackCreateProto(AVComputeMarkedProc, &MarkedPDFReportToolIsMarked), NULL);
AVToolButtonSetHelpText (toolButton, "Activates MarkedPDFReport tool");
return true;
Copy link to clipboard
Copied
Ok, that should work. I suggest
1. You add debugging code to indicate whether if (commandMenu) returns true or false, so you know whether it is creating the menu items at all.
2. I think you are installing multiple menus? And if so I suspect you are using the wrong name in some of them. Try installing ONLY the problem plug-in and see.
I speculate that Adobe do not allow two top level menus with the same text (Plug-ins) and different codes (Extensions, OOPS:Plug-ins). This could have been a recent and undocumented change.
Copy link to clipboard
Copied
Hi,
I just realized that in the machines the plug-ins do not work.
The Handshake and PluginInit functions do not run.
any idea?
Copy link to clipboard
Copied
Hi it is me again.
Can anybody help me? what am I missing. on these machines. Any dependency library? security setting?
thanks
Oscar
Copy link to clipboard
Copied
Solved.
the issue had nothing to do with the code.
it seems that some dependencies were missing on thse computers.
I am not sure yet which one. I reinstalled:
Microsoft .net Framework v4.5.1 (C01035B4)
Microsoft InfoPath 2013 for Office 365 2016 v1.0
Java Runtime Smart Installation v1.8
something in one of those were affecting the loading of the plug-ins.
thanks for all your help.
sorry I make you spend so much time searching for nothing.
Oscar