Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

nettalk:scripting:makeplugins [2011/02/04 22:46]
213.5.64.179 http://bilinucots.bloguez.com/bilinucots/1619979/Best-Prices-On-Tylenol taking tylenol in pregnancy safe does tylenol cause bleeding gastric ulcer http://bilinucots.bloguez.com/bilinucots/1619979/Best-Prices-On-Tylenol urso jpeg d urso pictures http://glitterveins.com/social/pg/profile/taigyscecppi sottosegretario urso urso metallverarbeitung topic http://profiles.friendster.com/123611623 emiliano urso sintomi lowest urso prices http://kaubattfec.blog.igg.com/article.php?id=769474 taking motrin after tylenol tylenol make baby drowsy http://prodtunglo.blog.igg.com/article.php?id=769473 snort tylenol codeine cold water extraction tylenol 650 mg communications http://acjocla.bloguez.com/acjocla/1619982/Pharmacy-Online-Tylenol scholarships tylenol year tylenol with percocet http://www.splinder.com/myblog/post/754663/23984154/yes percent yield tylenol eminem tylenol island missy elliot http://www.stumbleupon.com/stumbler/Tylenol-zCBD tylenol for infants side effects singulair and tylenol http://unedfuback.blogol.hu/read/ how is tylenol mobile tylenol codeine elixir dosage mg http://kaubattfec.blog.igg.com/article.php?id=769475 depakote er package insert valproic acid valproic acid dosing http://www.stumbleupon.com/stumbler/Tylenol-joIk tylenol assay recommended treatment of tylenol 3 http://acjocla.bloguez.com/acjocla/1619983/Online-Valtrex-Prescription typical valtrex side effects valtrex too much http://prodtunglo.blog.igg.com/article.php?id=769476 valsartan hydrochlorothiazide buy how does valsartan work http://kaubattfec.blog.igg.com/article.php?id=769478 posologia valtrex adultos valtrex gsk herpes labialis http://profiles.friendster.com/123611648 site valtrex valtrex and aba http://gexmater.blog.igg.com/article.php?id=769479 valacyclovir or zovirax valacyclovir oral http://www.femlina.com/pg/profile/presporca sildenafil vardenafil y tadalafil inhibitors vardenafil query buy vardenafil levitra http://www.splinder.com/myblog/post/754666/23984182/yes remix tylenol and nyquil outdated tylenol strength
nettalk:scripting:makeplugins [2011/02/05 02:50] (aktuell)
mirici alte Version wieder hergestellt
Zeile 1: Zeile 1:
-http://​bilinucots.bloguez.com/​bilinucots/​1619979/​Best-Prices-On-Tylenol taking tylenol in pregnancy safe does tylenol cause bleeding gastric ulcer http://bilinucots.bloguez.com/​bilinucots/​1619979/​Best-Prices-On-Tylenol urso jpeg d urso pictures http://​glitterveins.com/​social/​pg/​profile/​taigyscecppi sottosegretario urso urso metallverarbeitung topic http://​profiles.friendster.com/​123611623 emiliano urso sintomi lowest urso prices http://​kaubattfec.blog.igg.com/​article.php?id=769474 taking motrin after tylenol tylenol make baby drowsy http://prodtunglo.blog.igg.com/​article.php?​id=769473 snort tylenol codeine cold water extraction tylenol 650 mg communications http://acjocla.bloguez.com/​acjocla/​1619982/​Pharmacy-Online-Tylenol scholarships tylenol year tylenol with percocet http://www.splinder.com/​myblog/​post/​754663/​23984154/​yes percent yield tylenol eminem tylenol island missy elliot http://www.stumbleupon.com/​stumbler/​Tylenol-zCBD tylenol for infants side effects singulair and tylenol http://​unedfuback.blogol.hu/read/ how is tylenol mobile tylenol codeine elixir dosage mg http://​kaubattfec.blog.igg.com/article.php?id=769475 depakote er package insert valproic acid valproic acid dosing http://www.stumbleupon.com/stumbler/Tylenol-joIk tylenol assay recommended treatment of tylenol 3 http://acjocla.bloguez.com/​acjocla/​1619983/​Online-Valtrex-Prescription typical valtrex side effects valtrex too much http://​prodtunglo.blog.igg.com/article.php?​id=769476 valsartan hydrochlorothiazide buy how does valsartan work http://kaubattfec.blog.igg.com/article.php?​id=769478 posologia valtrex adultos valtrex gsk herpes labialis http://profiles.friendster.com/​123611648 site valtrex valtrex and aba http://​gexmater.blog.igg.com/article.php?​id=769479 valacyclovir or zovirax valacyclovir oral http://www.femlina.com/pg/​profile/​presporca sildenafil vardenafil y tadalafil inhibitors vardenafil query buy vardenafil levitra http://www.splinder.com/​myblog/​post/​754666/23984182/yes remix tylenol and nyquil outdated tylenol strength ​+====== Plugins für Nettalk erstellen ====== 
 + 
 +Nettalkplugins sind einfache Win32-AnwendugnenDie Kommunikation läuft über Fensternachrichten ab. 
 + 
 +[[cppPluginTutorial|Zum C++ Plugin-Tutorial]] 
 + 
 +===== Konstanten ===== 
 + 
 +<code vb> 
 +WM_SETTEXT = 12 
 +PLUGIN_NAME = "​Testplugin"​ 'Name des Plugins mit dem es sich bei Nettalk meldet 
 +</code> 
 + 
 +===== Variablen ===== 
 + 
 +<code vb> 
 +hNetWhd '​Fensterhandel des Kommunikationsfensters von Nettalk 
 +hPlgWhd '​Fensterhandel des eignenden Kommunikationsfensters 
 +</code> 
 + 
 +===== Windows-APIs ===== 
 + 
 +<code vb> 
 +SendMessage 
 +GetCommandLine 
 +</code> 
 + 
 + 
 + 
 +===== Plugin laden ===== 
 + 
 +Nettalk startet das Plugin und übergibt dabei als Parameter das Fensterhandel seines KommunikationsfenstersDas Plugin muss nun selber ein Fenster erstellen um Nachrichten von Nettalk erhalten zu könnenDer Handel des erstellten Fensters wird einer Variable (''​hPlgWhd''​) zugewiesen. 
 + 
 + 
 +===== Kommunikation vorbereiten ===== 
 + 
 +Das Plugin liest den Parameter mit GetCommandLine aus, dafür werden nur die Zeichen nach dem letzten Leerzeichen benötigDiese Zeichenkette enthält nun die Fensterhandel,​ die in eine Zahlenvariable (''​hNetWhd''​) konvertiert werden sollte. 
 +Um besser Testen zu können macht es durchaus Sinn diesen Schritt während des Testens durch eine direkte feste Zuweisung der Variable ''​hNetWhd''​ zu ersetzenDen nötigen Wert der Handel kann in Nettalk mittels ''​?DataPort''​ ermittelt werden. 
 + 
 + 
 +===== Anmelden ===== 
 + 
 +Nun stellt sich das Plugin bei Nettalk vor indem es Seinen Namen und seine Fensterhandel (''​hPlgWhd''​) an Nettalk sendet. 
 + 
 +<​code>​ 
 +SendMessage hNetWhd, WM_SETTEXT, -1, PLUGIN_NAME + " inst " + NumberToText(hPlgWhd) 
 +</code> 
 + 
 +Dieser Vorgang kann alternativ auch über DDE erfolgen, dies macht vor allem Sinn wenn es sich nicht um ein Plugin im eigentlichen Sinne, sondern um ein eigenes Programm handelt, das mit Nettalk Kommunizieren soll(Der Servername ist "​Nettalk"​ und das Topic "​MainWindow"​Es kann sowohl ''​XTYP_EXECUTE''​ wie auch ''​XTYP_POKE''​ verwendet werden.
 + 
 +HINWEISPLUGIN_NAME darf KEINE LEERZEICHEN enthalten! 
 + 
 +===== Events registrieren ===== 
 + 
 +Jetzt, aber auch zu jedem Späteren Zeitpunkt, können Events registriert werden die von Nettalk an das Plugin gesendet werden sollen. 
 + 
 +<code vb> 
 +Beispiel: 
 +SendMessage hNetWhd, WM_SETTEXT, ​-1, PLUGIN_NAME + " addevent Chan_Msg"​ 
 +SendMessage hNetWhd, WM_SETTEXT, ​-1, PLUGIN_NAME + " addevent Serv_Query"​ 
 +SendMessage hNetWhd, WM_SETTEXT, -1, PLUGIN_NAME + " addevent FrameChange"​ 
 +</​code>​ 
 + 
 +Eine Vollständige Liste aller Events ist in Nettalk unter ''​Script > Bearbeiten > Ereignisse:''​ zu finden. 
 +Eine Sonderstellung haben die Folgenden Events, sie müssen nicht erst registriert werden: 
 + 
 +''​**Unload**'':​ Das Plugin soll beendet werden, z.BWeil Nettalk beendet wirdDieses Events sollte auf jeden Fall beachtet werden. 
 + 
 +''​**Show**''​Es soll der Optionsdialog des Plugins, wenn vorhanden, angezeigt werden. 
 + 
 +''​**Return**''​/''​**Returnerror**'':​ Antwort auf eine Anfrage die mit dem Befehl ''​request''​ gestellt wurde. 
 + 
 + 
 + 
 + 
 +===== Events empfangen ===== 
 + 
 +Die auftretenden Events werden auf die gleiche Weise wie das Plugin sendet, von Nettalk an das Plugin gesendet. Der Aufbau der Nachricht ist folgender MaßenEventname, ein Lehrzeichen (Byte mit dem Wert 32, in Hex 20), dann alle Argumente, voneinander abgetrennt durch ein Byte mit dem Wert 27 (in Hex 1B). 
 + 
 +Hinweis: Wenn die Window-Message ​//WM_SETTEXT// eigenständig Verarbeitet wird (z.Büber eine Nachrichtenschleife) muss __unbegingt__ darauf geachtet werden, dass als Anwort der Wert ''​-1''​ zurückgegeben wird! Wird dies nicht getan geht Nettalk davon aus, dass das Plugin nicht mehr korrekt arbeitet und senden dann auch keine Botschaften mehr (auch keinen **unload** Befehl)!! 
 + 
 + 
 + 
 + 
 +===== Pluginbefehle ===== 
 + 
 +Neben addevent und inst gibt es noch folgende Befehle die die von Nettalk direkt verarbeitet werden: 
 + 
 +''​**RemEvent**'':​ Löscht die Registrierung eines mit AddEvent eingetragenen Events. 
 + 
 +<code vb> 
 +SendMessage hNetWhd, WM_SETTEXT, -1, PLUGIN_NAME + " remevent Chan_Msg"​ 
 +</code> 
 + 
 + 
 +''​**Unload**'':​ Sagt Nettalk das das Plugin nun beendet wird, dieser Befehl sollte immer an Nettalk gesendet werden wenn das Plugin beendet wird. 
 + 
 +<code vb> 
 +SendMessage hNetWhd, WM_SETTEXT, -1, PLUGIN_NAME + " unload"​ 
 +</​code>​ 
 + 
 + 
 +''​**Send**''​Löst in Nettalk das Scriptevent ''​PluginEvent''​ aus. 
 + 
 +<code vb> 
 +SendMessage hNetWhd, WM_SETTEXT, -1, PLUGIN_NAME + " send Hallo Script ich bin ein Plugin!"​ 
 +</code> 
 + 
 +''​**Request**'':​ Sendet einen Ausdruck an NettalkDer Rückgabewert kommt über ReturnWenn ein Fehler dabei aufgetreten ist wird an stelle von ''​Return''​ ''​Returnerror''​ ausgelöst. 
 + 
 +<code vb> 
 +SendMessage hNetWhd, WM_SETTEXT, -1, PLUGIN_NAME + " request 5+6*2+sin(pi+5)"​ 
 +SendMessage hNetWhd, WM_SETTEXT, -1, PLUGIN_NAME + " request GetCaption(FrontFrameID)"​ 
 +</code> 
 + 
 +(Weiter Informationen zu **''​Request''​** erhalten Sie auf der Seite [[nettalk:scripting:​events|Scriptereignisse]] bei den Funktionen **''​Return''​** und **''​ReturnError''​**) 
 + 
 +Eine Übersicht der Funktionen ist unter [[nettalk:​scripting:​befehle|Scriptfunktionen]] zu Finden ("​Funktionen",​ "​Funktionen ohne Argumente"​ und "​Konstanten"​ können verwendet werden.). 
 + 
 +Um das Script vom Plugin aus zu Steuern gibt es noch die Funktionen ''​scriptstop'',​ ''​scriptstart'',​ ''​getscripttext'',​ ''​setscripttext''​ und ''​errordone''​. 
 + 
 +Da mittels request nur Funktionen im eigentlichen Sinne, also mit Rückgabewert verwendet werden können, kommt man leider für viele Sachen, z.BTextausgabe bisher in Nettalk nicht ohne ein kurzes zusätzliches Script aus. 
 + 
 +''​**SendCom**''​Sendet einen Text an NettalkDer Text wird wie eine Eingabe vom Benutzer behandelt und z.B. gesendet oder wenn es mit einem anfaengt als Befehl ausgefuehrtZu beachten ist, das zwischen "​SendCom"​ und der Benutzereingabe die FrameID des Fensters immer angegeben werden muss, in dem die Eingabe ausgeführt werden soll. 
 +Die FrameID kann in Nettalk fuer das aktuelle Fenster testweise ermittelt werden mit 
 + 
 +?​FrontFrameID 
 + 
 +<code vb> 
 +SendMessage hNetWhd, WM_SETTEXT, -1, PLUGIN_NAME + " sendcom 2 /echo Hallo Welt"​ 
 +</code> 
 + 

Eigene Werkzeuge