Skip to content

Commit

Permalink
v1.1.33.10
Browse files Browse the repository at this point in the history
  • Loading branch information
Ragnar-F committed Aug 29, 2021
1 parent 3bf9dbf commit 96790f4
Show file tree
Hide file tree
Showing 27 changed files with 174 additions and 46 deletions.
7 changes: 7 additions & 0 deletions AHKL_ChangeLog.htm
Expand Up @@ -17,6 +17,13 @@ <h1>Änderungen und neue Features</h1>
<p>Ältere Änderungen können in <a href="ChangeLogHelp.htm">Archivierte Änderungen</a> gefunden werden.</p>

<!--new revisions go here-->
<h2 id="v1.1.33.10">1.1.33.10 - 29. August 2021</h2>
<p>Behoben: Laden von JPG/GIF-Dateien, die bereits zum Lesen geöffnet sind.</p>
<p>Behoben: if-var-is hatte digits/xdigits falsch identifiziert.</p>
<p>Hinzugefügt: Sicherheitsüberprüfung für "ControlGet Selected", falls es mit einem Nicht-Edit-Steuerelement verwendet wird.</p>
<p>Behoben: Variablen wurden in bestimmten seltenen Fällen auf NULL gesetzt, was zu Abstürzen führte. Dies trat auf (der einzige bestätigte Fall), wenn eine Zeichenkette länger als 63 Zeichen von einer Funktion zurückgegeben und einer Variable zugewiesen wurde, während AutoHotkey als Windows-Store-App ausgeführt wurde.</p>
<p>Behoben: InputHook-Callbacks schlugen fehl, nachdem die Eingabeerfassung gestoppt und neu gestartet wurde.</p>

<h2 id="v1.1.33.09">1.1.33.09 - 8. Mai 2021</h2>
<p>Behoben: Absturz beim Laden, wenn eine AltTab-Aktion in einem Tasten-Oben/Unten-Paar verwendet wird.</p>
<p>Behoben: Undefinierter Fehlertext, wenn die Hauptskriptdatei nicht geöffnet werden kann.</p>
Expand Down
2 changes: 1 addition & 1 deletion AutoHotkey.htm
Expand Up @@ -12,7 +12,7 @@
<body>

<a id="ahklogo" href="https://www.autohotkey.com" target="_blank"><img src="static/ahk_logo.svg" onerror="this.src='static/ahk_logo.png'; this.onerror=null;" alt="AutoHotkey"></a>
<h1>Version <a href="AHKL_ChangeLog.htm"><!--ver-->1.1.33.09<!--/ver--></a></h1>
<h1>Version <a href="AHKL_ChangeLog.htm"><!--ver-->1.1.33.10<!--/ver--></a></h1>
<p>Eine deutsche &Uuml;bersetzung von <a href="https://autohotkey.com/docs/">https://autohotkey.com/docs/</a> (siehe <a href="https://autohotkey.com/boards/viewtopic.php?f=9&amp;t=43">hier</a> f&uuml;r mehr Details).</p>
<p>©2003-2014 Chris Mallett, und zum Teil ©<a href="https://www.autoitscript.com/">AutoIt-Team</a> und die AHK-Community</p>
<p style="font-size:85%">Software-Lizenz: <a href="license.htm">GNU General Public License</a></p>
Expand Down
2 changes: 1 addition & 1 deletion Hotkeys.htm
Expand Up @@ -239,7 +239,7 @@ <h2 id="Remarks">Tipps und Hinweise</h2>
Send {Delete}
return</pre>
<p>Wenn ein Hotkey wie z. B. <code>#z::</code> den Fehler "Invalid Hotkey" (ungültiger Hotkey) erzeugt, ist es sehr wahrscheinlich, dass das betroffene Zeichen ("Z" in diesem Fall) in der Tastaturbelegung/Sprache Ihres Systems fehlt. Versuchen Sie es mit einem Zeichen, das auf Ihrer Tastaturbelegung zu finden ist.</p>
<p>Ein Hotkey-Label kann als Ziel von <a href="commands/Gosub.htm">Gosub</a> oder <a href="commands/Goto.htm">Goto</a> angegeben werden. Zum Beispiel: <code>Gosub ^!s</code>.</p>
<p>Ein Hotkey-Label kann als Ziel von <a href="commands/Gosub.htm">Gosub</a> oder <a href="commands/Goto.htm">Goto</a> angegeben werden. Zum Beispiel: <code>Gosub ^!s</code>. Weitere Informationen finden Sie unter <a href="misc/Labels.htm#hotkeys-and-hotstrings">Label</a>.</p>
<p>Häufig werden Hotkeys dazu verwendet, eine wiederholende Aktion, z. B. eine Reihe von Tastendrücken oder Mausklicks, zu starten und zu stoppen. Ein Beispiel dazu findet man in den <a href="FAQ.htm#repeat">Häufig gestellten Fragen (FAQ)</a>.</p>
<p>Jedes Skript kann quasi aus <a href="misc/Threads.htm">mehreren Threads</a> bestehen, dadurch ist es möglich, dass ein neuer Hotkey gestartet werden kann, während eine andere Hotkey-Subroutine noch läuft. Neue Hotkeys können jederzeit ausgelöst werden, egal ob ein anderer Hotkey beispielsweise ein <a href="commands/MsgBox.htm">Mitteilungsfenster</a> anzeigt.</p>

Expand Down
38 changes: 37 additions & 1 deletion Program.htm
Expand Up @@ -29,6 +29,7 @@ <h2 id="toc">Inhaltsverzeichnis</h2>
<li><a href="#run">Ein Skript starten</a></li>
<li><a href="#tray-icon">Tray-Symbol</a></li>
<li><a href="#main-window">Hauptfenster</a></li>
<li><a href="#embedded-scripts">Eingebettete Skripte</a></li>
<li><a href="#cmd">Verwendung der Befehlszeile</a></li>
<li><a href="#portability">Portabilität von AutoHotkey.exe</a></li>
<li><a href="#install">Installer-Optionen</a>
Expand Down Expand Up @@ -89,7 +90,6 @@ <h2 id="main-window">Hauptfenster</h2>
</ul>
<p><strong>Bekanntes Problem:</strong> Die Tastaturkurzbefehle der Menüpunkte funktionieren nicht, wenn das Skript ein <a href="commands/MsgBox.htm">Mitteilungsfenster</a> oder ein anderes Dialogfenster anzeigt.</p>
<p>Die interne Variable <a href="Variables.htm#ScriptHwnd">A_ScriptHwnd</a> enthält die HWND-Nummer (eindeutige ID) des Skript-Hauptfensters.</p>
<p id="title">Der Titel dieses Fensters wird von Mechanismen wie <a href="commands/_SingleInstance.htm">#SingleInstance</a> und <a href="commands/Reload.htm">Reload</a> verwendet, um andere Instanzen desselben Skripts zu identifizieren. Das <a href="commands/WinSetTitle.htm">Ändern des Titels</a> verhindert, dass das Skript als solches identifiziert wird. Der Standardtitel entspricht dem Ausdruck <code>A_ScriptFullPath (A_IsCompiled ? "" : " - AutoHotkey v" A_AhkVersion)</code>.</p>
<p>Schließt man dieses Fenster mit <a href="commands/WinClose.htm">WinClose</a> (auch von einem anderen Skript aus), wird das Skript beendet, aber die meisten anderen Methoden verstecken das Fenster und lassen das Skript laufen.</p>
<p>Wenn das Hauptfenster minimiert wird, wird es automatisch versteckt. Dieses Verhalten ist notwendig, um zu verhindern, dass untergeordnete Fenster (z. B. GUI-Fenster oder einige Dialogfenster) automatisch minimiert werden, und um zu bewirken, dass die Schaltfläche in der Taskleiste des Hauptfensters versteckt wird. Um das Hauptfenster stattdessen normal minimieren zu lassen, überschreiben Sie das Standardverhalten mit <a href="commands/OnMessage.htm">OnMessage</a>. Zum Beispiel:</p>
<pre>; Dies verhindert, dass das Hauptfenster beim Minimieren versteckt wird:
Expand All @@ -109,6 +109,42 @@ <h2 id="main-window">Hauptfenster</h2>
return 0 <em>; Verhindern, dass untergeordnete Fenster versteckt werden.</em>
}</pre>

<h3 id="title">Titel des Hauptfensters</h3>
<p>Der Titel des Skript-Hauptfensters wird von Mechanismen wie <a href="commands/_SingleInstance.htm">#SingleInstance</a> und <a href="commands/Reload.htm">Reload</a> verwendet, um andere Instanzen desselben Skripts zu identifizieren. Das <a href="commands/WinSetTitle.htm">Ändern des Titels</a> verhindert, dass das Skript als solches identifiziert wird. Welcher Titel standardmäßig verwendet wird, hängt davon ab, wie das Skript geladen wurde:</p>
<table class="info">
<tr><th>Geladen aus</th><th>Titelausdruck</th><th>Beispiel</th></tr>
<tr><td>.ahk-Datei</td><td><code>A_ScriptFullPath " - AutoHotkey v" A_AhkVersion</code></td><td>E:\Mein Skript.ahk - AutoHotkey v1.1.33.09</td></tr>
<tr><td>Hauptressource (kompiliertes Skript)</td><td><code>A_ScriptFullPath</code></td><td>E:\Mein Skript.exe</td></tr>
<tr><td>Jede andere Ressource</td><td><code>A_ScriptFullPath " - " A_LineFile</code></td><td>E:\Mein AutoHotkey.exe - *INTERNES-TOOL.AHK</td></tr>
</table>
<p>Der folgende Code veranschaulicht, wie der Standardtitel mit dem Skript selbst ermittelt werden kann (wobei der tatsächliche Titel mit <a href="commands/WinGetTitle.htm">WinGetTitle</a> abgerufen werden kann):</p>
<pre>
Titel := A_ScriptFullPath
if !A_IsCompiled
Titel .= " - AutoHotkey v" A_AhkVersion
<em>; Für ein korrektes Ergebnis muss dies von der auszuführenden Ressource ausgewertet werden,
; nicht von einem #Include (es sei denn, das #Include wurde von Ahk2Exe in das Skript eingebunden):</em>
else if SubStr(A_LineFile, 1, 1) = "*" &amp;&amp; A_LineFile != "*#1"
Titel .= " - " A_LineFile
</pre>

<h2 id="embedded-scripts">Eingebettete Skripte <span class="ver">[v1.1.34+]</span></h2>
<p>Um Skripte in eine Standard-AutoHotkey-EXE-Datei einzubetten, fügen Sie die Skripte als Win32-Ressourcen (RCDATA) hinzu. Ein eingebettetes Skript kann in der Befehlszeile angegeben werden, oder mit <a href="commands/_Include.htm">#Include</a> durch Angabe eines Sternchens (*) gefolgt vom Ressourcennamen. Handelt es sich um eine Integer-ID, muss der Ressourcenname ein Rautezeichen (#) gefolgt von einer Dezimalzahl sein.</p>
<p>Das Programm kann automatisch Skriptcode aus den folgenden Ressourcen laden, wenn diese in der Datei vorhanden sind:</p>
<table class="info">
<tr><th>ID</th><th>Angabe</th><th>Verwendung</th></tr>
<tr>
<td>1</td><td>*#1</td>
<td>Dies ist das Mittel, mit dem ein <a href="Scripts.htm#ahk2exe">kompiliertes Skript</a> aus einer EXE-Datei erstellt wird. Dieses Skript wird automatisch ausgeführt, und die meisten Befehlszeilenoptionen werden an das Skript übergeben, anstatt vom Programm interpretiert zu werden. Externe Skripte und alternative eingebettete Skripte können mit der Befehlszeilenoption <a href="Scripts.htm#SlashScript">/script</a> ausgeführt werden.</td>
</tr>
<tr>
<td>2</td><td>*#2</td>
<td>Wenn vorhanden, wird dieses Skript automatisch vor jedem Skript, das das Programm lädt, und vor jeder mit <a href="Scripts.htm#SlashInclude">/include</a> angegebenen Datei "eingebunden".</td>
</tr>
</table>
<p>Wenn die Quelle des Hauptskripts eine eingebettete Ressource ist, verhält sich das Programm im Modus "kompiliertes Skript", mit der Ausnahme, dass <a href="Variables.htm#AhkPath">A_AhkPath</a> immer den Pfad der aktuellen EXE-Datei enthält (derselbe wie <a href="Variables.htm#ScriptFullPath">A_ScriptFullPath</a>). Bei anderen Ressourcen außer *#1 wird der Ressourcenbezeichner in den <a href="#title">Titel des Hauptfensters</a> eingefügt, um <a href="commands/_SingleInstance.htm">#SingleInstance</a> und <a href="commands/Reload.htm">Reload</a> zu unterstützen.</p>
<p>Wenn <a href="Variables.htm#LineFile">A_LineFile</a> von einem Code referenziert wird, der aus einer eingebetteten Ressource stammt, enthält es ein Sternchen (*), gefolgt von dem Ressourcennamen.</p>

<h2 id="cmd">Verwendung der Befehlszeile</h2>
<p>Weitere Informationen zur Verwendung der Befehlszeile finden Sie unter <a href="Scripts.htm#cmd">Befehlszeilenparameter an ein Skript übergeben</a>, einschließlich einer Liste von Befehlszeilenoptionen, die das Verhalten des Programms beeinflussen.</p>

Expand Down
22 changes: 22 additions & 0 deletions Scripts.htm
Expand Up @@ -186,6 +186,10 @@ <h2 id="ahk2exe">Ein Skript in eine EXE-Datei umwandeln (Ahk2Exe)</h2>
</ul>
<p>Den Quellcode sowie neuere Versionen des Compilers finden Sie auf <a href="https://github.com/AutoHotkey/Ahk2Exe">GitHub</a>.</p>

<h3 id="ahk2exe-base">Ausführbare Basisdatei</h3>
<p>Jede EXE-Datei eines kompilierten Skripts basiert auf einer ausführbaren Datei, die den Interpreter implementiert. Die im Compiler-Verzeichnis enthaltenen Basisdateien haben die Dateiendung ".bin"; diese Dateien sind Versionen des Interpreters, die nicht die Möglichkeit bieten, externe Skriptdateien zu laden. Stattdessen wird das Programm nach einer Win32-Ressource (RCDATA) namens "&gt;AUTOHOTKEY SCRIPT&lt;" suchen und diese laden, oder fehlschlagen, wenn sie nicht gefunden wird.</p>
<p><span class="ver">[v1.1.34+]:</span> Die ausführbaren Standard-AutoHotkey-Dateien können auch als Basis für ein kompiliertes Skript verwendet werden, indem eine Win32-Ressource (RCDATA) mit der ID 1 eingebettet wird. Dadurch kann die EXE-Datei eines kompilierten Skripts zusammen mit der Befehlszeilenoption <a href="#SlashScript">/script</a> verwenden werden, um anstelle des eingebetteten Hauptskripts andere Skripte auszuführen. Weitere Informationen finden Sie unter <a href="Program.htm#embedded-scripts">Eingebettete Skripte</a>.</p>

<h3 id="CompilerDirectives">Skript-Compiler-Direktiven</h3>
<p><span class="ver">[v1.1.33+]:</span> Skript-Compiler-Direktiven ermöglichen es dem Benutzer, genaue Angaben darüber zu machen, wie ein Skript kompiliert werden soll. Einige der Features sind:</p>
<ul>
Expand Down Expand Up @@ -252,6 +256,24 @@ <h2 id="cmd">Befehlszeilenparameter an ein Skript übergeben</h2>
</td>
<td>Nein</td>
</tr>
<tr id="SlashInclude">
<td>/include <em>"IncDatei"</em></td>
<td>
<p><span class="ver">[v1.1.34+]:</span> <a href="commands/_Include.htm">Inkludiert</a> eine Datei vor dem Hauptskript. Mit dieser Methode kann nur eine einzelne Datei inkludiert werden. Wenn das Skript <a href="commands/Reload.htm">neu geladen</a> wird, wird diese Befehlszeilenoption automatisch an die neue Instanz übergeben.</p>
</td>
<td>Nein</td>
</tr>
<tr id="SlashScript">
<td>/script</td>
<td>
<p><span class="ver">[v1.1.34+]:</span> Wenn diese Befehlszeilenoption mit einem kompilierten Skript basierend auf einer EXE-Datei verwendet wird, veranlasst sie das Programm, das eingebettete Hauptskript zu ignorieren. Dadurch kann die EXE-Datei eines kompilierten Skripts anstelle des Hauptskripts externe Skriptdateien oder eingebettete Skripte ausführen. Andere Befehlszeilenoptionen, die normalerweise von kompilierten Skripten nicht unterstützt werden, können ebenfalls verwendet werden, müssen aber rechts von dieser Befehlszeilenoption angegeben werden. Zum Beispiel:</p>
<pre class="no-highlight">KompiliertesSkript.exe /script /ErrorStdOut MeinSkript.ahk "Skript-Arg 1"</pre>
<p>Wenn die aktuelle ausführbare Datei kein eingebettetes Skript hat, ist diese Befehlszeilenoption erlaubt, aber wirkungslos.</p>
<p>Diese Befehlszeilenoption wird von kompilierten Skripten, die auf einer BIN-Datei basieren, nicht unterstützt.</p>
<p>Siehe auch: <a href="#ahk2exe-base">Ausführbare Basisdatei (Ahk2Exe)</a></p>
</td>
<td>N/A</td>
</tr>
</table>

<p id="defaultfile"><strong>Skript-Dateiname</strong>: Dieser Parameter kann weggelassen werden, falls keine <em>Skript-Parameter</em> vorhanden sind. Wenn dieser Parameter nicht verwendet wird (z. B. wenn man AutoHotkey direkt über das Startmenü startet), wird das Programm in dieser Reihenfolge nach einer Skriptdatei namens <code><i>AutoHotkey</i>.ahk</code> an folgenden Standorten suchen:</p>
Expand Down
2 changes: 1 addition & 1 deletion Tutorial.htm
Expand Up @@ -435,7 +435,7 @@ <h3 id="Functions">Funktionen</h3>
<p>Kurz gesagt:</p>
<pre><em>; Das sind Befehle:</em>
MsgBox, Dies ist etwas Text.
StringReplace, Ausgabe, Eingabe, AutoHotkey, AutoHotKey, All
StringReplace, Ausgabe, Eingabe, AutoHotKey, AutoHotkey, All
SendInput, Das ist genial{!}{!}{!}

<em>; Das sind Funktionen:</em>
Expand Down
25 changes: 20 additions & 5 deletions Variables.htm
Expand Up @@ -329,11 +329,17 @@ <h3 id="prop">Skript-Eigenschaften</h3>
</tr>
<tr id="ScriptName">
<td>A_ScriptName</td>
<td>Der Dateiname des aktuellen Skripts, ohne Pfad, z. B. MeinSkript.ahk.</td>
<td>
<p>Der Dateiname des aktuellen Skripts, ohne Pfad, z. B. MeinSkript.ahk</p>
<p>Wenn das Skript <a href="Scripts.htm#ahk2exe">kompiliert</a> oder <a href="Program.htm#embedded-scripts">eingebettet</a> ist, dann ist das hier der Name der aktuellen ausführbaren Datei.</p>
</td>
</tr>
<tr id="ScriptFullPath">
<td>A_ScriptFullPath</td>
<td>Der vollständige Pfadname des aktuellen Skripts, z. B. C:\Meine Dokumente\MeinSkript.ahk</td>
<td>
<p>Der vollständige Pfadname des aktuellen Skripts, z. B. C:\Skripte\MeinSkript.ahk</p>
<p>Wenn das Skript <a href="Scripts.htm#ahk2exe">kompiliert</a> oder <a href="Program.htm#embedded-scripts">eingebettet</a> ist, dann ist das hier der vollständige Pfadname der aktuellen ausführbaren Datei.</p>
</td>
</tr>
<tr id="ScriptHwnd">
<td>A_ScriptHwnd<br><span class="ver">[v1.1.01+]</span></td>
Expand All @@ -346,7 +352,11 @@ <h3 id="prop">Skript-Eigenschaften</h3>
</tr>
<tr id="LineFile">
<td>A_LineFile</td>
<td>Der vollständige Pfadname der Datei, auf der sich <a href="#LineNumber">A_LineNumber</a> bezieht, und prinzipiell das gleiche ist wie <a href="#ScriptFullPath">A_ScriptFullPath</a>, es sei denn, die Zeile gehört zu einer <a href="commands/_Include.htm">#Include-Datei</a> eines nicht-kompilierten Skripts.</td>
<td>
<p>Der vollständige Pfadname der Datei, zu der <a href="#LineNumber">A_LineNumber</a> gehört. Wenn das Skript aus einer externen Datei geladen wurde, ist das hier dasselbe wie <a href="#ScriptFullPath">A_ScriptFullPath</a>, es sei denn, die Zeile gehört zu einer der <a href="commands/_Include.htm">#Include-Dateien</a> des Skripts.</p>
<p>Wenn das Skript basierend auf einer <a href="Scripts.htm#ahk2exe-base">BIN-Datei</a> <a href="Scripts.htm#ahk2exe">kompiliert</a> wurde, ist das hier der vollständige Pfadname der aktuellen ausführbaren Datei, analog zu <a href="#ScriptFullPath">A_ScriptFullPath</a>.</p>
<p><span class="ver">[v1.1.34+]:</span> Wenn das Skript <a href="Program.htm#embedded-scripts">eingebettet</a> ist, enthält A_LineFile ein Sternchen (*), gefolgt von dem Ressourcennamen; z. B. *#1</p>
</td>
</tr>
<tr id="ThisFunc">
<td>A_ThisFunc<br>
Expand All @@ -364,8 +374,13 @@ <h3 id="prop">Skript-Eigenschaften</h3>
</tr>
<tr id="AhkPath">
<td>A_AhkPath</td>
<td><p>Bei nicht-kompilierten Skripten: Der vollständige Pfadname der EXE-Datei, mit der das aktuelle Skript gerade ausgeführt wird. Zum Beispiel: C:\Program Files\AutoHotkey\AutoHotkey.exe</p>
<p>Bei <a href="Scripts.htm#ahk2exe">kompilierten Skripten</a>: Das gleiche wie oben, allerdings wird das AutoHotkey-Verzeichnis mithilfe des Registry-Eintrags <em>HKLM\SOFTWARE\AutoHotkey\InstallDir</em> ermittelt. Wenn dieser Eintrag nicht gefunden wird, ist A_AhkPath leer.</p></td>
<td>
<p>Bei nicht-kompilierten oder <a href="Program.htm#embedded-scripts">eingebetteten</a> Skripten: Der vollständige Pfadname der EXE-Datei, mit der das aktuelle Skript gerade ausgeführt wird. Zum Beispiel: C:\Program Files\AutoHotkey\AutoHotkey.exe</p>
<p>Bei <a href="Scripts.htm#ahk2exe">kompilierten Skripten</a>, die auf einer <a href="Scripts.htm#ahk2exe-base">BIN-Datei</a> basieren, wird der Wert durch Lesen des Installationsverzeichnisses aus der Registry und Anfügen von "\AutoHotkey.exe" ermittelt. Wenn AutoHotkey nicht installiert ist, ist der Wert leer. Das folgende Beispiel ist äquivalent:</p>
<pre>RegRead InstallDir, HKLM\SOFTWARE\AutoHotkey, InstallDir
AhkPath := ErrorLevel ? "" : InstallDir "\AutoHotkey.exe"</pre>
<p><span class="ver">[v1.1.34+]:</span> Bei kompilierten Skripten, die auf einer EXE-Datei basieren, enthält A_AhkPath den vollständigen Pfadnamen des kompilierten Skripts. Dies kann in Kombination mit <a href="Scripts.htm#SlashScript">/script</a> verwendet werden, um externe Skripte auszuführen. Um stattdessen die installierte Kopie von AutoHotkey zu lokalisieren, lesen Sie die Registry wie oben gezeigt.</p>
</td>
</tr>
<tr id="IsUnicode">
<td>A_IsUnicode</td>
Expand Down

0 comments on commit 96790f4

Please sign in to comment.