Was ist Active Scripting?
Active Scripting, Bezeichnung von Microsoft für bestimmte Spezifikationen zur interaktiven Gestaltung von dynamischen Webseiten mit dynamischem HTML. Active Scripting stellt die Verbindung zwischen einem Host-Rechner und einer im Prinzip beliebigen Script-Sprache her. Damit können Scripts für einen Host-Rechner, in allen Script-Sprachen erstellt werden, welche die Spezifikationen für Active Scripting einhalten (und für die es einen entsprechenden Interpreter gibt). Windows (ab Version 98) arbeitet standardmäßig mit den Script-Sprachen VBScript und JScript (JavaScript) zusammen.
Der Scriptly ermöglicht es interne Funktionen per Script anzusteuern um Aufgaben zu automatisieren oder Arbeitsabläufe zu vereinfachen. Die Active Script-Schnittstelle erlaubt es beliebige Anwendungen mit beliebigen Skriptsprachen auszustatten. Der Scriptly unterstützt dazu die Skriptsprachen Visual Basic oder JavaScript und stellt weitere Funktionen (oder Methoden) zur Verfügung.
Im Gegensatz zu PHP beginnen Variablen in VBScript und JavaScript NICHT mit einem $
-Zeichen, ansonsten gelten die Regeln wie bei PHP, mit einer Ausnahme. Es dürfen keine so genannten reservierten Wörter benutzt werden.
Variablen sind generell erst mal immer GLOBAL verfügbar.
Wenn man zum Beispiel mit lokalen Variablen in JavaScript arbeiten möchte, muss man im unterschied zu PHP
innerhalb einer Funktion das Schlüsselwort var
voranstellen.
In VBScript verwendet man das Schlüsselwort dim
.
VBScript kennt weitere Schlüsselwörter,
das sind zum einen die Öffentlich-Variablen, die mit dem Wort public
anstelle von dim
deklariert werden.
Soll eine Private-Variable deklariert werden, wird dazu das Wort private
anstelle von dim
verwendet. Prinzipiell unterscheiden sich dim
und private
jedoch nicht.
Im Gegensatz zu anderen Programmiersprachen gibt es in VBScript und JavaScript nur einen einzigen Variablentyp: den Variant, dieser ist als ein „Mischtyp““ zu verstehen.
Im nachfolgenden Abschnitt finden Sie eine Referenz der in Schnittstellen-Funktionen des Scriptly.
In dieser Referenz sind ein paar wichtige Schlüsselwörter, die ich kurz erklären möchte.
- Das
bool
-Schlüsselwort ist ein Alias von System.Boolean. Es wird verwendet, um Variablen zur Speicherung der booleschen Werte true
und false
zu deklarieren.
-
bool function
steht für eine boolean Methode (Funktion).
bool property
steht für eine boolean Eigenschaft eines Objekts.
- Das
string
-Schlüsselwort stellt eine Abfolge von null oder mehr Unicode-Zeichen dar und ist vom Typ String.
- Das
integer
-Schlüsselwort kennzeichnet einen ganzzahligen Typ, in dem Werte entsprechend der Größe und dem Bereich gespeichert werden (-2147483648 bis 2147483647).
- Wenn eine Methode das
void
-Schlüsselwort als Rückgabetyp verwendet, deutet dies darauf hin, dass die Methode keinen Wert zurück gibt.
- Das
object
-Schlüsselwort stellt die Schnittstelle zum Editor dar.
Neben dem Haupt-Script (mit den jeweiligen Datei-Endungen ‘.vb‘ oder ‘.js‘), gehören noch weitere Dateien dazu. Eine ‘.dat‘-Datei und eine ‘.ico‘-Datei mit ansonsten zu dem Script identischen Namen. Letzte Datei ist in der Aktuellen Scriptly-Version nur für DLL-Kompilierte Methoden hinzuzufügen.
Die ‘.dat‘-Datei hat einen einfachen Aufbau und dient als Anzeige des Scripts innerhalb des Scriptly-Menü.
Datei beispiel.dathighlight- as: dat
[de]
Name=Name des Scripts der im Scriptly-Menü angezeigt wird
Hint=Hover-Text der angezeigt wird, wenn die Maus selbigen Menü-Eintrag berührt
[en]
Name=Name of the script
Hint=This script does a lot
Kopieren Sie alle Dateien einfach in den ‘plugins’-Ordner. Dieser ist in der Standard-Version abhängig vom jeweiligen Benutzer C:\Dokumente und Einstellungen\Benutzername\Anwendungsdaten\Webocton - Scriptly\plugins
oder in der Compact-Version C:\Programme\Webocton - Scriptly\plugins
.
Schnittstellen-Dokumentation
Die Schnittstelle gliedert sich in drei Bereiche. Das ist 1. die Applications-Klasse, 2. das Objekt für das aktuell geöffnete Dokument und 3. die Funktionen des Suchen.
-
Um nicht immer application vor eine Funktion schreiben zu müssen, verwenden Sie nachfolgenden Code.
var app = application;
set app = application
Beispiel-Auswertung:
highlight- as: jsswitch (btn)
{
case 1:
app.messageDlg(0, "Der Button OK wurde gedrückt!");
break
case 2:
app.messageDlg(0, "Der Button Abbrechen wurde gedrückt!");
break;
case 3:
app.messageDlg(0, "Der Button Abbrechen wurde gedrückt!");
break;
case 4:
app.messageDlg(0, "Der Button Wiederholen wurde gedrückt!");
break;
case 5:
app.messageDlg(0, "Der Button Ignorieren wurde gedrückt!");
break;
case 6:
app.messageDlg(0, "Der Button Ja wurde gedrückt!");
break;
case 7:
app.messageDlg(0, "Der Button Nein wurde gedrückt!");
break;
case 10:
app.messageDlg(0, "Der Button Wiederholen wurde gedrückt!");
break;
case 11:
app.messageDlg(0, "Der Button Weiter wurde gedrückt!");
break;
default:
app.messageDlg(0, "ESC wurde gedrückt");
}
-
openDlg
string function
var open = app.openDlg();
dim open = app.openDlg()
-
openDocument
void function
var filename;
app.openDocument(filename);
dim filename
app.openDocument(filename)
-
openHelp
void function
var url;
app.openHelp(url);
dim url
app.openHelp(url)
-
programs
string function
var prog = app.programs();
dim prog = app.programs
Gibt eine Komma-separierte Liste der unter Programme angegebenen Programme zurück (“Pfad1=Name1”, “Pfad2=Name2”, etc.). Die Funktion „browsers
“ lässt sich synonym verwenden.
-
projectDirectory
string property
var projOrdner = app.projectDirectory;
dim projOrdner = app.projectDirectory
-
scriptFile
string property
var scriptPfad = app.scriptFile;
dim scriptPfad = app.scriptFile
-
search
object property
var search = app.search;
dim search = app.search
-
showMessage
void function
var str;
app.showMessage(str);
dim str
app.showMessage(str)
-
Im vorherigen Abschnitt Applications-Klasse wurde schon die Einbindung des document
-Objekt beschrieben. Siehe app.document
Dieses Objekt wird benötigt um nachfolgende Methoden (Funktionen) oder Eigenschaften benutzen zu können.
-
Im ersten Abschnitt Applications-Klasse wurde schon die Einbindung des search
-Objekt beschrieben. Siehe app.search
Diese Einbindung wird benötigt um nachfolgende Methoden (Funktionen) oder Eigenschaften benutzen zu können.
-
search
bool function
var searchfor;
var where;
var directory;
var suche = search.search( searchfor, where, directory);
dim searchfor
dim where
dim directory
dim suche = search.search( searchfor, where, directory)
Folgende Werte sind für ‘where
‘ möglich:
0
≙ Aktuelle Datei,
1
≙ Dateien eines Verzeichnis,
6
≙ Geöffnete Dateien
Nachtrag: Liefert immer true
zurück, auch wenn nichts gefunden wurde.
-
previous
bool function
var allfiles;
search.previous( allfiles);
dim allfiles
search.previous( allfiles)
Der Parameter ‘allfiles
‘ existiert nur zu Kompatibilitätszwecken und hat keine Auswirkungen.
-
next
bool function
var allfiles;
search.next( allfiles);
dim allfiles
search.next( allfiles)
Der Parameter ‘allfiles
‘ existiert nur zu Kompatibilitätszwecken und hat keine Auswirkungen.
-
optCaseSensitive
bool property
var optCS = search.optCaseSensitive;
optCS = search.optCaseSensitive
search.optCaseSensitive
= true;
dim optCS = search.optCaseSensitive
search.optCaseSensitive
= true
-
optWholeWords
bool property
var optWW = search.optWholeWords;
search.optWholeWords
= true;
dim optWW = search.optWholeWords
search.optWholeWords
= true
-
optRegEx
bool property
var optRE = search.optRegEx;
search.optRegEx
= true;
dim optRE = search.optRegEx
search.optRegEx
= true
-
optIncludeSubDirs
bool property
var optISD = search.optIncludeSubDirs;
search.optIncludeSubDirs
= true;
dim optISD = search.optIncludeSubDirs
search.optIncludeSubDirs
= true
-
optFromCursor
bool property
var optFC = search.optFromCursor;
search.optFromCursor
= true;
dim optFC = search.optFromCursor
search.optFromCursor
= true
-
optInSelection
bool property
var optIS = search.optInSelection;
search.optInSelection
= true;
dim optIS = search.optInSelection
search.optInSelection = true
-
optSilentSearch
bool property
var optSS = search.optSilentSearch;
search.optSilentSearch
= true;
dim optSS = search.optSilentSearch
search.optSilentSearch = true
-
optUnGreedy
bool property
var optUG = search.optUnGreedy;
dim optUG = search.optUnGreedy
-
optSingleLine
bool property
var optSL = search.optSingleLine;
dim optSL = search.optSingleLine
-
optMultiLine
bool property
var optML = search.optMultiLine;
dim optML = search.optMultiLine
Beispiel: Sucheinstellung zwischen speichern und nach der Suche wieder herstellen.
highlight- as: js
var search = app.search;
var optCS = search.optCaseSensitive;
var optWW = search.optWholeWords;
var optRX = search.optRegEx;
var optID = search.optIncludeSubDirs;
var optFC = search.optFromCursor;
var optIS = search.optInSelection;
var optSS = search.optSilentSearch;
search.optRegEx = false;
search.optCaseSensitive = true;
var searchfor = "Hier trage Deinen Suchbegriff ein";
var where = 0;
var directory = "";
var suche = search.search( searchfor, where, directory);
application.showMessage(suche);
search.optCaseSensitive = optCS;
search.optWholeWords = optWW;
search.optRegEx = optRX;
search.optIncludeSubDirs = optID;
search.optFromCursor = optFC;
search.optInSelection = optIS;
search.optSilentSearch = optSS;
Folgendes Script ist in JavaScript geschrieben und entfernt sämtliche leeren Zeilen aus dem aktiven Dokument im Scriptly.
Datei beispiel.jshighlight- as: js
var app = application;
var doc = app.document;
var docTxt = doc.text;
var txtOut = "";
var tmp = new Array();
tmp = docTxt.split("\n");
for(x=0; x<tmp.length; x++)
{
if (trim(tmp[x])!="")
txtOut += tmp[x];
}
doc.text = txtOut;
function trim (text)
{
return text.replace (/^\s+/, '').replace (/\s+$/, '');
}