#include UserSettings.ini [General] Debug=198 SysFonts=1 Options=4 ; Options: Set [DeleteApps DeleteMacs Ignored Reserved Append Convert Overwrite] FileColor=128 NoKeyEsc=1 ClipCopyAmount=0 CRLFConv=0 Paragraphs=0 HintDelay=1800 NoSplash=0 TrayClick=0 NoEscPrefix=1 ShiftState=1 Proportional=0 KbdClick=1 ShowTrayIcon=1 PinPos=1,400,400 Language=en Wordwrap=1 EditFontSize=8 CommandMode=1 Version=3.5.9.3 Position=474,23,462,554 WindowColor=16777215 Sorting=ANSI ; Change this to "numeric" for sorting by character value EditorPos=13, 248, 861, 453 OpenWindow=1 ProxyServer= UseIEProxy=0 ReplaceBaseIni=0 ShowTooltips=1 ReadFtp=0 WriteFtp=0 DictFtp=0 FtpPassive=1 FtpHost= FtpDir=/ FtpUser= FtpPwd= UseProxy=0 Programs=Notepad ("Notepad.exe"),Wordpad ("Wordpad.exe") MacroExecPwd= PasswordColor=16766666 DialogColor=-2147483633 SyncMethod=FTP NetDrivePath= LargerListFont=0 SplitterPos=206 ShowSplitter=1 TEditorPos=136, 190, 738, 586 TParagraphs=0 TProportional=0 TWordwrap=1 TSplitterPos=300 TShowSplitter=1 TEditFontSize=8 NoMsgRestriction=0 NoMsgContextMenu=1 FlushInterval=20 CheckUpdate=1 RestoreUpdates=1 ShowRecInd=0 ShowFtpInd=1 ProxyUser= ProxyPwd= AutoVerify=1 UpdateStatus=0 Urls=http://www.typer.de,http://www.viebke.info ModulePath=/modules.sc CheckUpdateIndex=1 LastUpdate= 3.98490933912037E+0004 UseProxyList=1 Withdraw=0 [Completion] Completion=1 DictionaryFile=Dict.txt DefaultWords=allerdings, andererseits, besonderen, insbesondere, beispielsweise StopWords=diese, diesem, diesen, dieser, dieses, ganze, ganzem, ganzen, ganzer, ganzes, selten, unser Syllables=mit, bei, ent, über, unter, weiter, heraus, zer, gegen, trans, inter, edel, sonder, hyper, schwarz, blau, grün Delimiters=%()[]{}<>="' SpaceCharacters=_ DefPriority=0 AlwaysShow=0 FollowUps=1 Rollover=1 ExtendedSearch=1 Abbreviation=1 SubWords=1 Resolve=121,0 IgnoreBuffer=0 PhraseDelimiters=.,;:!? [MacroFiles] Number=0 [WinAppRegs] Number=0 [ErrorLog] Position=463,55,391,223 ErrorLevel=3 MaxErrors=200 [Recording] Position=496, 77, 460, 252 MonitorPos=500,200 BufferWarning=1 ShowRecMon=1 [Updates] Denied=0 [Apps] Number=3 AppDelay=800 Resolve=122,0 A2=ex ,Explorer.exe,, A3=np ,Notepad.exe,, A1=da ,*Datum in Textfenster einfügen,,\[+c]¤parse(macro("#da"));¤exit; [Macros] Number=11 Resolve=118,0 ClearQueue=1 KeyShortcuts=1 PasteText=0 SortMacros=1 ResortSysMacros=1 MaxDiff=800 MinDiff=800 Delay=10 KeyDelay=5 Repeat=2 Wildcards=1 M1=33224,@ff0000* C1=53,Textbausteine H1=0,0 P1= M2=202,##b\[+c]¤¤NAME:=input("","Enter the name of the environment:")¤Result:="\\begin\{"+$NAME+"\}\n\ \n\b\b\\end\{"+$NAME+"\}\u";¤echo Result;¤* C2=113,Insert begin-end with prompt H2=66,6 P2= M3=202,##c\[+c]¤¤NAME:=input("","Enter the reference key:")¤Result:="~\\cite\{"+$NAME+"\}";¤echo Result;¤¤* C3=109,Insert \~cite{} with prompt H3=67,6 P3= M4=394,##eq-r\[+c]¤¤NAME:=input("","Enter the reference key:")¤Result:="~\\eqref\{"+$NAME+"\}";¤echo Result;¤¤* C4=113,Insert \~eqref{} with prompt H4=69,6 P4= M5=458,##float\[+c]¤¤\[+t Text]¤¤\\begin\{figure\}[h!]¤\\begin\{center\}¤ \\includegraphics[scale=1]\{\}¤\l\l\\end\{center\}¤\\caption\{C\} ¤\\label\{fig:\}¤\\end\{figure\}¤\u\l\l¤¤¤\[-t]¤¤echo $Text¤* C5=121,Insert float env with pictures H5=70,6 P5= M6=202,##i\[+c]¤RESULT:="";¤lists (KEYS,SZ)¤ "align" "\\begin\{align\}\n\ \n\\end\{align\}\l\l\l\l\l\l\l\l\l\l\l\b\b\l"¤ "cite" "~\\cite\{\}\l"¤ "ref" "\\ref\{\}\l"¤ "sub\upper script" "^\{\}_\{\}\l\l\l\l"¤;¤repeat (Z,KEYS) {¤ case KEYS[Z] RESULT:=SZ[Z];¤ break;¤}¤if (RESULT="") {¤ P:=popup(KEYS);¤ if P=-1 halt;¤ RESULT:=SZ[index(KEYS,P)];¤}¤echo RESULT;¤* C6=89,Insert items from menu H6=73,6 P6= M7=202,##r\[+c]¤¤NAME:=input("","Enter the reference key:")¤Result:="~\\ref\{"+$NAME+"\}";¤echo Result;¤¤* C7=105,Insert \~ref{} with prompt H7=67,6 P7= M8=650,##subfloat\[+c]¤¤\[+t Text]¤\\begin\{figure\}[h!]¤\\begin\{center\}¤ \\subfloat[T]\{¤ \\includegraphics[scale=1]\{\}¤\l\l\}¤\\subfloat[T]\{¤ \\includegraphics[scale=1]\{\}¤\l\l\}¤\l\l\\end\{center\}¤\\caption\{C\} ¤\\label\{fig:\}¤\\end\{figure\}¤\u\l\l¤\[-t]¤¤echo $Text¤¤* C8=133,Insert subfloat env with pictures H8=83,6 P8= M9=202,#$$\[+c]¤\[+t Text]¤$$ \l\l¤\[-t]¤¤echo $Text¤¤* C9=37,Insert $$ H9=52,6 P9= M10=202,#da\[+c]¤// Ort und Datum ausgeben¤// ----------------------¤¤echo "Musterstadt, "+date("d. mmmm yyyy")+"\n";¤return;* C10=53,Ort und Datum H10=0,0 P10= M11=72,*\[+c]¤// Dieses Makro mit dem Spezialkürzel * fängt den Fall ab, dass¤// kein Kürzel passt. Löschen Sie es, wenn es Sie stört.¤// ------------------------------------------------------------¤¤arrays (KEYS,NAMES)¤ "mail" "muster@mustermann.de"¤ "ggf" "gegebenenfalls"¤ "bsp" "beispielsweise"¤ "anf" "vielen Dank für Ihre Anfrage!"¤ "mfg" "Mit freundlichen Grüßen\nMustermann"¤ ;¤¤if (IDX:=index(KEYS,SUFFIX)) {¤ S:=NAMES[IDX];¤ if KEYS[IDX][1]!=SUFFIX[1] S[1]:=upper(S[1]);¤ echo(S);¤ exit;¤ }¤¤if (S:=popup(NAMES))!=-1 echo(S);¤* C11=105,Catch all (letztes Makro!) H11=0,0 P11= M12=207,#ttVersion.txt* C12=105,Datei Version.txt ausgeben H12=0,0 P12= M13=264,#url\[+c]¤¤// Noch ein Makro, das Texte zur Auswahl anbietet und ausgibt.¤// -----------------------------------------------------------¤¤lists (NAMES,URLS) ¤ "typer.de" "http://www.typer.de/",¤ "denic.de" "http://www.denic.de/",¤ "metager.de" "http://www.metager.de/"¤ ;¤¤URL:=popup(NAMES);¤if (URL=-1) {¤ beep;¤ return;¤ }¤¤URL:=index(NAMES,URL);¤if URL print(URLS[URL]);¤* C13=49,URL ausgeben H13=0,0 P13= M14=328,float\[+c]¤// Beispielmakro, das zeigt, wie man Variablen dauerhaft in einer¤// Datei speichert und wieder einliest. Die erste Variable (A) ist¤// eine Fließkommazahl (PI), die zweite (B) eine Ganzzahl (2)¤// ---------------------------------------------------------------¤¤function savevars(V,PATH) {¤ VL[]:=V[];¤ j:=VL;¤ for (i:=1; (i<=j); ++i) {¤ if isfloat(*(VL[i])) {¤ VL.add(sci(*(VL[i]),10));¤ }¤ else VL.add(*(VL[i]));¤ }¤ save(VL,PATH);¤}¤function loadvars(PATH) {¤ VL[]:=load(PATH);¤ for (i:=1; (i<=(VL/2)); ++i) {¤ *(VL[i]):=[replace(VL[i+VL/2],',','.')];¤ }¤}¤¤P:=getenv("TEMP")+"\vars.txt";¤A:=PI; B:=2;¤savevars("A B",P);¤A:=0; B:=0;¤loadvars(P);¤lprint A;¤lprint B;¤* C14=189,Beispiel zur dauerhaften Speicherung von Zahlen H14=0,0 P14= M15=72,*\[+c]¤// Dieses Makro mit dem Spezialkürzel * fängt den Fall ab, dass¤// kein Kürzel passt. Löschen Sie es, wenn es Sie stört.¤// ------------------------------------------------------------¤¤arrays (KEYS,NAMES)¤ "mail" "muster@mustermann.de"¤ "ggf" "gegebenenfalls"¤ "bsp" "beispielsweise"¤ "anf" "vielen Dank für Ihre Anfrage!"¤ "mfg" "Mit freundlichen Grüßen\nMustermann"¤ ;¤¤if (IDX:=index(KEYS,SUFFIX)) {¤ S:=NAMES[IDX];¤ if KEYS[IDX][1]!=SUFFIX[1] S[1]:=upper(S[1]);¤ echo(S);¤ exit;¤ }¤¤if (S:=popup(NAMES))!=-1 echo(S);¤* C15=105,Catch all (letztes Makro!) H15=0,0 P15= M16=33224,@0000ce* C16=49,Systemmakros H16=0,0 P16= M17=328,$copy\[+c]¤// Dieses Makro wird ausgeführt, wenn Text in die¤// Zwischenablage kopiert wird.¤// ----------------------------------------------¤¤// play(BASEDIR+"Sounds\Click1.wav");¤¤// Hier wird noch ein weiteres Makro ausgeführt:¤¤if (IDX:=macroindex("$copy.")) parse(macrotext(IDX));¤* C17=205,Wird beim Kopieren in die Zwischenablage ausgeführt H17=0,0 P17= M18=520,$default* C18=125,Wird vor jedem Makro ausgeführt H18=0,0 P18= M19=328,$exit\[-o+c]¤// Dieses Makro sichert beim Beenden von ShortCut¤// den Textpuffer und den Text in der Zwischenablage im¤// Anwendungsdaten\ShortCut-Verzeichnis des Benutzers.¤// Sofern verfügbar, wird das Passwort des beim Start¤// zuletzt geladenen verschlüsselten Makros verwendet.¤¤if (!defined('_PASS')) global _PASS:='';¤if (length(_PASS)<6) global _PASS:="ShortCut";¤if (length(_PASS)>=6) {¤ save(encrypt(squeeze(trim(textbuffer())),_PASS),HOMEDIR+"Buffer.txt");¤ if (length(BUF:=clip())!=0)¤ save(encrypt(squeeze(trim(BUF)),_PASS),HOMEDIR+"Clipbrd.txt");¤ }¤¤// Ein zusätzliches Makro ausführen, falls vorhanden:¤¤if (IDX:=macroindex("$exit.")) parse(macrotext(IDX));¤* C19=113,Wird beim Beenden ausgeführt H19=0,0 P19= M20=328,$init\[-o+c]¤// Dieses Makro wird beim Start von ShortCut ausgeführt. Es¤// sichert zuerst die aktuelle Konfiguration im temporären¤// Verzeichnis.¤// Dann liest es den Textpuffer und den Text für die Zwischen-¤// ablage aus dem Anwendungsdaten\ShortCut-Verzeichnis des¤// Benutzers. Sofern die entsprechenden Dateien verschlüsselt¤// sind, versucht das Makro sie zu entschlüsseln. Hierfür wird¤// das Passwort des zuletzt geladenen verschlüsselten Makros ¤// verwendet, sofern verfügbar. Andernfalls wird als Passwort¤// "ShortCut" verwendet.¤// ------------------------------------------------------------¤¤// Zuerst ein Backup der Konfiguration machen¤¤DIR:=getenv("TEMP");¤if direxists(DIR+"\ShortCut") DIR:=DIR+"\ShortCut";¤¤if direxists(DIR) {¤ F[]:=filelist(HOMEDIR+"ShortCut.*");¤ repeat (I,F) {¤ T:=DIR+"\"+date("yyyymmdd-hhmmss-")+filename(F[I]);¤ copyfile(F[I],T);¤ NL:=chr(13)+chr(10);¤ if exists('c:\winnt\bin\touch.exe')¤ console('cmd.exe','c:\winnt\bin',1,'touch '+T+NL);¤ }¤ }¤ ¤// Textpuffer und Zwischenablage einlesen¤¤global _PASS:='';¤MACS[]:=macrolist();¤repeat (M,MACS) {¤ P:=macropassword(MACS[M]);¤ if (P<>'') global _PASS:=P;¤ }¤if (length(_PASS)<6) global _PASS:="ShortCut";¤if (length(_PASS)>=6) {¤ BUF:=file(HOMEDIR+"Buffer.txt");¤ if (S:=decrypt(BUF,_PASS)) textbuffer(S);¤ else {¤ if (S:=decrypt(BUF,"ShortCut")) textbuffer(S);¤ }¤ BUF:=file(HOMEDIR+"Clipbrd.txt");¤ if (S:=decrypt(BUF,_PASS)) clip(S);¤ else {¤ if (S:=decrypt(BUF,"ShortCut")) clip(S);¤ }¤ }¤¤// Zusätzliche Makros ausführen, falls vorhanden¤¤foreach FUNC ("$functions","$init.") {¤ if (IDX:=macroindex($FUNC)) parse(macrotext(IDX));¤ }¤¤return;¤* C20=105,Wird beim Start ausgeführt H20=0,0 P20= M21=392,$match\[+c]¤// Hier können Sie bei Bedarf Ihre eigene Vervollständigungs-¤// funktion implementieren.¤// ----------------------------------------------------------¤¤complete(popup(match(lastword())));¤* C21=213,Wird bei ausgeschalteter Vervollständigung ausgeführt H21=0,0 P21= M22=520,$nomacro\[+c]¤// Wenn der Hotkey zur Kürzelauflösung gedrückt wurde, die¤// letzte Eingabe jedoch kein Kürzel war, dann wird dieses¤// Makro ausgeführt. Löschen Sie es, wenn Sie es nicht¤// benötigen oder ersetzen Sie es durch die Anweisung beep;¤// ---------------------------------------------------------¤¤// Das Makro zeigt die Liste der verfügbaren Makros an und¤// führt das ausgewählte aus. Es nimmt an, dass Kürzel nicht¤// mehrfach vergeben wurden.¤¤MACS[]:=macrolist();¤for (I:=MACS; I!=0; --I) {¤ if (macroflags(+I)&16) delete(MACS,I);¤ }¤¤if (M:=popup(MACS))<>-1 {¤ L:=lastword();¤ if L=length(L) repeat L echo('\b');¤ parse(macro($M));¤ }¤* C22=141,Kein Kürzel bei manueller Auflösung H22=0,0 P22= M23=520,$nomatch\[+c]¤// Wenn die Vervollständigung kein Wort findet, versucht dieses¤// Makro es erneut, jedoch ab dem zweiten Buchstaben des zuletzt¤// eingegebenen Wortes. Dieses Wort muss mindestens 2 Zeichen¤// lang sein.¤// -------------------------------------------------------------¤¤if length(L:=lastword())<2 {¤ play(BASEDIR+"ShortCut.wav");¤ exit;¤}¤¤L:=substr(L,2,length(L)-1);¤S:=popup(match(L));¤¤// Wenn der Benutzer ein Wort ausgewählt hat, muss es komplett ¤// geschrieben und nicht nur der fehlende Teil ergänzt werden.¤// Deshalb wird der Rückgabewert 0 von popup() (Eingabetaste)¤// durch 1 (Rückschritt-Taste) ersetzt.¤¤if (S!="") {¤ if (S=0) #S:=1;¤ print(complete(S));¤ }¤* C23=157,Leere Wörterliste bei Vervollständigung H23=0,0 P23= M24=392,$paste\[+c]¤// Mit diesem Makro können Sie darauf reagieren, wenn Text¤// mit Strg-v aus der Zwischenablage eingefügt wurde.¤// ---------------------------------------------------------¤¤// play(BASEDIR+"Sounds\Click2.wav");¤¤// Hier wird noch ein weiteres Makro ausgeführt:¤¤if (IDX:=macroindex("$paste.")) parse(macrotext(IDX));¤* C24=209,Wird beim Einfügen aus der Zwischenablage ausgeführt H24=0,0 P24= M25=456,$record\[+c]¤option keydelay 10;¤option delayinterval 1;¤echo($$$);¤exit;¤* C25=105,Vorlage für Aufzeichnungen H25=0,0 P25= M26=584,$richtext\[+c]¤\[+t TXT]\[-t]¤clip(TXT,"Rich Text Format");¤echo("\w\^v");¤exit;¤* C26=157,Vorlage für RTF-Makro per Drag and Drop H26=0,0 P26= M27=712,$statistics\[-o+c]¤¤if (VERSION<3050705) {¤ message("Das Statistik-Makro erfordert mindestens Version 3.5.7.5");¤ exit;¤ }¤¤PageItems:=10; // Spalten pro Seite¤PageDir:=getenv("TEMP")+"\"; // Ausgabeverzeichnis¤FilePrefix:="Usage-"; // Präfix der Dateinamen¤FileTag:=$FilePrefix+date("yy-mm-dd-hh-nn-ss-"); // Kennzeichnung der Dateinamen¤DelOldFiles:=1; // Alte Statistikdateien löschen¤MacCols:=1; // Makros in den Spalten¤¤lists (Tasks,Cmds)¤ 'Computer statt Makros in den Spalten' '+(MacCols:=0);'¤ 'Systemmakros ($init, $copy usw.) löschen' '+statistics(5,"\$*");'¤ 'Nicht verwendete Makros löschen' '+statistics(6,1,date("dd.mm.yy",-60));'¤ 'Häufig verwendete Makros löschen' '+statistics(7,100,date("dd.mm.yy",-60));'¤ 'Rechner aufsteigend nach Makrozugriffen sortieren' 'COMPS[]:=statistics(22,CLACC,1);'¤ 'Rechner absteigend nach Makrozugriffen sortieren' 'COMPS[]:=statistics(22,CLACC,0);'¤ 'Rechner aufsteigend nach letztem Zugriff sortieren' 'COMPS[]:=statistics(24,CLACC,1);'¤ 'Rechner absteigend nach letztem Zugriff sortieren' 'COMPS[]:=statistics(24,CLACC,0);'¤ 'Makros aufsteigend nach Gesamthäufigkeit sortieren' 'HMACS[]:=statistics(10,HLACC,1);'¤ 'Makros absteigend nach Gesamthäufigkeit sortieren' 'HMACS[]:=statistics(10,HLACC,0);'¤ 'Makros aufsteigend nach letztem Zugriff sortieren' 'HMACS[]:=statistics(12,HLACC,1);'¤ 'Makros absteigend nach letztem Zugriff sortieren' 'HMACS[]:=statistics(12,HLACC,0);'¤;¤¤\[+t StartPage]¤
¤¤Statistik über den Gebrauch von ShortCut-Makros [$date]
¤© Andreas Viebke - Alle Rechte vorbehalten
| '+¤ PageLink(Current-1,'<<')+' | ';¤ else Result:=Result+'<< | ';¤ repeat (K,PageCount) {¤ if (K!=Current) ¤ Result:=Result+''+¤ PageLink(K,'')+' | ';¤ else¤ Result:=Result+''+¤ PageRange(K)+' | ';¤ }¤ if (Current>> | ';¤ Result:=Result+'
| '+(+J)+' | '+¤ Tasks[J]+' | ';¤ }¤ S:=S+'
| '+(MacCols?'Rechner/Makro':'Makro/Rechner')+¤ ' Häufigkeit Letzter Zugriff | ';¤ for (J:=(I-1)*PageItems+1;(J<=I*PageItems)&&(J<=L);++J) {¤ PAGE[1]:=$PAGE[1]+' '+L[J]+¤ ' '+(+L[J])+' '+FormatDate(LA[J])+¤ ' | ';¤ }¤ PAGE[1]:=PAGE[1]+'
| '+NL[R]+' '+¤ (+NL[R])+' '+FormatDate(NA[R])+' | ';¤ for (J:=(I-1)*PageItems+1;(J<=I*PageItems)&&(J<=M);++J) {¤ A:=+(M[J]);¤ S:=''+A+' '+¤ FormatDate(LACC[J])+' | ';¤ }¤ PAGE[R+1]:=PAGE[R+1]+'
"+TITLE+"
");¤ return string(RESULT);¤ }¤¤function writemacropage(FIRST,LAST,CAT) {¤ ML[]:=macrolist();¤ RESULT[1]::=pageheader("Verfügbare ShortCut-Texte und -Makros | "+¤ date()+"");¤ RESULT.add(""+formatcategory(FIRST-1)+"
");¤ RESULT.add("| Kürzel | Ersatztext |
|---|---|
| ");¤ RESULT.add(""+$ML[I]+"");¤ RESULT.add(" | ");¤ S:=macrocomment(I);¤ if (S='') S:=replace(macro(I),chr(164),CRLF);¤ S:=quotehtml($S);¤ if trim(S)="" S:=" ";¤ S:=replace(indent(S),CRLF," "+CRLF)¤ RESULT.add(S);¤ RESULT.add(" |
"+mainpagelink("Zur Hauptseite")+"
");¤ save(RESULT,pagepath(CAT));¤ }¤¤¤ML[]:=macrolist();¤RESULT[1]::=pageheader("Verfügbare ShortCut-Texte und -Makros | "+¤ date()+"");¤CAT:=0; COUNT:=0;¤repeat (I,ML) {¤ if (macroflags(I)&16) {¤ FIRST:=I+1; LAST:=ML;¤ for (J:=FIRST;J<=ML+1;++J) {¤ if ((J>ML) || (macroflags(J)&16)) {¤ LAST:=J-1;¤ ++CAT;¤ break;¤ }¤ }¤ inc(COUNT,Z:=LAST-FIRST+1);¤ A:=""+formatcategory(FIRST-1)+"";¤ A:=A+" ("+(Z)+" Makros)"+COUNT+" Makros in "+CAT+" Kategorien
");¤RESULT.add("