Willkommen bei Network & Security     remoteshell-security.com
Partnerseiten
login.php?sid=d8d88d6cd6d75e95a74ed1ea58a8b954 profile.php?mode=register&sid=d8d88d6cd6d75e95a74ed1ea58a8b954 faq.php?sid=d8d88d6cd6d75e95a74ed1ea58a8b954 memberlist.php?sid=d8d88d6cd6d75e95a74ed1ea58a8b954 search.php?sid=d8d88d6cd6d75e95a74ed1ea58a8b954 index.php?sid=d8d88d6cd6d75e95a74ed1ea58a8b954

Foren-Übersicht » Programmierung » Einem Button eine Message schicken
Neues Thema eröffnen  Neue Antwort erstellen Vorheriges Thema anzeigen :: Nächstes Thema anzeigen 
Einem Button eine Message schicken
BeitragVerfasst am: 28.11.2006 20:04 Antworten mit Zitat
Lukas
Anmeldedatum: 31.12.2005
Beiträge: 257
Wohnort: Wien




Hallo!

Ich schreibe gerade an einem Programm, dass den MSN-Messenger beim Aufrufen des Anmelde-Fensters, autostartet, sprich die Anmelden-Taste drückt.

Ich habe also sämtliche Handles ermittelt und wollte dem Button eine Message senden; das hat leider nicht geklappt.

Der Code hatte vorher schon einige Probleme die ich aber alle behoben habe, weiss aber nicht ob er jetzt 100%ig richtig ist.

Laut TEST-Ausgabe findet er den Button, (leider tut er das aber bei jedem 4ten Paramater beim letzten FindWindowEx-Aufruf)

Hier mal der Source, wär toll wenn ihr mir helfen könntet.

Code:
#include <windows.h>

int WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR  lpCmdLine,
                     int       nCmdShow)
{
 MessageBox(NULL,  (LPSTR)  "Der OK-Button-Klicker für MSN-Messanger ist aktiviert!", (LPSTR)  "OK-Button-Klicker", MB_OK | MB_ICONINFORMATION);

HWND hWndMessanger = NULL;

    while (hWndMessanger == NULL)
    {
        hWndMessanger = FindWindow( (LPSTR)  "MSBLWindowClass",  (LPSTR)  "Windows Live Messenger");

        if (hWndMessanger == NULL)             
            Sleep(100);
    }

    MessageBox(NULL,  (LPSTR)  "FENSTER", (LPSTR)  "OK-Button-Klicker", MB_OK | MB_ICONINFORMATION);


   
    HWND hWndDirectUI = FindWindowEx(hWndMessanger, NULL,  (LPSTR)  "DirectUIHWND", NULL);

    if (hWndDirectUI == NULL)
        return 0;
else
          MessageBox(NULL,  (LPSTR)  "CHILDFENSTER", (LPSTR)  "OK-Button-Klicker", MB_OK | MB_ICONINFORMATION);


HWND hWndButton;
for (;hWndButton==NULL;){
    hWndButton = FindWindowEx(hWndDirectUI, NULL, NULL,  TEXT  ("&Anmelden"));
}
    if (hWndButton !=NULL)
MessageBox(NULL,  (LPSTR)  "BUTTON", (LPSTR)  "OK-Button-Klicker", MB_OK | MB_ICONINFORMATION);
           
    SendMessage(hWndButton, WM_LBUTTONDOWN, 0, 0);
   
    SendMessage(hWndButton, WM_LBUTTONUP, 0, 0);

    return 0;
}


MFG


EDIT:

Hab den Post auch schon woanders gepostet nur konnte man mir da leider auch nicht so wirklich helfen.

Hmmm kennt ihr Programme mit denen ich den Handle ermitteln kann?
Gibts ja zu Hauf für Fenster nur leider ned für Buttons.
Wenn ich den Teil ned einbauen kann dann kann ich mein Projekt vergessen deswegen helfts ma bitte.
Benutzer-Profile anzeigen Private Nachricht senden
BeitragVerfasst am: 29.11.2006 17:36 Antworten mit Zitat
Lukas
Anmeldedatum: 31.12.2005
Beiträge: 257
Wohnort: Wien




K is egal, hab die Lösung schon, danke.
Benutzer-Profile anzeigen Private Nachricht senden
BeitragVerfasst am: 29.11.2006 18:21 Antworten mit Zitat
Cerox
Anmeldedatum: 31.12.2005
Beiträge: 782
Wohnort: Engelskirchen




Wie wäre es dann die Lösung kurz zu erläutern, falls jemand mal ein ähnliches Problem haben sollte?
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
BeitragVerfasst am: 29.11.2006 18:24 Antworten mit Zitat
Lukas
Anmeldedatum: 31.12.2005
Beiträge: 257
Wohnort: Wien




Ok, das Problem war, dass das gar kein Button in dem Sinne war sondern mit WM_PAINT gezeichnet wurde.

Lösung:

Mit GetWindowRect()

Fensterkooridinaten ermitteln und daraus die Buttonkoordinaten ermitteln.
Dort dann einen Mausklick simulieren(virtueller Mausklick)

Lg
Benutzer-Profile anzeigen Private Nachricht senden
Einem Button eine Message schicken
Foren-Übersicht » Programmierung
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Alle Zeiten sind GMT + 1 Stunde  
Seite 1 von 1  

  
  
 Neues Thema eröffnen  Neue Antwort erstellen  


Forensicherheit

Powered by phpBB © 2001-2004 phpBB Group
phpBB Style by Vjacheslav Trushkin
Deutsche Übersetzung von phpBB.de


remoteshell-security.com | Partner | Boardregeln | Impressum