webForumDet fria alternativet
Logga in / Bli medlem

Api

.NET

2 svar · 324 visningar · startad av bagera

Medlem sedan jan. 2001126 inlägg
Trådstart#1

jag vill ha tag på processnamnet till det fönster som är i focus.
(Så jag vet vilket program som är i focus)
Hur ska jag göra.

Jag får ju fönsternamnet med denna

Private Declare Function GetActiveWindow Lib "user32" () As Long

men sen då?

Hor ska jag kunna knyta fönsternamnet med den process (program) som kör det?

Medlem sedan maj 2000194 inlägg
#2

Jag tror att du får använda GetWindowThreadProcessId istället.
Jag tror du finner lösningen på denna sida:

http://www.mentalis.org/apilist/GetWindowThreadProcessId.shtml

Medlem sedan jan. 2001126 inlägg
#3

så här långt har jag kommit

Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function GetWindowThreadProcessId _
Lib "user32" (ByVal hWnd As Long, lpdwProcessId _
As Long) As Long

Private Sub Timer1_Timer()
 Dim foreground_hwnd As Long
 Dim ThreadID As Long, ProcID As Long
   ThreadID = GetWindowThreadProcessId(GetForegroundWindow(), ProcID)
   lblCaption = ProcID

End Sub

Men hur får jag tag på exe namnet som har pid:et?

262 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)