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

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 19: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 16: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 17: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 17: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