Code: Select all
q:: ;get PROCESS_BASIC_INFORMATION (tested on Windows 7)
Loop, 2
{
;if A_Is64bitOS
; DllCall("kernel32\Wow64DisableWow64FsRedirection", PtrP,0)
WinGet, hWnd, ID, ahk_class Notepad
WinGet, vPID, PID, % "ahk_id " hWnd
vPIs64 := (A_PtrSize=8)
vSize := vPIs64?48:24
vPtrType := vPIs64?"Int64":"Int"
vUPtrType := vPIs64?"UInt64":"UInt"
;PROCESS_QUERY_LIMITED_INFORMATION := 0x1000
;PROCESS_QUERY_INFORMATION := 0x400
;PROCESS_VM_READ := 0x10
;PROCESS_ALL_ACCESS := 0x1F0FFF ;(check)
;hProc := DllCall("OpenProcess", UInt,0x1F0FFF, Int,0, Ptr,vPID)
hProc := DllCall("OpenProcess", UInt,0x410, Int,0, Ptr,vPID)
;data only retrieved on AHK x64 if this MsgBox line is used
;data retrieved on AHK x32 with/without this MsgBox line
if (A_Index = 1)
MsgBox, % vPIs64 " " vSize " " vPtrType
;ProcessBasicInformation := 0
VarSetCapacity(PROCESS_BASIC_INFORMATION, vSize, 0)
DllCall("Ntdll.dll\NtQueryInformationProcess", Ptr,hProc, Int,0, Ptr,&PROCESS_BASIC_INFORMATION, UInt,vSize)
vOutput1 := NumGet(&PROCESS_BASIC_INFORMATION, 0, vPtrType) ;ExitStatus
vOutput2 := NumGet(&PROCESS_BASIC_INFORMATION, vPIs64?8:4, vPtrType) ;PebBaseAddress
vOutput3 := NumGet(&PROCESS_BASIC_INFORMATION, vPIs64?16:8, vPtrType) ;AffinityMask
vOutput4 := NumGet(&PROCESS_BASIC_INFORMATION, vPIs64?24:12, vPtrType) ;BasePriority
vOutput5 := "(" vPID ") " NumGet(&PROCESS_BASIC_INFORMATION, vPIs64?32:16, vUPtrType) ;UniqueProcessId
vOutput6 := NumGet(&PROCESS_BASIC_INFORMATION, vPIs64?40:20, vPtrType) ;InheritedFromUniqueProcessId
vOutput := ""
Loop, 6
vOutput .= vOutput%A_Index% "`r`n"
MsgBox, % vOutput
DllCall("CloseHandle", Ptr,hProc)
}
return
c++ - How to get list of GDI handles - Stack Overflow
https://stackoverflow.com/questions/13905661/how-to-get-list-of-gdi-handles
For this:
get a process's GDI handles (e.g. get/set title bar font and apply WM_SETFONT to a control) - AutoHotkey Community
https://autohotkey.com/boards/viewtopic.php?f=5&t=31228
Similar issue:
HTMLFile object, getElementsByTagName reports 0 initially - AutoHotkey Community
https://autohotkey.com/boards/viewtopic.php?f=5&t=31322
Btw this seems to retrieving data for AHK x64 or x32, to an external program that is x64 or x32 (all 4 combinations).