Seite 1 von 2
hwnd von einem gestartetem Programm
Verfasst: 27.03.2005 15:33
von orange-blue
Wie bekomm ich das handle von eine Programm den ich gestarte habe? Wenn ich Runprogramm ausführe bekomm ich ja nur eine pid. Is es irgenwie möglich von der ein handle zu bekommen?
Verfasst: 28.03.2005 22:54
von orange-blue
Wei echt keiner wie ich das gehn könnte?
Verfasst: 28.03.2005 22:57
von 125
Oh hatte deinen thread gar nicht gesehn.
Schau die mal in der MSDN FindWindow und FindWindowEx an

Verfasst: 29.03.2005 12:31
von orange-blue
das kann ich leider nicht benutzten (will winamp ansteuern).
Verfasst: 29.03.2005 18:06
von DataMiner
Verfasst: 29.03.2005 18:27
von 125
auch winamps Window hat einen namen.
Hier aufm Board gabs ein tool das alle Fenster auflistete. Da würdest du den Fensternamen von Winamp auch finden.
Aber warum so umständlich?
Schreib doch lieber MediaLibrary Plugin das ist einfacher damit kannste Winamp komplett controlen.
Verfasst: 29.03.2005 18:39
von orange-blue
@DataMiner: die hab ich schon und hilft mir nicht
weil der Winamp windowname sich verändert(wenn man was abspielt).
Ich hab keine ahnung was ein MediaLibrary Plugin ist, wenn du ein Winamp plugin meinst, dann hab ich keine Ahnung wie des funzt bzw. kann ich es auch nicht gebrauchen, da mein Programm nicht nur Winamp ansteuern können soll.
Verfasst: 29.03.2005 21:46
von Leo
Suchst du sowas?
Code: Alles auswählen
;
; 30.März 2005 von Leo =)
;
Global hWinamp.l
Procedure.s GetWindowClass(hwnd)
Buffer.s = Space(1000)
GetClassName_(hwnd,@Buffer,1000)
ProcedureReturn Buffer
EndProcedure
Procedure.s GetWindowName(hwnd)
Buffer.s = Space(1000)
GetWindowText_(hwnd,@Buffer,1000)
ProcedureReturn Buffer
EndProcedure
Procedure EnumWindowsProc(hwnd.l,lParam.l)
Class.s = GetWindowClass(hwnd)
Name.s = GetWindowName(hwnd)
If FindString(LCase(Class),"winamp",0)
If GetWindowLong_(hwnd,#GWL_STYLE) & #WS_CHILD = #WS_CHILD Or GetWindowLong_(hwnd,#GWL_STYLE) & #WS_CAPTION <> #WS_CAPTION Or Trim(Name) = "" Or GetWindowLong_(hwnd,#GWL_STYLE) & #WS_POPUP = #WS_POPUP
ProcedureReturn 1
Else
Debug Name
Debug Class
Debug hwnd
hWinamp = hwnd
ProcedureReturn 0
EndIf
ProcedureReturn 1
Else
ProcedureReturn 1
EndIf
EndProcedure
EnumWindows_(@EnumWindowsProc(),0)
;hWinamp sollte jetz das Handle vom Winamp-Control-Fenster haben
Verfasst: 30.03.2005 08:02
von orange-blue
thx, wie auch immer ich such jetzt Winamp bei ClassName.
Verfasst: 30.03.2005 11:59
von MLK
winamp finde ich mit:
müsste bei dir auch gehen.