Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » GetWindowThreadProcessId Problem

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
23.11.2008, 17:23 Uhr
~Alex__
Gast


Hallo,

Warum bleibt lpdwProcessId immer bei 0 ?


C++:
LPDWORD lpdwProcessId = NULL;
GetWindowThreadProcessId(hwnd, lpdwProcessId);
cout << "win proc id " << lpdwProcessId << "\n";



Der Handle zum Fenster ist auf jeden Fall richtig, da


Code:
GetWindowText(hwnd, cFenstername, 1023);


funktioniert

?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.11.2008, 17:44 Uhr
0xdeadbeef
Gott
(Operator)


Es handelt sich hier um eine C-Funktion, C kennt kein explizites call-by-reference, dementsprechend nimmt die Funktion einen Zeiger entgegen, der auf eine Variable zeigen muss, in die die Funktion dann reinschreiben kann. (LPDWORD ist MS-Notation für Zeiger auf DWORD)

Das sieht dann so aus:

C++:
DWORD lpdwProcessId;
GetWindowThreadProcessId(hwnd, &lpwdProcessId);


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
23.11.2008, 17:55 Uhr
~Alex__
Gast


Aaah, genau so etwas hatte ich im Verdacht - aber nicht genug Wissen, um es zu beheben, weil laut MSDN ein Argument vom Typ LPDWORD erwartet wird. Hatte auch versucht einen Zeiger drauf zu übergeben, das hat dann nicht so wirklich geklappt


Vielen Dank!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: