Ich hoffe, es hilft dem Einen oder Anderen so wie es mir geholfen hat! Danke an die Community hier, dich mich sehr unterstützt hat!
Code: Alles auswählen
EnableExplicit
Define a, event
Global PID
Global MODULEENTRY32.MODULEENTRY32
Global Snapshot
Procedure ListWindows(hwnd,lParam)
Protected.s title = Space(1000),class = Space(1000)
If GetWindowLong_(hwnd,#GWL_EXSTYLE) ! #WS_EX_TOOLWINDOW And GetWindowLong_(hwnd,#GWL_STYLE) & #WS_VISIBLE
GetClassName_(hwnd,class,1000)
GetWindowText_(hwnd,title,1000)
If title <> ""
MODULEENTRY32\dwSize = SizeOf(MODULEENTRY32)
GetWindowThreadProcessId_(FindWindow_(0,title), @PID)
Snapshot = CreateToolhelp32Snapshot_(#TH32CS_SNAPMODULE, PID)
If Module32First_(Snapshot, MODULEENTRY32)
;Debug PeekS(@MODULEENTRY32\szExePath)
;Debug "Title: "+title+" | Class: "+class+" | Handle: "+Str(hwnd)+" | App: "+GetFilePart(PeekS(@MODULEENTRY32\szExePath))+" | Path: "+PeekS(@MODULEENTRY32\szExePath)
AddGadgetItem (0, -1, title+Chr(10)+class+Chr(10)+Str(hwnd)+Chr(10)+GetFilePart(PeekS(@MODULEENTRY32\szExePath))+Chr(10)+PeekS(@MODULEENTRY32\szExePath))
Define a
EndIf
CloseHandle_(Snapshot)
EndIf
EndIf
ProcedureReturn #True
EndProcedure
Procedure.I GetSelectedColumn(ListIconID.I)
Protected CursorLocation.POINT
Protected HitInfo.LVHITTESTINFO
GetCursorPos_(CursorLocation)
MapWindowPoints_(0, GadgetID(ListIconID), CursorLocation, 1)
Hitinfo\pt\x = CursorLocation\x
HitInfo\pt\y = CursorLocation\y
SendMessage_(GadgetID(ListIconID), #LVM_SUBITEMHITTEST, 0, HitInfo)
ProcedureReturn HitInfo\iSubItem
EndProcedure
If OpenWindow(0, 0, 0, 1010, 250, "Process Info:", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_SizeGadget)
; WindowBounds(0, 1010, 200, #PB_Ignore, #PB_Ignore)
TextGadget(1, 5, 5, 1000, 20, "RightClick to copy cell content to clipboard", #PB_Text_Center)
ListIconGadget(0, 5, 30, 1000, 190, "Title", 200, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection | #PB_ListIcon_GridLines)
AddGadgetColumn(0, 1, "Class", 240)
AddGadgetColumn(0, 2, "Handle", 60)
AddGadgetColumn(0, 3, "Program", 200)
AddGadgetColumn(0, 4, "Path", 500)
ButtonGadget(2, 455, 225, 100, 20, "Refresh")
EnumChildWindows_(FindWindow_("ToolbarWindow32",0),@ListWindows(),0)
;SetGadgetState(0, 0)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
If EventGadget() = 0 And EventType() = #PB_EventType_RightClick
Debug GetGadgetItemText(0, -1, GetSelectedColumn(0)) + ": " + GetGadgetItemText(0, GetGadgetState(0), GetSelectedColumn(0))
SetClipboardText(GetGadgetItemText(0, GetGadgetState(0), GetSelectedColumn(0)))
MessageRequester("Information", "Copied " + GetGadgetItemText(0, -1, GetSelectedColumn(0)) + ": " + Chr(13) + Chr(13) + GetGadgetItemText(0, GetGadgetState(0), GetSelectedColumn(0)) + Chr(13) + Chr(13) + "to clipboard!")
EndIf
If EventGadget() = 2 And EventType() = #PB_EventType_LeftClick
RunProgram(ProgramFilename())
End
EndIf
EndSelect
ForEver
EndIf