Button in Fremdanwendung ausblenden
-
Danke Nox, leider lässt sich der Handler des Buttons nicht ermitteln, da er keine Caption ausspuckt bzw. hat!
-
Irgendwie is heut nich mein Tag, der durchläuft das EnumChildWindows nur 1 mal
//Ausschnitt aus der Message Schleife inkl. WM_COMMAND Message hwndPXButton = FindWindowEx(hwndPX, 0, "TSeSkinButton", NULL); //hwndPX = Handle vom TMainForm der Anwendung if (EnumChildWindows(hwndPX,EnumChildWindowsProc,0)) { ShowWindow(hwndPXButton,SW_HIDE); } break; default: /* for messages that we don't deal with */ return DefWindowProc (hwnd, message, wParam, lParam); } return 0; } //CALLBACK Function von EnumChildWindows BOOL CALLBACK EnumChildWindowsProc(HWND hwndChild, LPARAM lParam) { int a=0; char sWindowText[]=""; TCHAR buffer[255]; ZeroMemory(buffer,255*sizeof(TCHAR)); GetWindowText(hwndChild, buffer, 255); if (buffer=="SMS-Center") { hwndPXButton=hwndChild; } return FALSE; }
-
Wie könnte man das ganze denn angehen (sry bin Umsteiger von VB auf C++)

-
Zeig mal deine Code-Versuche

-
Sry, wenn das etwas chaotisch aussieht und manche variablen sinnfrei im raum stehen *g* Aber ich beiß mir echt die Zähne an den sch**ß Buttons aus

Da oben könnt ihr meine Code Versuche betrachten.
-
To continue enumeration, the callback function must return TRUE; to stop enumeration, it must return FALSE.
-
Licht aufgeh, wer lesen kann ist klar im Vorteil

-
So er hat nun alle Controls durchlaufen, aber scheinbar hat er nen Prob mit der Caption oder die Buffer deklaration ist falsch bzw. ich werte sie falsch aus

-
Du kannst nicht einfach == für den Vergleich nehmen, sondern brauchst spezielle Funktionen, wie z.B. lstrcmp dafür

-
Hmm wie vermutet, die Caption der Controls lässt sich nicht extrahieren, weil es ein grafischer Button ist.
Ich habe die Buffervariable in die Überwachung eingefügt und sie gibt permanent einen null string zurück
BOOL CALLBACK EnumChildProc(HWND hwndChild,LPARAM lParam) { int iLength=0; char buffer[255]; iLength=GetWindowTextLength(hwndChild); GetWindowText(hwndChild,buffer,iLength+1); return true; }
-
Mir bleibt jetzt nur noch übrig, den Button über seine Position zu ermitteln, aber leider wird die Position zum Screen und nicht zum Client angegeben. Wie kann ich die Position zum Client ermitteln?
-
Evtl. mit ScreenToClient()?

-
cable2k3 schrieb:
aber leider wird die Position zum Screen und nicht zum Client angegeben.
Wo wird die so angegeben?! Falls du in Spy++ bzw. WinSpector meinst: einfach einen Scrreshot machen und in einem Bildbearbeitungsprogramm die Position ausmessen

-
flenders *anspring*
Danke Dir!!! Danke Euch funzt prima!! Musste mich zwar an die tatsächlichen Werte annähern, weil offentsichtlich die Angaben vom Grafikprogramm nicht korrekt waren.