"ungültiger zugriff auf speicherbereich"
-
Ist das ein Fenster einer fremden Anwendung?
-
Wenn ja benutz GetClassLongPtr.
-
Benutze Win32
HINSTANCE hInstance = NULL; WNDCLASSEX wndClassEx; char szClassName[255]; // Puffer des Klassennamen, nullterminiert // char szOutput[255]; // Ausgabe HWND hwndFoundWindow = FindWindow("MineSweeper", "MineSweeper"); if(hwndFoundWindow == NULL) MessageBox(NULL, "Fenster wurde nicht gefunden", "blub", MB_OK); // Retrieves a handle to the application instance. hInstance = (HINSTANCE)GetWindowLong(hwndFoundWindow, GWL_HINSTANCE); // Retrieves the name of the class to which the specified window belongs. int ClassNameNumChars = GetClassName(hwndFoundWindow, szClassName, sizeof(szClassName)-1); // Klassen-Informationen anfordern: if(GetClassInfoEx(hInstance, szClassName, &wndClassEx) == 0) { ErrorExit(); } else { //do something MessageBox(NULL, "Alley OKAY :=)", "blub", MB_OK); }Funktioniert der Code bei Euch, wenn ihr die Anwendung MineSweeper geöffnet habt?
-
ok, also ein fenster eines fremden prozesses?!
-
Ja, steht ja da!

-
hast ja nacheditiert. die lösung steht ja auch da.
-
stimmt, ein paar sekunden, bevor dein beitrag erschienen ist. sry

der code funktioniobelt dennoch nicht, es wird immer die error-funktion aufgerufen.

-
ok kannst ja mal zeigen wie du es benutzt.
-
das ist der komplette funktions-body,
habe nur den kopf und den rumpf weggelassen.der code wird ausgeführt, wenn ich auf einen btn klicke
-
hä?? ich hab dir doch gesagt du sollst die Funktion GetClassLongPtr verwenden.
-
ups! hab ich total überlesen! mach ich mal fix. :=)
-
hInstance = (HINSTANCE)GetClassLong(hwndFoundWindow, GCL_HMODULE);so? longptr ist nicht notwendig, da das programm nur unter 32 bit laufen soll...
-
Und funktioniert es? Warum willst du auf die kostenlose Kompatibiltät verzichten?
-
das soll übrigens ein "ersatz" für GetClassInfoEx sein, nicht für GetWindowLong.
-
neeee, ziel ist es ja
WNDCLASSEXdes fensters zu ermitteln. da will ich mir nicht mit getclasslongptr alles zusammenfuseln...
-
Es wird dir wohl nichts anderes übrig bleiben.
Bei GetClassInfoEx kann man ja nur das Modul-Handle angeben und somit kann man es auch nur für Fensterklassen im eigenen Prozess benutzen.
-
Acht echt? fuck

naja, danke...
dann kann ich mir die arbeit ja sparen. *g*