AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Text an Eingabezeile schicken

Ein Thema von Aike · begonnen am 17. Nov 2004 · letzter Beitrag vom 5. Feb 2005
Antwort Antwort
Seite 2 von 4     12 34      
Aike

Registriert seit: 2. Okt 2004
319 Beiträge
 
#11

Re: Text an Eingabezeile schicken

  Alt 19. Nov 2004, 02:12
Hm, da passiert nichts.

Ich habe mal den Windows Taschenrechner gestartet und es mit dem ausprobiert - ohne Ergebnis :-/ Es wird zwar ein handle gefunden, aber in der Listbox tut sich nix.

[edit]Bei mir funktioniert das immer korrekt.[/edit]
Achim
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: Text an Eingabezeile schicken

  Alt 19. Nov 2004, 02:27
Das Projekt im Anhang funktioniert bei mir...
Angehängte Dateien
Dateityp: zip enumwindowstest.zip (3,1 KB, 35x aufgerufen)
Dani H.
  Mit Zitat antworten Zitat
Aike

Registriert seit: 2. Okt 2004
319 Beiträge
 
#13

Re: Text an Eingabezeile schicken

  Alt 19. Nov 2004, 02:40
Hm, ja, bei mir auch.

Also mit ...
Delphi-Quellcode:
var
  wlist : TWindowList;
begin
  wlist := TWindowList.Create; // Objekt erzeugen
  try
    wlist.AddClassname := True; // zusätzlich den Windows-Classname anfügen
    wlist.EnumTopLevelWindows; // Alle Windows auflisten
    ListBox1.Items.Assign(wlist); // Ergebnis in eine Listbox kopieren
  finally
    wlist.Free;
  end;
end;
Bekomme ich als Ergebnis: The 4th Coming:AppClass ... Rechner:SciCalc
Aber "handle:=FindWindow('AppClass',nil);" liefert wieder nichts

Jetzt muss ich aber leider in 's Bett. Bin über 's WE nicht da, also nicht wundern. Aber ich hoffe, wir können das Prob Montag wieder bearbeiten
Achim
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: Text an Eingabezeile schicken

  Alt 19. Nov 2004, 12:21
Wenn du TWindowList aus diesem Code Library Beitrag benutzt, hast du den Handle doch bereits:

Delphi-Quellcode:
function GetD4OHandle: HWND;
var
  wlist : TWindowList;
  idx: Integer;
begin
  Result := 0;
  wlist := TWindowList.Create;
  try
    wlist.AddClassname := True;
    wlist.EnumTopLevelWindows;
    idx := wList.IndexOf('The 4th Coming:AppClass');
    If idx <> -1 then Result := wlist.Handles[idx];
  finally
    wlist.Free;
  end;
end;
Dani H.
  Mit Zitat antworten Zitat
Aike

Registriert seit: 2. Okt 2004
319 Beiträge
 
#15

Re: Text an Eingabezeile schicken

  Alt 21. Nov 2004, 19:55
So, bin wieder da

Was ist denn das jetzt für eine Funktion? Ersetzt die die EnumTargetWindow-Funktion? Und wo gibt mir diese Function, wenn überhaupt, das handle für die Eingabezeile zurück?
sry, wenn ich auf 'm Schlauch steh', aber ich steig echt nicht durch

btw. woher weißt du, dass The 4th Coming das deutsche Die 4te Offenbarung ist?
Achim
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#16

Re: Text an Eingabezeile schicken

  Alt 21. Nov 2004, 22:57
Zitat von Aike:
So, bin wieder da

Was ist denn das jetzt für eine Funktion? Ersetzt die die EnumTargetWindow-Funktion? Und wo gibt mir diese Function, wenn überhaupt, das handle für die Eingabezeile zurück?
sry, wenn ich auf 'm Schlauch steh', aber ich steig echt nicht durch
Vergiss die Funktion und TWindowList am besten wieder *g*

"The 4th Coming:AppClass" ist nicht das Fenster, das du suchst, sondern der Taskbar Eintrag. Das gesuchte Fenster hat den Klassennamen "#32770" und den Titel "Die 4. Offenbarung". Daher:

Delphi-Quellcode:
//Findet das erste Edit Control im D4O Fenster und speichert das Handle in einer globalen Variable

var
  D4OEdit: HWND = 0;

...

function EnumWindowCallback(WindowHandle: HWND; lParam1: lParam): Boolean; stdcall;
var sClassName: array[0..255] of Char;
begin
  Result := True;
  FillChar(sClassName[0], 256, 0);
  If GetClassName(WindowHandle, @sClassName, 256) <> 0 then
  If sClassName='Editthen
  begin
   {Hier kannst du z.B prüfen, ob sich das Edit an einer bestimmten Position im Fenster befindet}
   D4OEdit := WindowHandle;
   Result := false;
  end;
end;

procedure FindD4OEdit;
var
  D4OHandle: HWND;
begin
  D4OHandle := FindWindow('#32770', 'Die 4. Offenbarung');
  If D4OHandle <> 0 then
   begin
    EnumChildWindows(D4OHandle, @EnumWindowCallback, 0));
   end else
    begin
     //D4O läuft nicht
    end;
end;
Zitat:
btw. woher weißt du, dass The 4th Coming das deutsche Die 4te Offenbarung ist?
Google
Dani H.
  Mit Zitat antworten Zitat
Aike

Registriert seit: 2. Okt 2004
319 Beiträge
 
#17

Re: Text an Eingabezeile schicken

  Alt 22. Nov 2004, 00:28
*Total perplex*
Jetzt, tja, ähm, ich weiß nich' so genau

Delphi-Quellcode:
begin
  D4OEdit := WindowHandle;
  Result := false;
  showmessage('Result := false');
end;
... gibt immer die msg zurück, wenn das D4O Fenster geöffnet ist. Dazu muss die Eingabezeile gar nicht existieren (sprich: man muss nicht eingelogg sein), aber das wusstest du, denk ich mal

Jetzt müsste ich das/die handle(s) (alle) in eine Listbox eintragen oder per showmessage() anzeigen können, damit ich das richtige handle herauskriegen und dorthin einen Text schicken kann
Achim
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#18

Re: Text an Eingabezeile schicken

  Alt 22. Nov 2004, 07:16
Achso, ich dachte du willst dir einen Loader schreiben, der dich automatisch einlogt

Du musst wohl die Koordinaten der Controls mitinander vergeichen, um herauszufinden, ob das richtige dabei ist. (-> MSDN-Library durchsuchenGetWindowRect)
Dani H.
  Mit Zitat antworten Zitat
Aike

Registriert seit: 2. Okt 2004
319 Beiträge
 
#19

Re: Text an Eingabezeile schicken

  Alt 22. Nov 2004, 21:50
Oh, automatisch einloggen ist auch nicht schlecht *rofl* Danach wurde ich schon gefragt, hab 's aber als nicht möglich abgestempelt Aber das ist wohl ein anderes Thema (weil umfangreich).

Diese MSDN ist mir schleierhaft.
Zitat:
Parameters
hWnd
[in] Handle to the window.
lpRect
[out] Pointer to a structure that receives the screen coordinates of the upper-left and lower-right corners of the window.
Welches handle soll das denn sein? Das von dem gesamten Programm oder müssen da alle handles aller Komponenten des Programmes rein?
Und dieser "Pointer to a structure" ...
Achim
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#20

Re: Text an Eingabezeile schicken

  Alt 22. Nov 2004, 22:07
Zitat von Aike:
Diese MSDN ist mir schleierhaft.
Welches handle soll das denn sein?
Das Handle "WindowHandle" in EnumWindowCallback, also das Handle des möglicherweise gesuchten Eingabefeldes

Zitat:
Und dieser "Pointer to a structure" ...
Einfach nur ein normales Delphi-Referenz durchsuchenTRect
Dani H.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 03:20 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