SendMessage
-
Habe folgendes Problem :
Hab keine Ahnung von der WinApi ,nur mal überflogen , aber auch nicht die Zeit dazu....Wie kann ich in das Textfeld/Passortfeld eines fremden Fensters Text eintragen lassen ?
(Bei dem Textfeld handelt es sich um ein Passwortfeld eines Backups von "Acronis True Image" das ich nicht mehr auf krieg)Mein bisheriger Versuch hat wenig gebracht:
HWND myWnd;
myWnd = FindWindow("#32770","Restore Data Wizard");
myWnd = FindWindowEx(myWnd,0,"FXWindow",0);
SendMessage(myWnd,WM_SETTEXT,0,(LPARAM)"abc");Nach dem Ausführen sehe ich beim inspizieren des Fensters mit "AutoIt v3 Window Info" , dass sich der "Visible Text" geändert hat , allerdings wurde in etwaiges Passwortfeld nix eingetragen. Muss ich dafür eine andere Nachricht als WM_SETTEXT verwenden ? und wie kann ich evtl. herausfinden auf welche Nachrichten eine Komponente(die sonstwas sein kann) überhaupt wie reagiert....
Hab wie gesagt absolut keine Ahnung von der WinApi und gute frei Literatur scheint online schwer zu finden zu sein ,welche dieses Thema(SendMessage...) abdeckt
und hab mir damals 3 Tage Zeit genommen um mein System genau auf meine Bedürfnisse einzustellen um dann dieses Backup anzufertigen...deshalb wärs gut wenn ichs wieder aufkrieg , sonst hab ich die gleiche Arbeit zum tausendsten Mal
.....Jedenfalls schon mal danke im v****** für die schnelle Hilfe 
-
hi
wenn du das handle zu dem passwort feld hast, könnteste auch ma versuchen, obs vieleicht mit WM_KEYDOWN und den entsprechenden Parametern oder WM_CHAR funktioniert...
oder dem Fenster den Eingabefokus geben und dann Tastendrücke simuliern...
Tastedruck simulieren am besten mit SendInput: http://msdn.microsoft.com/en-us/library/ms646310(VS.85).aspx
ich hoff ma dass ich dein problem richtig verstanden hab...^^MFG
-
Ähm, nur mal so 'ne Frage: wieso hast du dich jetzt ausgeloggt, um die Frage aus dem C++-Forum hier zu stellen??
Und worauf willst du eigentlich hinaus? Du kennst das Passwort nicht mehr, ja? Und jetzt willst du es mit Bruteforce versuchen, oder was hast du geplant?
-
War ausgeloggt , nachdem ich auf deinen Link ins WinApi-Forum geklickt hatte um deine Frage zu beatworten.Sorry.
Also : Da ich von der WinAPI echt 0 Ahnung hab , und auch von den Nachrichten :
Kann mir mal jemand die bisher verwendeten Funktionen im Detail erklären ,da ich das Bisherige nur mal schnell aus im Netz gefundenen Infos zusammen gebastelt hab ohne wirklich total zu wissen was ich da tu....Hätt ich mehr Grundlageninfos über die Funktionen könnt ich vielleicht selber drauf kommen....hab da bisher noch nix für mein schlichtes Gemüt verständliches gefunden.....aber schon mal danke für die bisherigen Antworten
-
da gibts sone ganz geniale seite, die heißt google
und wenn man da FindWindow oder FindWindowEx eingibt bekommt man als aller erstes ein Link zu MSDN und da is das alles schön erklärt(auf englisch halt...)
ich denk ma dass die Funktionen gemeint waren...
MFG
-
Sorry , das ich in meinem Leben jetzt zum insgesamt 5ten mal in meinem Leben eine Frage in einem Forum stelle.... dachte ich dürfts mir auch mal leichter machen wie alle anderen und mir nicht immer alles ganz alleine erarbeiten..vorallem wenn ich was nur einmal brauche....bin kein Programmierer.....Sorry......
-
Außerdem ist Englisch bei mir zu lange her um sicher zu sein alles richtig verstanden zu haben , ganz besonders bei Themen bei denen ich mich im deutschen schon fragen müsste ob ich alles richtig verstanden habe.....so würde nur eine eventuelle Fehlerquelle hinzukommen die falsches Verstehen provoziert....
-
Wie gesagt: was genau hast du vor, alle Passwortkombinationen durchprobieren oder wie? Vielleicht solltest du dazu mal was sagen, dann kann man über die genaue Vorgehensweise und eventuelle Alternativen reden.
-
............allerdings geht es nur genau um diese Fragen zur API , der Rest ist trivial.....hab da vor ein paar Jahren schon mal was recht flexibel einstellbares geschrieben(ohne GUI) ,dass ich jetzt in C++ übertragen hab.....abgesehen davon kann ich die KombMöglichkeiten durch das Wissen über mein PW selbst bei 20 Stelle extrem einschränken , eben durch die vorhandenen Einstellungsmöglichkeiten meines Algorithmus.......und zugegeben...wollt auch schon immer mal mein eigenes Zeugs verwenden...sonst schmeiß ichs eh nur wieder weg....aber kannst du mir bei den Fragen zur WinAPI helfen oder nicht? Weißt du was ein HWND bzw. ein LPCTSTR für ne typdef hat?
-
GAst121234 schrieb:
Weißt du was ein HWND bzw. ein LPCTSTR für ne typdef hat?
Das kannst du herausfinden, indem du im VS Rechtsklick + 'Gehe zu Definition' anklickst. HWND ist einfach ein Handle, LPCSTR ist const char* (ein long pointer auf einen constant string), denke ich. Aber sieh es dir einfach mal selbst an.
Ich kann dir nicht wirklich weiterhelfen, sowas habe ich noch nie gemacht. Ich weiß, dass du WM_GETTEXT nicht einfach mit einem Edit Control mit Passwort-Flag verwenden kannst (aus verständlichen Gründen). Wie es mit WM_SETTEXT ist, weiß ich nicht. Ich könnte mir aber vorstellen, dass das auch nicht geht, um eben solche Bruteforce-Hacks zu verhindern. Das solltest du aber mit Google's Hilfe herausfinden können. Suchtipp: der Passwort-Style für das Edit Control ist ES_PASSWORD, wenn ich mich nicht irre. Vielleicht findest du jetzt eher was.
-
Gast121234 schrieb:
...
HWND myWnd;
myWnd = FindWindow("#32770","Restore Data Wizard");
myWnd = FindWindowEx(myWnd,0,"FXWindow",0);
SendMessage(myWnd,WM_SETTEXT,0,(LPARAM)"abc");Der Parameter LPARAM in SendMessage ist vom Typ Integer. "abc" ist aber eine Zeichenkette. So lässt sich direkt nur ein einzelnes Zeichen an WM_SETTEXT senden.
Nehme stattdessen eine benutzerdefinierte Nachricht und senden die Zeichenkette einzeln nacheinander. WPARAM kann dazu dienen, das Ende der Zeichenkette mitzuteilen. Wenn alles empfangen, nehme die zum Einsetzen des Textes vorgesehene WinApi-Funktion.
Deine Scheu vor Englisch verstehe ich nicht. In der Computerei sind die englischen Erklärungen meist sehr viel deutlicher als die deutschen Übersetzungen.