Autohotkey) Find WM_COMMAND parameter with Winspector
관련 게시물 :
If you do not already have Winspector,
Download & install Winspector from www.windows-spy.com/download/
Direct DL Link: Winspector_setup.exe ( 0.99 MiB )
Read this topic: Tutorial on posting messages to Windows
Minimize all windows and Start your program.
> In this example I am using Windows Media Player
Run Winspector. If you had chosen the default settings, then the path would be like
Close all the sub-windows with close buttons ( refer the Red arrows in above screenshot ) until
you have an empty window like below
Select View > Window List
Click on the Window tab to make sure you are viewing the Window List
Browse the List and find your app. You can easily identify it with the Icon.
> In this case it is Windows Media Player
Select the Window from the list / Right click and select Messages...
Close the Window List and maximize the Message Window
You will see a plain window like below.
> Take a look at the Caption bar, WMP Skin Host is the ahk_class
Right click on the Client-area
1) make sure Filter messages is checked. If not check it.
2) Select Edit Message Filter...
By default, Winspector will monitor all the Window Messages,
Whereas, we need only it to monitor WM_COMMAND.
So click Filter all to remove all the Messages.
Select WM_COMMAND from the left list, double-click it to move it to the right list.
Click Ok button.
Use alt-tab to move focus to Windows Media Player and perform the following:
1) Pull down Menu File > Open to open a media file
2) Pull down Play > Play/Pause to pause the media.
3) Pull down Play > Stop to stop the media
Use alt-tab to move focus back to Winspector.
If you find that the window caption no longer points to "your Message capture window" ... and shows
something like SysShadow instead.. keep closing these sub-windows until "your window" appears in
In this example it is WMP Skin host and will appear as follows:
The highlighted integers are the required wParam for WM_COMMAND
Open = 57601
Play/Pause Toggle = 18808
Stop = 18809
From AHK, to control Play/Pause of WMP, the command would be
PostMessage, 0x111, 18808,0,, ahk_class WMP Skin Host ; 0x111 is WM_COMMAND
Note: ahk_class for WMP will change for full mode/skin mode etc