Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi String an anderes Programm schicken (https://www.delphipraxis.net/116987-string-anderes-programm-schicken.html)

alzaimar 10. Jul 2008 15:16

Re: String an anderes Programm schicken
 
Hier, hab ich vor 100 Jahren mal geschrieben. Man muss aber auf die Items links klicken, damit die Kindfenster angezeigt werden.

Cyf 10. Jul 2008 15:32

Re: String an anderes Programm schicken
 
Finds auch nicht, aber aber cih hab mal folgenden Schnipsel gebastelt, hilft allerdings noch nicht interher auch die Klasse von der Kompnente im Fenster zu finden:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Window: HWND;
  WindowClassName: array[0..79] of Char;
begin
  //Window := FindWindow(nil, 'Titel in Titelleiste');
  Window := FindWindow('Notepad', 'Unbenannt - Editor');
  if Window <> 0 then
  begin
    GetClassName(Window, @WindowClassName, 80); //gehe davon aus das daas NULL an Ende mit gezählt wird, falls das falsch ist, bitte mal anmerken
    Showmessage('Fenster lpClassName: ' + WindowClassName);
    Window := FindWindowEx(Window, 0, 'Edit', nil);
    PostMessage(Window, WM_KEYDOWN, 48, 0);
    GetClassName(Window, @WindowClassName, 80);
    Showmessage('Komponente lpClassName: ' + WindowClassName);
  end
  else showmessage('Konnte das Editorfenster nicht finden! Errorcode: ' + IntToStr(GetLastError));
end;
So
Delphi-Quellcode:
Window := FindWindow(nil, 'Titel in Titelleiste');
solltest du dein Fenster eigentlich schon finden, du musst aber beachten, dass dir das bei mehreren Fenstern mit gleichen Titel nur das Handle auf das zuletzt angeklickte liefert (Ergebnis von einem praktischen Test eben), ist also hier sicherer, wenn du es erst mal anklickst. Danach sollte dir das GetClassName den Namen liefern, nur wie ich an die Komponente komme, wenn ich sie vorher nicht kenne, weiß ich auch noch nicht.

Cyf 10. Jul 2008 15:36

Re: String an anderes Programm schicken
 
Zitat:

Zitat von alzaimar
Hier, hab ich vor 100 Jahren mal geschrieben. Man muss aber auf die Items links klicken, damit die Kindfenster angezeigt werden.

Wäre gut, wenn dus noch anhängst. :wink:

SimStar001 10. Jul 2008 15:45

Re: String an anderes Programm schicken
 
wenn ich deinen code ausführe wie er da steht kommt fehlercode '2'


wenn ich dann allerdings diese zeile ausführe...
Delphi-Quellcode:
Window := FindWindow(nil, 'Titel in Titelleiste');
dann findet der bei mir nur das Mozilla browserfenster?

SimStar001 10. Jul 2008 15:56

Re: String an anderes Programm schicken
 
mir fällt da gerade so mal ein, dass wir die ganze zeit nach enm fenster suchen!? wäre es nicht besser erstmal nach der anwendung zu suchen?

alzaimar 10. Jul 2008 16:25

Re: String an anderes Programm schicken
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Cyf
Zitat:

Zitat von alzaimar
Hier, hab ich vor 100 Jahren mal geschrieben. Man muss aber auf die Items links klicken, damit die Kindfenster angezeigt werden.

Wäre gut, wenn dus noch anhängst. :wink:

:oops: :oops: :oops: :oops:

SimStar001 10. Jul 2008 16:42

Re: String an anderes Programm schicken
 
super damit konnet ich zumindest mal di caption und die windoclass ermitteln, mal sehen wies nu weiter geht ich werde mal weiter rumprobieren

SimStar001 10. Jul 2008 17:18

Re: String an anderes Programm schicken
 
so ich habe jetzt doch ein problem.... und zwar ist die caption der anwendung die ich ansprechen möchte immer unterschiedlich, sie ändert sich mit der mausbewegung....


als class bekomme ich soetwas angezeigt: Afx:00400000:0


kann ich jetzt irgendwie immer di aktuelle caption herausfinden?

alzaimar 10. Jul 2008 17:39

Re: String an anderes Programm schicken
 
Ich habe das mit EnumWindows gelöst, dort bekommst du für jedes Fenster in Windows sowohl den Klassennamen als auch die Überschrift (Caption). Wenn die Fensterklasse ansonsten eindeutig ist, reicht das doch.

Probieren geht über Studieren.

SimStar001 10. Jul 2008 17:56

Re: String an anderes Programm schicken
 
on die fensterklasse eindeutig ist weiß ich leider noch net ich probiers die stunden aus und melde mich sonst wieder


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:43 Uhr.
Seite 4 von 5   « Erste     234 5      

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