Capture Window (Alt-Print Screen) of Context Menu
As everyone knows, sometimes developers have to document stuff. Or capture some stuff for filing bug reports.
My question is in MS Windows.
I'm trying to capture the context menu (the popup menu that appears after right-clicking an item) of several areas of an application. Pressing Alt to start the Alt+PrintScreen process closes the context menu.
(Only pressing PrintScreen helps, but it's painful to remove the non-window areas everytime).
BONUS: For capturing menus, Alt also closes the menu. However, if you use the Alt key to open the menu in the first place, it works:
- Press Alt+F (for opening the "File" menu), don't release Alt
- Press PrintScreen
You can't get the menu on its own, but you can get it to capture the parent window + context menu through a similar trick to the one you discovered with the main menu:
- Press & hold Shift
- Press F10
- Press and hold Alt (you're still holding down Shift)
- Press PrintScreen
- Release Shift + Alt
At least you don't have to install any software!
Using Windows 7, I used Ctrl and PrntScr at the same time.
That captured the entire screen. I then pasted (Ctrl + V) into an image editor, and cropped out everything except the context menu.
I do have the Windows High Contrast Acccessibility Mode disabled on my computer (Control Panel -> Ease of Access Center -> Make the computer easier to see -> uncheck "Turn on or off High Contrast ..."). I'm not sure if that was necessary or not.
Note: if your keyboard does not have PrntScr as a primary key (it might show in small blue font), then obviously you'll have to adjust for that (e.g. you may need to press Alt to get the PrntScr function, which means a total key sequence of Ctrl + Alt + PrntScr on your keyboard).
Just press Print Screen. It will capture whole screen. Then open paint to a new window, and press Ctrl+V to paste then crop.
There's actually a slightly easier way for those users of the Snipping Tool.. I pulled this from the Microsoft site itself. It's from this site: http://windows.microsoft.com/en-us/windows/use-snipping-tool-capture-screen-shots#1TC=windows-7
If you want to capture a snip of a menu, such as the Start menu, follow these steps:
Open Snipping Tool by clicking the Start button Picture of the Start button. In the search box, type Snipping Tool, and then, in the list of results, click Snipping Tool.
After you open Snipping Tool, press Esc, and then open the menu that you want to capture.
Click the arrow next to the New button, select Free-form Snip, Rectangular Snip, Window Snip, or Full-screen Snip from the list, and then select the area of your screen that you want to capture.
Try SnagIT. Works like a warm knife in butter! Also see this: https://stackoverflow.com/questions/26183/screenshot-taking-tools
You might give a try to FastStone Capture which is imho the best tool for this kind of bug filing/doc making stuff.
With this app, just right click on the mouse so as to show the contextual menu, hit print screen, et voilà!
Press Ctrl + Alt + Print Screen.
The Ctrl won't do anything, but it will prevent Alt for closing the context menu.
You could use Screenshot Captor (free).
You can do a Windows Object Capture to grab only the context menu (works with menu capturing as well), or just normal printscreen key to capture the whole screen.
[disclaimer -- i am the author of Screenshot Captor]
I tried with my favorite, free screen capture software: MWSnap. I activated a shortkey (Ctrl + Shift + Z) to window/menu capture function, and while it was in background, I called Firefox's context menu on this page and used the shortkey. MWSnap highlighted the menu and upon clicking, captured it flawlessly.
Probably works with other screen capture softwares. PrintScreen is so obsolete... :-P
(Bonus: no Paint to open, save in any common format (PNG, Jpeg) you want, autosave & auto-number of captures if you want, etc.)
You could try PicPick
- Select screen capture -> capture windows control
- Do whatever you want, like right click to show the context menu
- Now you can see the menu (which is a windows control) is the active control (surrounded by the red rectangle), press PrtSc key to capture it.
In Windows 7:
- Left-click the folder of the corresponding right-click menu you want to capture.
- Hold down shift and press F10.
- Tap the Print Screen button.
- If needed, use the Snipping Tool provided with your system to crop the image.
I can't get accepted answer to work (despite disabling high contrast) but this does it:
- right-click context menu (obviously), use arrow keys, if you want to highlight a particular entry(that way it doesn't get closed)
- Press Ctrl + PrintScreen
- You got the entire screen(s) into your clipboard, including context menu.
(the only difference is neither pressing F10 nor alt)
In response to the "BONUS" part of the OP, I sometimes just want to capture the contents of a "dropdown" from a menu (I may not be using to exact nomenclature). Now that the ribbon has replaced the menu in so many apps, to capture a "dropdown" from the ribbon (e.g. Excel, Home, Find & Select) - do the following:
- Click on Excel ribbon: Home, Find & Select ("dropdown" should appear)
- Move the mouse to the item that you want to be selected / highlighted
- Press & hold Ctrl key
- Press & hold Alt key
- Press PrintScreen key
- Release all keys
- Paste captured ribbon "dropdown" box where you want it
This also captures the highlight on the selected item.
This works for me on Win7, Office 2010.
As an update to this post from an answer to those with Windows 7+ from the Microsoft's answer site
If you use the built-in "Snipping Tool" (find it in your Start menu), you can take a snip of a menu:
- After you open Snipping Tool, press Esc to cancel the current snip, and then open the menu that you want to capture.
- Press Ctrl+PrtScn.
- Click the arrow next to the New button, select Free-form Snip, Rectangular Snip, Window Snip, or Full-screen Snip from the list, and then select the area of your screen that you want to capture.
there is much easier way, simply
- use snipping tool but with delay option (let's say 3 seconds)
- click on "new"
- do whatever you want (right click drop down menu, etc.)
- save the output.
20/20 can also capture a context menu http://www.sofotex.com/20/20-download_L230.html
As far as capturing context menus such as right-click menus or others for which pressing the Alt-key causes the menu to disappear, at least on Windows 7, check out: http://blogs.technet.com/b/migreene/archive/2007/05/12/how-to-use-the-snipping-tool-to-capture-context-menus.aspx, as well as the comment there by Uwa.
Basically, open up Snipping Tool (which should be built into Windows 7 and can be searched for using the Start menu) and click the Cancel button, but do not close out of Snipping Tool. Then open up your context menu and press (on a desktop keyboard) Ctrl+PrintScreen. This will switch back to Snipping Tool, where you can select options before you capture, but leave your context menu open.
With Snipping Tool, you can capture a full screen, window, rectangular, or free-form snip. If you just want to capture the context menu and not the parent window, the rectangular snip will likely suit your needs best.
Users on Linux or BSD can try scrot:
scrot -d 5 'contextmenuincluded.png' -e 'mv $f ~'
That will take a screenshot after five seconds and place it in your home directory. Make sure you click the context menu open before the 5 seconds are over. After that, edit the screenshot with your favorite image editor (for example GIMP) to only keep the context menu.
On Ubuntu you install scrot like this:
sudo apt-get install scrot
On Arch it goes like this:
sudo pacman -S scrot
I had tried a lot (more than 25 apps) that claim to save ScreenShot to a file.
They do it, but not well.
All you can try this simple step by step tests:
- Without any of them active, press Alt+Printscreen to take the snapshot
- Paste the clipboard image on a paint application (Paint.Net could be fine) as a layer
- With one of such apps (screenshot) active, press Alt+Printscreen to take the snapshot, so it saves to PNG or whatever looseless format wanted
- Now open saved file and take a look to the size on pixels, compare it with the size of what you got on steps 1 & 2, surprise: they do not match!
It is also worst when window border is not (i will use Delphi constant names) "bsSizeable", if it is "bsDialog", "bstoolWindow", etc, most of the applications that takes snapshops loose some part of the left and top part of the window; like if they where cropping.
So, i must ask:
Is there any application that can catch Alt+Printscreen to auto save the clipborad? Instead of them making their own screen shot!
In other words, when i use no tool i get the correct size / region pasted on clipboard, but when using applications to make screenshot easier, with some kind of windows i get more pixels around the windows border, or worst, lost part of the window.
All theese apps has that problem, and on them it is very easy to see it (there are a lot more with taht problem, but i put the most well known / most popular ones, in alfabethic order): Cropper 1.9.4, FSCaptureSetup53, GreenShot, Lightscreen, PrtScrAssistant, ScreenshotCaptor, ... etc.
By the way, why they are making the screen shot by them selves? When Alt+Printscreen is pressed (without any hook, no screen capture app running, etc), Windows put on the clipboard the correct region; but when any of such apps are running, the clipboard / file / etc get an incorrect region.
Please note i am talking about "standard" windows, no theme, all with rectangular border, no personal GUI, etc... windows standard forms.
Some apps, put an extra margin arround the rectangular border of the window. Other apps, cut part of the rectangular window, so some part is lost, so much, that first letter of the title caption (when no system menu icon is shown) is lost.
Wich one does work (save same region) as the same as Windows stardard Alt+Printscreen? I do not yet know of any one, all i tested fails at that point.
The only solution i known is having Paint.Net open and use:
- Alt+Tad to go to Paint.Net
- Ctrl+Alt+V to paste as new image
- Ctrl+S to save (it asks for path, name and type, etc)
From all apps i had tried, some of them do not auto save as PNG; most of the ones that create a PNG save wrong region (some with bigger region, some with insuficient region); allways talking about taking a snapshot of a standard rectangular window.
Tested on: Windows XP, 7, 8, 8.1 and 10
P.D.: If you are not a developer that can set BorderStyle and BorderIcons for your forms, just try with any app that show non resizable tool windows, dialogs, etc... it is really easy to see the difference between doing windo screen shot by windows and than paste the result versus any of theese apps that can auto save; remember you need to use Alt+PrintScreen (only the region of the active rectangular window wanted, no more, no less).
Found one working like a charm: free_clipboard_manager
Concept is somehow different: Copy the clipboard to a file each time the clipboard changes.
And it also saves TEXT copied to clipboard in a TXT file.
Since it saves what is copied to the clipboard, it saves the screenshot just as windows does it, including Alt-PrintScreen when window border is different, etc.
It is Portable, no install needed, and no elevation, etc, it runs in normal user account.
It creates a folder called clipboard where it store each thing copied to clipboard (tested only with image and text) to files, each time clipboard changes one file is created, a .TXT for text and a .PNG for images (can be changed in options to .JPG (90% and 80%).
I had tested it on Windows 10, so it also works on Windows 10.
I use a more easy key pressing sequence (for main menus, not for context menus):
- Press and hold Alt to show menu
- Use mouse or cursors to show menu as i want to snapshot/screenshoot
- Press and Hold Shift
- Press and release PrintScreen
- Now you can release Shift and Alt keys.
For context menus I use this sequence:
- Show context menu
- Use mouse or cursors to show menu as I want to snapshot/screenshoot
- Press and Hold Shift
- Press and release PrintScreen
- Now you can release Shift and Alt keys.
All tested on Windows 10.
If you want to easily print menus and submenus Easy step! Ctrl + Fn+ PrntScrn on W10 Paste in Paint or Wordpad
You may record the whole process with screen recording software DemoCreator. And you can add multiple callouts to your recording.
you don't need anything. Just hook the menu window .