Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Delphi und autoitx3.dll (https://www.delphipraxis.net/117218-delphi-und-autoitx3-dll.html)

wadimwadim 14. Jul 2008 13:07


Delphi und autoitx3.dll
 
Hallo,
ich möchte gerne die autoit funktionen in delphi implementieren... Meine Frage ist, ob so etwas in delphi überhaupt geht.
Wenn ja, bitte ich euch um ein Beispiel.

Luckie 14. Jul 2008 13:27

Re: Delphi und autoitx3.dll
 
Was ist denn autoit?

wadimwadim 14. Jul 2008 13:48

Re: Delphi und autoitx3.dll
 
das ist eine scriptsprache die hauptsächlich zum automatisieren von microsoft windows programmen verwendet wird.

RavenIV 14. Jul 2008 14:17

Re: Delphi und autoitx3.dll
 
Was willst Du genau machen?
Irgendein unbekanntes Fenster fernsteuern können?
Einem bekannten Fenster Tastendrücke unterjubeln?
Die Scriptsteuerung implementieren?

Mehr Infos bitte.
:glaskugel:

wadimwadim 14. Jul 2008 15:12

Re: Delphi und autoitx3.dll
 
ich möchte die Scriptsteuerung implementieren,
das andere was du erwähnt hast, kann man ja mit api lösen

Codewalker 14. Jul 2008 15:26

Re: Delphi und autoitx3.dll
 
Ich gebe dem Beispiel mal etwas Fleisch: AutoIt ist eine frei verfügbare Skriptsprache. Ursprünglich um Installationen zu automatisieren (drücke ButtonX, wenn Fenster Y da ist, mache das.....). Mittlerweile in Version 3 sehr mächtig (gibt sogar einen Webserver in AutoIt), kann eigene GUIs einbetten, und so weiter.
Heraus kommt eine kleine Exe-Datei, die das eingebettete Skript ausführt. AutoIT bietet sein API auch für Drittprogramme an, über ActiveX, die DLL, oder irgendwie so etwas (da habe ich mich nie näher mit beschäftigt) und genau das will er wohl machen - aus Delphi heraus Funktionen von AutoIt aufrufen.

@Threadersteller: Ich hoffe ich habe das gut getroffen. Nächstes Mal bitte selbst schreiben. Wer vernünfitge Antworten haben will und von anderen dafür Zeit erbittet, sollte selber die Zeit aufwenden eine vernünftige und ausführliche Frage zu stellen!

wadimwadim 14. Jul 2008 15:35

Re: Delphi und autoitx3.dll
 
Zitat:

aus Delphi heraus Funktionen von AutoIt aufrufen.
ist das in delphi möglich?

Diamondback2007 14. Jul 2008 15:39

Re: Delphi und autoitx3.dll
 
Wenn es eine solche Dll gibt dann ganz bestimmt ;)

Die Muhkuh 14. Jul 2008 15:39

Re: Delphi und autoitx3.dll
 
Da die API anscheinend für Drittprogramme zugänglich ist: Ja. Du musst nur die DLL oder was immer es auch ist dafür finden.

wadimwadim 14. Jul 2008 15:48

Re: Delphi und autoitx3.dll
 
Diese dll hab ich ja, und sie ist für jeden frei verfügbar; nur wie mache ich nun das?
bitte euch um ein beispiel wenn möglich

wadimwadim 14. Jul 2008 16:19

Re: Delphi und autoitx3.dll
 
sory für den doppelpost.

hier habe ich etwas gefunden aber ich weiss nicht wie ich das machen soll. was soll man davor aufrufen, damit das funktionieren kann

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
Buffer: Array[ 0..2000 ] of Char;
Begin
Au3_ControlGetText('Untitled','','Edit1','Buffer',2000); // autoitbefehl
end;
quelle:
http://www.autoitscript.com/forum/in...howtopic=62220

Alter Mann 14. Jul 2008 17:28

Re: Delphi und autoitx3.dll
 
Hi,

zwei postings später in dem Link lesen und die deutsche Hilfe benutzen.

Gruß

wadimwadim 14. Jul 2008 17:53

Re: Delphi und autoitx3.dll
 
verstehe ich nicht... kann mir da niemand ein beispiel geben?
EDIT:
habs hinbekommen... Falls andere das gleiche Problem haben sollten.
(einfach Typbibliothek importieren)

Alter Mann 14. Jul 2008 19:12

Re: Delphi und autoitx3.dll
 
Hm :gruebel:,

Du hast eine Quelle angegeben aus dem das Beispiel war und zwei Postings unterhalb dieses
Beispiels stand die Erläuterung sowie Lösung.

Und zum anderen steht in der deutschen Hilfe zu ControlGetText
Zitat:

Erfragt Text vom Steuerelement.

ControlGetText ( "title", "text", controlID )

Parameter

title Der Titel des Fensters, auf das zugegriffen werden soll.
text Der Text des Fensters, auf das zugegriffen werden soll.
controlID Die ID des Steuerelements, das beeinflusst werden soll. Siehe Controls.

Rückgabewert

Erfolg: Gibt den Text des Steuerelements zurück.
Fehler: Setzt @error = 1 und gibt einen leeren String "" zurück.
Mehr habe ich nicht gemeint, zu verstehen gab es da nicht viel :wink:

Das es letztendlich an fehlenden Typbibliothek-Import lag :glaskugel:
Ich kann mich da Codewalker nur anschließen.

Gruß

PS Nicht verzagen und weiter Fragen :wink:

wadimwadim 14. Jul 2008 20:20

Re: Delphi und autoitx3.dll
 
warum kommt bei mir ein error, wenn ich eine function aus der typbibliothek aufrufen möchte?

hier bsp zu dem, was ich meine


Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, AutoItX3Lib_TLB ;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
  A: TAutoItX3;
  public
  end;

var
  Form1: TForm1;

implementation
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
A.MouseMove(10, 10, 1);
end;

end.





ERROR
"Zugriffsverletzung bei Adresse 0044F726 in Modul 'Project1.exe'. Lesen von Adresse 00000050."

semo 14. Jul 2008 20:25

Re: Delphi und autoitx3.dll
 
Du musst die Klasse erst mal instanzieren.
Sprich ein Objekt vom Typ TAutoItX3 erstellen.

Zum Beispiel
Delphi-Quellcode:
A := TAutoItX3.Create(...eventuelle Parameter ...);

Diamondback2007 14. Jul 2008 22:21

Re: Delphi und autoitx3.dll
 
Und auch wieder schön freigeben! :P

Luckie 14. Jul 2008 22:32

Re: Delphi und autoitx3.dll
 
Zitat:

Zitat von Diamondback2007
Und auch wieder schön freigeben! :P

Bei Com-Servern reicht es die Instanz auf nil zu setzen. Freigegeben wird sie automatisch von dem COM-Server, wenn sie nicht mehr benötigt wird.

Apollonius 14. Jul 2008 22:33

Re: Delphi und autoitx3.dll
 
Nicht, wenn die Variable mit dem Klassentyp deklariert wird.

Luckie 14. Jul 2008 22:41

Re: Delphi und autoitx3.dll
 
Äh, das sagt mir jetzt nichts. Könntest du mir für beide Fälle bitte ein Beispiel geben?

Diamondback2007 15. Jul 2008 00:01

Re: Delphi und autoitx3.dll
 
Zitat:

Zitat von Luckie
Äh, das sagt mir jetzt nichts. Könntest du mir für beide Fälle bitte ein Beispiel geben?

Ich glaube er meint, dass wir ja trotzdem eine Instanz einer Klasse erstellen und nicht nur das COM-Object.
Also müssen wir auch die Klasse und den damit verbunden Speicher wieder freigeben. Im Destruktor dann das COM-Object auf nil setzen. So hätte ich das jetzt verstanden.

semo 15. Jul 2008 08:41

Re: Delphi und autoitx3.dll
 
dazu müsste man nur in die entsprechende unit mal reinschauen.
orakeln bringt hier nicht viel :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:20 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