Einzelnen Beitrag anzeigen

Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#32

Re: String an anderes Programm schicken

  Alt 10. Jul 2008, 16:32
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 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.
  Mit Zitat antworten Zitat