hwnd von einem gestartetem Programm

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
orange-blue
Beiträge: 556
Registriert: 04.09.2004 22:23
Kontaktdaten:

hwnd von einem gestartetem Programm

Beitrag 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?
orange-blue
Beiträge: 556
Registriert: 04.09.2004 22:23
Kontaktdaten:

Beitrag von orange-blue »

Wei echt keiner wie ich das gehn könnte?
Benutzeravatar
125
Beiträge: 1322
Registriert: 19.09.2004 16:52
Wohnort: Neu Wulmstorf (Hamburg)
Kontaktdaten:

Beitrag von 125 »

Oh hatte deinen thread gar nicht gesehn.
Schau die mal in der MSDN FindWindow und FindWindowEx an :D
Bild
BildDas ist Tux. Kopiere Tux in deine Signatur und hilf ihm so auf seinem Weg zur Weltherrschaft.
orange-blue
Beiträge: 556
Registriert: 04.09.2004 22:23
Kontaktdaten:

Beitrag von orange-blue »

das kann ich leider nicht benutzten (will winamp ansteuern).
Benutzeravatar
DataMiner
Beiträge: 220
Registriert: 10.10.2004 18:56

Beitrag von DataMiner »

Hilft dir vielleicht die ProzessLib von Rings?
http://purearea.net/pb/download/userlibs/ProcessLib.zip

:?
Benutzeravatar
125
Beiträge: 1322
Registriert: 19.09.2004 16:52
Wohnort: Neu Wulmstorf (Hamburg)
Kontaktdaten:

Beitrag 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.
Bild
BildDas ist Tux. Kopiere Tux in deine Signatur und hilf ihm so auf seinem Weg zur Weltherrschaft.
orange-blue
Beiträge: 556
Registriert: 04.09.2004 22:23
Kontaktdaten:

Beitrag 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.
Leo
Beiträge: 420
Registriert: 26.10.2004 18:26

Beitrag 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
Zuletzt geändert von Leo am 30.03.2005 09:15, insgesamt 2-mal geändert.
orange-blue
Beiträge: 556
Registriert: 04.09.2004 22:23
Kontaktdaten:

Beitrag von orange-blue »

thx, wie auch immer ich such jetzt Winamp bei ClassName.
Benutzeravatar
MLK
Beiträge: 267
Registriert: 01.11.2004 13:17
Wohnort: Hamburg

Beitrag von MLK »

winamp finde ich mit:

Code: Alles auswählen

FindWindow_("Winamp v1.x",0)
müsste bei dir auch gehen.
Antworten