App Liste mit Infos
Verfasst: 08.02.2021 21:42
So, hab jetzt mal was zusammen gebastelt. Falls ihr Verbersserungsvorschläge habt - nur her damit!
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!
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