Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi In fremdes Fenster schreiben [SunAwtCanvas] (https://www.delphipraxis.net/40866-fremdes-fenster-schreiben-%5Bsunawtcanvas%5D.html)

wishdelphi 22. Feb 2005 11:41


In fremdes Fenster schreiben [SunAwtCanvas]
 
hallo,

ich versuche per SENDMESSAGE einen Text an ein Edit
von einem Chat zu senden. Um das Handle zu bekommen
habe ich WinSpy benutzt, das mir dann folgenden Code
erstellt hat:

Code:
function FindWindowEx2(hParent: HWND; ChildClassName: string; ChildNr: Word): HWND;
var
  i: Word;
  hChild: HWND;
begin
  ChildNr := ChildNr - 1;
  for i := 0 to ChildNr do
  begin
    hChild := FindWindowEx(hParent, hChild, PChar(ChildClassName), nil);
    if hChild = 0 then
      Exit;
    Result := hChild;
  end;
end;
Code:
var
  wnd: HWND;
begin
  wnd := FindWindow('COM.volano.vau','Aachen Flirt (fdfdfd)');
  wnd := FindWindowEx2(wnd,'SunAwtCanvas', 2);
  wnd := FindWindowEx(wnd, 0, 'Edit', nil);
  if wnd <> 0 then
  begin
     writeln('Window found. Handle: ' + IntToStr(wnd));
     FlashWindow(wnd);
  end;
end.
ich habe testweise dieses versucht:

Code:
if wnd <> 0 then
ShowMessage('Fenster gefunden');
end;
nur leider wird meine showmessage nicht ausgeführt,
was mich zu dem schluss bringt das, das fenster
bzw. die editbox nicht gefunden werden kann.
nur ist die frage -> wieso? wenn ich den quelltext
mit WinSpy kompiliere und ausführe wird die
editbox zum blinken gebracht.

was mache ich falsch, bzw. warum funktioniert es nicht.
ich kann in andere fenster problemlos reinschreiben.
nur sobald diese fenster irgendwas mit "SunAwtCanvas" zutun
haben gehts nichts mehr.
In Google konnte ich nichts über "SunAwtCanvas" finden.
Zumindest nichts was mich weitergebracht hätte.

Bin für jeden Vorschlag und Lösungsweg dankbar.

greetz

Wishy

wishdelphi 22. Feb 2005 11:45

Re: In fremdes Fenster schreiben [SunAwtCanvas]
 
hallo nochmal,

hatte leider vergessen die meldungen vom compiler anzugeben:

Code:
Variable 'hChild' ist möglicherweise nicht initialisiert worden
Rückgabewert der Funktion 'FindWindowEx2' könnte undefiniert sein
greetz

Wishy

toms 22. Feb 2005 12:00

Re: In fremdes Fenster schreiben [SunAwtCanvas]
 
Hi,

Ich vermute, dass die Funktion FindWindowEx2 nicht mit der internen FindWindowEx2
übereinstimmt, welche ja anscheinend das Fenster findet.

Werde das heute Abend überprüfen.

dizzy 22. Feb 2005 12:54

Re: In fremdes Fenster schreiben [SunAwtCanvas]
 
\\edit: War Quatsch. Ich bin von einer Application ausgegangen...

toms 23. Feb 2005 06:58

Re: In fremdes Fenster schreiben [SunAwtCanvas]
 
Zitat:

Zitat von wishdelphi
hallo nochmal,

hatte leider vergessen die meldungen vom compiler anzugeben:

Code:
Variable 'hChild' ist möglicherweise nicht initialisiert worden


Hatte tatsaechlich etwas mit der Initialisation von hChild zu tun.
Brauchst nur noch hChild := 0; hinzuzufuegen, dann sollte die Funktion
korrekt ausgefuehrt werden.


Delphi-Quellcode:
function FindWindowEx2(hParent: HWND; ChildClassName: string; ChildNr: Word): HWND;
var
  i: Word;
  hChild: HWND;
begin
  hChild := 0; // <-------------
  ChildNr := ChildNr - 1;
  for i := 0 to ChildNr do
  begin
    hChild := FindWindowEx(hParent, hChild, PChar(ChildClassName), nil);
    if hChild = 0 then
      Exit;
    Result := hChild;
  end;
end;

Luckie 23. Feb 2005 07:05

Re: In fremdes Fenster schreiben [SunAwtCanvas]
 
Für alle, die es intersssiert, in einem anderem Forum wurde dem Threadersteller bereits geholfen:
http://www.dsdt.info/YaBBSe/index.ph...threadid=24353

:roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz