Hi, ich könnte mal wieder eure Hilfe gebrauchen.
Habe seit März nichts mit AutoIt gemacht und brauche für den Start Hilfe!
Ich habe dazu 2 Fragen:
1. Wie schreibe ich das untere in Autoit
2. Wie erstelle ich dann die DLL dazu
Danke im voraus, gabischatz
ZitatAlles anzeigen
Schnittstellenbeschreibung
Im Folgenden beschreibe ich die Schnittstelle sowohl für Delphi als auch für C++ Entwickler
Hier die Beschreibung der Funktionen im einzelnen:
[*]GetInterfaceVersion: Die Funktion lieftert wie bereits erwähnt die Schnittstellenversion zurück. Sie ist optional, wird sie nicht exportiert, geht HTML Studio immer von der Version 1 aus.
Beispiel für Delphi:
Beispiel für C++:
[*]GetAuthor: Die Funktion sollte den Namen des Autors, also ihren, zurückgeben. Dieser wird dann in den Informationen zu ihrem Plugin angezeigt. Die Funktion ist optional, wenn sie nicht vorhanden ist, wird eben auch keiner angezeigt.
Beispiel für Delphi:
Beispiel für C++:
[*]GetName: Für den Namen des Plugins zuständig, der im Menü von HTML Studio angezeigt wird. Auch diese Funktion ist optional, im Falle des Falles wird einfach der Dateiname der DLL verwendet.
Beispiel für Delphi:
Beispiel für C++:
[*]GetWeb: Optionale Funktion, die ihre Internetadresse als PChar zurückgeben sollte. Das http ist nicht notwendig. Für einen E-Mail Link stellen sie mailto: voran
Beispiel für Delphi:
Beispiel für C++:
[*]GetDescription: Liefert eine kurze Beschreibung des Plugins zurück. Wenn möglcih sollte sie nicht mehr als 250 Buchstaben betragen. Optional.
Beispiel für Delphi:Codefunction GetDescription: PChar; stdcall;Beginresult:='Diese Plugin wurde als Beispiel für die Pluginschnittstelle erstellt und soll deren Verwendung erklären.';end;
Beispiel für C++:CodePChar __stdcall GetDescription(){return "Diese Plugin wurde als Beispiel für die Pluginschnittstelle erstellt und soll deren Verwendung erklären."}
[*]GetIcon: Liefert ein Handle auf ein Bitmap zurück, das in HTML Studio als Icon angzezeigt wird. Das Bitmap sollte ein Größe von 16x16 Pixeln besitzten. Optional. Hinweis: Das Bitmap muss natürlich vorher erzeugt worden sein und darf erst beim Entladen der DLL wieder freigegeben werden.Beispiel für Delphi:
[*]GetShortCut: Liefert einen Integerwert zurück, der dem ShortCut entspricht. In Delphi verwenden sie einfach TShortCut (ein Word) und erzeugen den ShortCut-Code mit der Funktion ShortCut() aus der Unit "Menus".
Für alle C++ Programmierer: Der ShortCut-Wert ist folgendermaßen aufgebaut: Man nehme den Key-Code der Taste (z.B. 75 für "K"). Dann zähle man hexadezimal dazu: [*]2000, wenn Shift im ShortCut vorkommt [*]4000, wenn Strg im ShortCut vorkommt [*]8000, wenn Alt im ShortCut vorkommt Bitte beachten sie, das sich die ihre ShortCut's nicht mit den ShortCut's von HTML Studio überschneiden. Ein ShortCut muss nicht zwingend festgelegt werden.
Beispiel für Delphi:Codefunction GetShortCut: integer; stdcall;Beginresult:=ShortCut(ord('Y'),[ssAlt]); //Legt Alt+Y als ShortCut fest. Beachten sie, das Y ein Großbuchstabe ist. end;
[*]About: Eine Prozedur, die von HTML Studio aufgerufen wird, wenn der Benutzer den Info-Dialog anfordert. Am besten zeigen sie hier ein Formular an oder eine kleine MessageBox. Auch eine Weiterleitung auf eine Internetseite ist möglich. Optional.
Beispiel für Delphi:Codeprocedure About; stdcall;BeginShowMessage('Testplugin'#10#13'Copyright (c)2002 by Michael Elsdörfer');end;
Beispiel für C++:
[*]Execute: Das Herzstück ihres Plugins. Diese Funktion ist nicht optional! Sie wird aufgerufen, wenn der Benutzer das Plugin ausführen will.
Der Funktion werden einige Parameter übergeben. Das sind:
[*]text (pchar): HTML Studio speichert hier den Text des aktuellen Dokuments. [*]selstart, sellength (integer): Die aktuelle Cursorposition im Dokument und die Länge des markierten Textes. Ist nichts markiert, beträ sellength 0. [*]resulttype (integer): Achtung! Dies ist eine Referenz. Sie müssen hier vor Ende der Funktion einen Integerwert speichern, der angibt, was HTML Studio mit dem zurückgeliefterten Text machen soll:
0 (Standardwert): Keine Rückgabe;
1: Ersetzt den gesamten Text des Dokuments;
2: Ersetzt den markierten Text(oder fügt den Text an der Cursorposition ein
Beispiel für Delphi:Codefunction Execute(text: pchar; selstart, sellength: integer; var resulttype: integer): PChar; stdcall;Begin//Jedes a durch ein e ersetztenStringReplace(text,'a','e', [rfIgnoreCase,rfReplaceAll]);//ResultType setzen: 1 - Alles ersetztenresulttype:=1;//Fertig - Ergebnis zurückgebenresult:=text;end;
Beispiel für C++: