Exit command working for Foxit Phantom but not Foxit Reader - exit

In a pdf file, in the code behind a button, I have
Run a JavaScript (change some form fields)
Execute a menu item, File->Save
Execute a menu item, File->Exit
The exit command works fine in Phantom PDF (older version, 2.2), but not in Foxit Reader (8.3, pretty recent version). Just nothing is happening there.
I also checked with an old Foxit Reader version, 3.3, and it is working as expected there.
I tried "Security" and "Trust Manager" settings, those don't improve the situation, though.
I want to close the reader when hitting the button.

This option (both creating and executing) seems to have been removed in new versions of Foxit Reader and Foxit PhantomPDF.
Further to that, although Adobe Acrobat shows "Execute a menu item, File->Exit" as being an available option, it doesn't actually exit the application, just shows you the messagebox below and if you press OK it closes the PDF but leaves Adobe Acrobat open.
It's actually a good thing this doesn't work anymore, the document creator should not be able to trigger the viewing application on the end-users machine to quit. Trigger closing of document maybe, but definitely not the viewing application.

Related

Windows 10 - Taskbar - Add item to context menu for each program

I need a context menu entry for each program in the taskbar. Want to add an entry which immediately terminates (UNIX/Linux-like signal SIGKILL) the process. There a lot of questions on this site, how it's done for the explorer or desktop. But is it also possible to add such an option to the context menu of the taskbar?
To clarify the question, according to my comments:
The current problem:
I have a program (not Firefox) which randomly crashes. The program is in fullscreen mode. But if I want to close the window of the program with Exit window, it takes a long time that Windows kill the program. When I try to open the Task Manager the program immediately grabs the user input and I have no chance to interact with the Task Manager. So my solution was to add a context menu item in the taskbar to quit the task of the program. According to a user comment, I test the option "Always on top" in the Task Manager. Didn't know that. But I haven't tried it yet. I'm also interested for further projects, if there is a function in WINAPI or Windows Registry to add an item.
To avoid down-votes:
I'm not interested to hack Windows or the application. Solutions with code injection are taboo for me. Want a clean solution, if even possible. I want improve my Windows version. Adding also some additional information (process information) in the context menu.
Have currently found this (Registering shell extension handlers).
Has anybody used this before? I think it's sound promising.
There is no API to extend this menu like that. Applications can customize the top of the menu with ICustomDestinationList but there is no way to add entries for all applications.
For a personal use project, you could inject a .dll in the taskbar instance of Explorer.exe and add your item after figuring out the address of the function where the menu is created. This address can of course change after you upgrade Windows so it is not a very generic solution. Using the public symbols might help but you still have to expect it to break from time to time when Microsoft changes part of their taskbar code.
You don't need to change code in explorer.exe, because you can close a program by doing the keyboard shortcut: Alt + F4.

Delete the automatic popover shown on Gtk Entry

I recently migrated my source code to Gtkmm 3.20. In this versión of gtk appears an automatic popover.
How I can remove this functionality? See image.
This is a new feature of GTK+ 3.20: if the GtkEntry sees touch events, which happens if you use a touchscreen and tap the entry, then it will automatically show that popover, which contains touch-friendly editing buttons (Paste is what you see there; I presume Cut, Copy, and Select All would be available on a non-password GtkEntry as well).
There is no way to turn that off, however it should only show up when you touch the GtkEntry; if you use keyboard or mouse navigation, it shouldn't show up. If it still does, you can report that as a bug to the GNOME Bugzilla.
It seems you are implementing a PIN entry field. I agree that in that case the popover isn't needed. You should state that case directly to the GTK+ developers then; maybe they will provide an API to turn the popover off (but it will not be part of GTK+ 3.20).

Paste From QT Window to Another Application Input Widget

I am very new to C++ programming and the bulk of my program will be using the QT libraries. However, there is one part where I believe I will need to use Win32.
The scenario I want to code for is as follows:
I will have a QT application running. I want to be able to take some text which has been typed into a TextBox on the QT Window and paste that text into a TextBox in another application e.g. the address bar of Chrome, the address bar of Windows Explorer.
I want to be able to do that as a response to a button click on the QT Window. So, it would all happen in 3 steps. For example:
User types text into QT Window;
User places cursor in address bar of Chrome (Browser);
User clicks button on Window which pastes text into address bar of Chrome.
A nudge in the right direction would be most appreciated.
Edit - Additional Info
The application I’m building is a self-set assignment. I want to build a clipboard manager, similar to this old Delphi application http://www.joejoesoft.com/vcms/97/ . It will run in the system tray, in a minimised state.
The user, will put their focus into a text input in some application
which is running on their Windows machine e.g. Notepad.
Then, they will hit a hot key combination which will open a form (my QT Window.
The application will have been collecting clips as the user presses Ctrl-C (or by right-clicking) and those will be listed in that QT Form (just like the app in the link above).
The user then clicks on the particular item that they want paste and it will be pasted into the original input that they had put the cursor into.
Further Edit - further info
I'll break step 4 into a couple of sub-steps as it is causing confusion:
The user then clicks on the particular item that they want paste
Focus changes from QT Window back to the window of the other Win32 application which originally had focus
Content is pasted into the input control which now has the focus
I pretty much know how I can gather up items when the user copies things. But I have no idea how I will paste from my application to the target application.
Cheers

Open web link in Acrobat OCX

I have a MFC-application that uses the Acrobat OCX to display a PDF inside a CView.
When the PDF contains a link, the control changes the mouse cursor when hovering over it, but when I click it nothing happens.
When I use the Acrobat Reader application, it asks me if I want to open the link. So I guess there is some kind of notification message emitting from the control. It would be ok if I just get the address of the link, then I could open it myself.
Active X's link only works to the named destinations inside the same PDF file.
Developing Applications Using Interapplication Communication
You can also treat a PDF document as an ActiveX® document and implement convenient PDF browser controls through the AcroPDF object. This object provides you with the ability to load a file, move to various pages within a file, and specify various display and print options. A detailed description of its usage is provided in “Summary of OLE objects and methods” on page 30.
You probably have to use another OLE autoimation method, such as rendering PDF documents.
Developing Applications Using Interapplication Communication - on OLE capabilities in Acrobat section
You can render PDF documents on the screen in two ways:
●Use an interface similar to the Acrobat user interface.
In this approach, use the AVDoc object’s OpenInWindowEx method to open a PDF file in your application’s window. The window has vertical and horizontal scroll bars, and has buttons on the window’s perimeter for setting the zoom factor. Users interacting with this type of window find its operation similar to that of working in Acrobat. For example, links are active and the window can display any text annotation on a page.
The ActiveView sample in the Guide to SDK Samples shows how you can use this approach.
However, before you start this method, I recommend to download Acrobat SDK and excute some sample program whether link event is occured normally. Acrobat SDK have many useful vc++, c# sample program.

How do I test modal dialogs with Selenium?

I'm getting started with Selenium IDE and trying to test a webapp that's full of modal dialogs (window.showModalDialog).
Recording the test seems to work (except there's nothing in the log when the dialog pops up) but they don't play back properly. The script actually opens the window (triggered by a button click), but then just waits indefinitely.
Any suggestions?
From the Selenium FAQ, Selenium apparently works with some types of dialogs but not others:
I can't interact with a popup dialog.
My test stops in its tracks!
You can, but only if the dialog is an
alert or confirmation dialog. Other
special dialogs can't be dismissed by
javascript, and thus currently cannot
be interacted with. These include the
"Save File", "Remember this Password"
(Firefox), and modal (IE) dialogs.
When they appear, Selenium can only
wring its hands in despair.
To solve this issue, you may use a
workaround (if one exists); otherwise
you may have to exclude the test from
your automated corpus. For the "Save
File" dialog in Firefox, a custom
template may be specified when running
via the RC that will always cause the
file to be downloaded to a specified
location, without querying the user
(see
http://forums.openqa.org/thread.jspa?messageID=31350).
The "Remember this Password" dialog
should not appear again after you've
chosen to remember it. Currently there
is not much that can be done about IE
modal dialogs.
I seem to remember someone working around this with an AutoHotKey script that dismissed the dialog.
I have been using Selenium IDE to test jQuery modals for quite sometime now, I never faced any problem. Here are the things I do to ensure that the test executes properly on playback:
execute the script at the slowest possible speed
when the modal opens, I use the waitForElementPresent command to verify the presence of at least one of the constituent elements on the page; argument being, if one element loads properly, it is safe to assume that all the elements and hence the modal window loaded up properly.
Hope this helps. If you want further help, you can share the code with me alongwith the error in execution that IDE throws out to you.
Modal window hacked:)
http://seleniumdeal.blogspot.com/2009/01/handling-modal-window-with-selenium.html
This is how I handle pop up alert in Selenium IDE
right click on the element (in this case your pop up window) there are some command you can choose. There's also a show all available commands whiche might be a help.
You should use AssertElementPreset and I guess the best locator in this case is CSS. So you can choose AssertElementPresent.
Or
you can use two command on Selenium IDE
selectWindow | null
verifyElementPresent | css=div.content
Hope this helps!