AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Eingabefeld einer fremden Anwendung ausfüllen
Thema durchsuchen
Ansicht
Themen-Optionen

Eingabefeld einer fremden Anwendung ausfüllen

Offene Frage von "Bunke"
Ein Thema von Bunke · begonnen am 29. Nov 2003 · letzter Beitrag vom 3. Feb 2004
Antwort Antwort
Bunke

Registriert seit: 29. Nov 2003
1 Beiträge
 
Delphi 6 Enterprise
 
#1

Eingabefeld einer fremden Anwendung ausfüllen

  Alt 29. Nov 2003, 12:26
Folgendes Problem:

Anwendung 1 start eine zweite Anwendung (PGPDISK wenn es jemand genau wissen will) diese soll eine Verzweichnis auf der Festplatte entschlüsseln, benötigt dazu aber die Eingabe einer Passwortphrase. Dieses muss/will ich nun automatisieren, ein Handle auf das Fenster der zweiten Anwendung habe ich auch schon. Den OK und den Cancel Button kann ich auch schon fernsteuern, jedoch bekomme ich die Eingabe in das Feld für die Passwortphrase nicht hin.

Hoffe mir kann da jemand helfen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Eingabefeld einer fremden Anwendung ausfüllen

  Alt 29. Nov 2003, 14:08
WM_SETTEXT heißt das Zauberweort bzw. die Zaubernachricht.

Delphi-Quellcode:
var
  s: String;
begin
  s := 'Hello world.';
  SendMessage(hEdt, WM_SETTEXT, 0, Integer(@s[1]));
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Spock

Registriert seit: 2. Dez 2003
2 Beiträge
 
#3

Re: Eingabefeld einer fremden Anwendung ausfüllen

  Alt 2. Dez 2003, 22:18
Wie bekommst du den das Handle deiner Fremdanwendung ?

Ich schreibe an soetwas ähnlichem, aber habe das über den Tastaturpuffer direkt realisiert. Nur für das Handle habe ich noch keine vernünftige Lösung.....
Rechner helfen uns Probleme zu loesen, welche wir ohne sie erst garnicht haetten.....
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Eingabefeld einer fremden Anwendung ausfüllen

  Alt 2. Dez 2003, 22:28
Mach dich mal über folgende API's schlau: Hier im Forum suchenFindwindow, Hier im Forum suchenFindWindowEx, Hier im Forum suchenEnumWindows, Hier im Forum suchenEnumChildwindows.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#5

Re: Eingabefeld einer fremden Anwendung ausfüllen

  Alt 3. Feb 2004, 16:03
Zitat von Luckie:
WM_SETTEXT heißt das Zauberweort bzw. die Zaubernachricht.

Delphi-Quellcode:
var
  s: String;
begin
  s := 'Hello world.';
  SendMessage(hEdt, WM_SETTEXT, 0, Integer(@s[1]));

hallo luckie,

wieso "Integer(@s[1]);"
statt "Integer(s);"


ist @ ein zeiger? und wenn ja, wieso setzt man nicht einfach nur "s" statt "@s" ein?
achja und nochwas, wieso eigentlich "integer"? woher weiss die funktion welchen text sie übergeben muss wenn es ein integer ist?
Mario
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Eingabefeld einer fremden Anwendung ausfüllen

  Alt 3. Feb 2004, 16:15
Moin Pseudemys Nelsoni,

mit integer(s) würdest Du den Wert der Adresse der Variablen übergeben die die Adresse des Strings enthält, mit integer(@s[1]) ist es die Adresse des ersten Zeichens des Strings. Dieser wird intern automatisch nullterminiert, so dass eine API Funktion etwas damit anfangen kann.
Ersatzweise ginge auch integer(PChar(s)).

Der Typecast mit integer ist notwendig, da Borland die Funktion so importiert, dass man dort nicht direkt die Adresse eines Strings angeben kann.

[EDIT]
Durch die Nachricht WM_SETTEXT sollte die WindowsProc die die Message auswertet "wissen", dass der Wert von LParam die Adresse eines nullterminierten Strings bedeutet.
[/EDIT]
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#7

Re: Eingabefeld einer fremden Anwendung ausfüllen

  Alt 3. Feb 2004, 17:38
danke, für die erklärung, christian

Das bringt mich auf ne neue Frage (neuen Thread )
Mario
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz