From 8b877b76a679d7f3405d514f44689480048bdb42 Mon Sep 17 00:00:00 2001 From: Ragnar-F <1332321+Ragnar-F@users.noreply.github.com> Date: Sat, 8 Jul 2023 15:29:18 +0200 Subject: [PATCH] Project translation --- target/docs/AHKL_ChangeLog.htm | 8 +- target/docs/AHKL_DBGPClients.htm | 4 +- target/docs/Variables.htm | 2 +- target/docs/index.htm | 2 +- target/docs/lib/Critical.htm | 2 +- target/docs/lib/DriveGet.htm | 2 +- target/docs/lib/StrPut.htm | 2 +- target/docs/lib/StringSplit.htm | 2 +- target/docs/lib/Switch.htm | 14 ++-- target/docs/lib/SysGet.htm | 116 +++++++++++++------------- target/docs/lib/Thread.htm | 32 +++---- target/docs/lib/Throw.htm | 20 ++--- target/docs/lib/Transform.htm | 2 +- target/docs/lib/WinGet.htm | 2 +- target/docs/lib/WinMenuSelectItem.htm | 2 +- target/docs/lib/index.htm | 2 +- target/docs/misc/SendMessage.htm | 4 +- 17 files changed, 112 insertions(+), 106 deletions(-) diff --git a/target/docs/AHKL_ChangeLog.htm b/target/docs/AHKL_ChangeLog.htm index 3aaf44787..8bb8709bd 100644 --- a/target/docs/AHKL_ChangeLog.htm +++ b/target/docs/AHKL_ChangeLog.htm @@ -17,11 +17,17 @@
Ältere Änderungen finden Sie unter Archivierte Änderungen.
+Behoben: Hotkeys wurden aufgrund einer Race Condition nicht ausgelöst. Wenn ein Modifikator-Hotkey wie ~*RWin::
zu früh Send oder GetKeyState aufruft, kann das System melden, dass RWin nicht unten ist, wodurch der Modifikatorstatus des Hooks "korrigiert" wird und Hotkeys fälschlicherweise ausgelöst oder nicht ausgelöst werden. Dies trat wahrscheinlich nur auf, wenn ein anderer Tastatur-Hook vor dem Hook des Skripts installiert wurde, da in diesem Fall das System den Status der Tasten nicht aktualisiert, bis der Thread des anderen Hooks fortgesetzt wird und zurückkehrt.
Behoben: Hotstrings verwenden nun das Zuletzt Gefundene Fenster von #If.
+Behoben: MouseGetPos, ControlClick, ContextMenu-Gui-Ereignisse und DropFile-Gui-Ereignisse erkannten fälschlicherweise ein Steuerelement an einem bestimmten Punkt, der sich in Wirklichkeit ein Pixel unterhalb oder rechts vom Steuerelement befand.
+Behoben: Der Versuch, den Tastatur- oder Maus-Hook neu zu installieren, schlug fehl, wenn das System den Hook automatisch deinstalliert hat. Nach wie vor müssen bestimmte Bedingungen erfüllt sein, bevor ein solcher Versuch unternommen werden kann.
+Geändert: COM-Methodenaufrufe und -Eigenschaftsaufrufe übergeben große Integer nun als VT_I8, nicht mehr als VT_R8 (Floating-Point), um den ursprünglichen Typ und die Genauigkeit beizubehalten. Integer im 32-Bit-Bereich werden weiterhin als VT_I4 übergeben.
Hinzugefügt: Unterstützung für Zwei-Variablen-Enumeratoren (For-Schleifen) mit IDispatch-gewrappten AutoHotkey-Objekten. Sowohl das Skript, das das Objekt aufruft, als auch das Objekt selbst müssen mit einer unterstützten AutoHotkey-Version ausgeführt werden.
Hinzugefügt: Unterstützung für ByRef VARIANT in eingehenden COM-Aufrufen. Anstatt einen ComObject-Wrapper mit dem Variantentyp VT_BYREF|VT_VARIANT zu empfangen, empfängt das Skript eine temporäre Variable, die mit einem normalen ByRef-Parameter kompatibel ist.
-Hinzugefügt: Unterstützung für das Weglassen von Parametern in eingehenden COM-Aufrufen. IDispatch erlaubt das Weglassen von Parametern durch Angabe eines VARIANT vom Typ VT_ERROR mit dem Wert DISP_E_PARAMNOTFOUND. Diese Werte werden nun automatisch übersetzt, anstatt in ein Objekt gewrappt zu werden. Die umgekehrte Übersetzung wurde bereits in früheren Versionen beim Aufruf von COM-Methoden durchgeführt.
+Behoben: Weggelassene Parameter erhalten nun ihre Standardwerte und nicht mehr den Marker "optionales Argument", wenn eine AutoHotkey-Methode über IDispatch (COM) aufgerufen wird. Die umgekehrte Übersetzung wurde bereits in früheren Versionen beim Aufruf von COM-Methoden durchgeführt.
Behoben: VerCompare(a, ">" b)
und geringfügige Reduzierung der Codegröße.
Behoben: AltTab-bezogene Ladezeitfehler sind nun konsistent mit anderen Fehlern.
Behoben: Fehler, die durch einen ComObject-Wrapper ausgelöst werden, wurden nicht korrekt weitergegeben, wenn dieser über ein Objekt/COM aufgerufen wird.
diff --git a/target/docs/AHKL_DBGPClients.htm b/target/docs/AHKL_DBGPClients.htm index 60208aaf8..c8beefd26 100644 --- a/target/docs/AHKL_DBGPClients.htm +++ b/target/docs/AHKL_DBGPClients.htm @@ -81,11 +81,11 @@Hinweis: Dateizuordnung muss konfiguriert werden. Da Sie vermutlich kein ferngesteuertes Debugging durchführen werden, können Sie ein Häkchen bei Bypass all mapping (local windows setup) setzen.
Features:
Eine deutsche Übersetzung von https://www.autohotkey.com/docs/v1/ (siehe hier für mehr Details).
©2003 Chris Mallett, und zum Teil ©AutoIt-Team und die AHK-Community
Software-Lizenz: GNU General Public License
diff --git a/target/docs/lib/Critical.htm b/target/docs/lib/Critical.htm index 9f6f4080f..8a8e721b1 100644 --- a/target/docs/lib/Critical.htm +++ b/target/docs/lib/Critical.htm @@ -40,7 +40,7 @@Schauen Sie sich A_IsCritical an, wie die aktuelle Einstellung von Critical gespeichert und wiederhergestellt werden kann. Beachten Sie, dass Critical eine threadspezifische Einstellung ist, deshalb wird, wenn ein kritischer Thread endet, der darunter liegende/fortgesetzte Thread (sofern vorhanden) automatisch unkritisch sein. Somit ist es nicht notwendig, Critical Off
kurz vor dem Ende eines Threads auszuführen.
Wenn Critical im automatischen Ausführungsbereich (ganz oben im Skript) nicht verwendet wird, sind alle Threads zunächst unkritisch (es sei denn, Thread Interrupt wurde verwendet). Wird Critical hingegen im automatischen Ausführungsbereich eingeschaltet, aber nie ausgeschaltet, ist jeder neu gestartete Thread (z.B. Hotkey, benutzerdefinierter Menüpunkt oder zeitgesteuerte Subroutine) zunächst kritisch.
+Wenn Critical im automatischen Ausführungsbereich (ganz oben im Skript) nicht verwendet wird, sind alle Threads zunächst unkritisch (obwohl die Einstellungen von Thread Interrupt weiterhin gelten). Wenn hingegen der automatische Ausführungsbereich Critical einschaltet, aber nie ausschaltet, ist jeder neu gestartete Thread (z.B. Hotkey, benutzerdefinierter Menüpunkt oder zeitgesteuerte Subroutine) zunächst kritisch.
Der Befehl Thread NoTimers ist quasi dasselbe wie Critical, verhindert aber nur, dass Timer den aktuellen Thread unterbrechen.
[v1.0.47+]: Beim Einschalten von Critical wird zudem SetBatchLines -1
für den aktuellen Thread wirksam.
Ruft verschiedene Arten von Informationen über die Laufwerke des Computers ab.
DriveGet, AusgabeVar, Unterbefehl , Wert-
Der AusgabeVar-Parameter ist Name der Ausgabevariable, in der das Ergebnis gespeichert werden soll. Die Parameter Unterbefehl und Wert sind voneinander abhängig und können wie folgt verwendet werden.
+Der AusgabeVar-Parameter ist der Name der Ausgabevariable, in der das Ergebnis gespeichert werden soll. Die Parameter Unterbefehl und Wert sind voneinander abhängig und können wie folgt verwendet werden.
Geben Sie für Unterbefehl Folgendes an:
diff --git a/target/docs/lib/StrPut.htm b/target/docs/lib/StrPut.htm index 37adc9e40..c77f016b8 100644 --- a/target/docs/lib/StrPut.htm +++ b/target/docs/lib/StrPut.htm @@ -18,7 +18,7 @@ZeichenAnzahl := StrPut(Zkette, Ziel , Länge, Codierung) ZeichenAnzahl := StrPut(Zkette, Ziel , Codierung) -ErfPufGröße := StrPut(Zkette , Codierung) +NotwPufGröße := StrPut(Zkette , Codierung)
Name des Pseudo-Arrays, in dem jede aus EingabeVar extrahierte Teilzeichenkette gespeichert werden soll. Wenn zum Beispiel MeinArray angegeben ist, wird der Befehl die Anzahl der erzeugten Teilzeichenketten (0, wenn keine erzeugt wurden) in MeinArray0 speichern, die erste Teilzeichenkette in MeinArray1, die zweite in MeinArray2 usw.
-Um ein Pseudo-Array innerhalb einer Funktion global statt lokal zu machen, deklarieren Sie MeinArray0 als globale Variable, bevor Sie diesen Befehl verwenden (das Gegenteil davon gilt für Assume-Global-Funktionen). Oft ist es auch notwendig, jedes Element dieses Pseudo-Arrays einzeln zu deklarieren, da ein häufiger Anlass zu Verwirrung vorliegt. Weitere Informationen finden Sie unter Funktionen.
+Um ein Pseudo-Array innerhalb einer Funktion global statt lokal zu machen, deklarieren Sie MeinArray0 als globale Variable, bevor Sie diesen Befehl verwenden (für Assume-Global-Funktionen gilt das Gegenteil). Oft ist es auch notwendig, jedes Element dieses Pseudo-Arrays einzeln zu deklarieren, da ein häufiger Anlass zu Verwirrung vorliegt. Weitere Informationen finden Sie unter Funktionen.
Sofern vorhanden, wird SwitchWert einmal ausgewertet und mit jedem Case-Wert verglichen. Wenn eine Übereinstimmung gefunden wurde, wird das entsprechende Case ausgeführt. Andernfalls wird das erste Case ausgeführt, das als True (weder 0 noch leer) gewertet wird. Wenn kein passendes Case gefunden wird, wird Default
ausgeführt, sofern vorhanden.
Es wird ein numerischer Vergleich durchgeführt, wenn sowohl SwitchWert als auch der Case-Wert Zahlen oder numerische Zeichenketten sind. Jeder Case-Wert wird separat behandelt und beeinflusst nicht den Vergleichstyp von anderen Case-Werten. [v1.1.36+]: Wenn einer der beiden Ausdrücke eine einzelne, in Anführungszeichen gesetzte Zeichenkette ist, wird der Vergleich nicht-numerisch durchgeführt. Zum Beispiel stimmt switch v:="00"
mit case "00":
oder case 0:
überein, aber nicht mit case "0":
.
StringCaseSense bestimmt die Groß-/Kleinschreibung-Sensitivität bei Zeichenkettenvergleiche via Switch.
-Für jedes Case können bis zu 20 Werte angegeben werden. Jeder Wert muss ein Ausdruck sein, dazu zählen einfache Werte wie direkt geschriebene Zahlen, in Anführungszeichen gesetzte Zeichenketten oder Variablen. Case
und Default
müssen mit einem Doppelpunkt :
enden.
Die erste Anweisung eines Case kann entweder unter oder neben dem Case
stehen. Jedes Case endet indirekt beim nächsten Case
/Default
oder bei der geschweiften Endklammer. Im Gegensatz zu den Switch-Anweisungen in einigen anderen Sprachen gibt es weder ein indirektes Fall-Through noch Break (außer um eine Schleife zu unterbrechen).
Da alles Cases im gleichen Block sind, kann ein Label, das in einem Case definiert wurde, das Ziel von Goto aus einem anderen Case sein. Wenn allerdings ein Label direkt über Case
oder Default
platziert wird, verweist es auf das Ende des vorherigen Case, nicht auf den Anfang des nächsten Case.
Falls vorhanden, wird SwitchWert einmal ausgewertet und mit jedem Case-Wert verglichen. Bei Übereinstimmung wird das entsprechende Case ausgeführt. Andernfalls wird das erste Case ausgeführt, das als True (weder 0 noch leer) gewertet wird. Wenn kein passendes Case gefunden wird, wird Default
ausgeführt, falls vorhanden.
Es wird ein numerischer Vergleich durchgeführt, wenn sowohl SwitchWert als auch der Case-Wert Zahlen oder numerische Zeichenketten sind. Jeder Case-Wert wird separat behandelt und beeinflusst nicht den Vergleichstyp anderer Case-Werte. [v1.1.36+]: Wenn einer der beiden Ausdrücke eine in Anführungszeichen gesetzte Zeichenkette ist, wird der Vergleich nicht-numerisch durchgeführt. Zum Beispiel stimmt switch v:="00"
mit case "00":
oder case 0:
überein, aber nicht mit case "0":
.
StringCaseSense bestimmt, ob bei Zeichenkettenvergleichen zwischen Groß- und Kleinschreibung unterschieden wird.
+Für jedes Case können bis zu 20 Werte angegeben werden. Jeder Wert muss ein Ausdruck sein, aber es kann auch ein einfacher Ausdruck angegeben werden, z.B. eine direkt geschriebene Zahl, eine in Anführungszeichen gesetzte Zeichenkette oder eine Variable. Case
und Default
müssen mit einem Doppelpunkt :
enden.
Die erste Anweisung eines Case kann entweder unter oder neben dem Case
stehen. Jedes Case endet indirekt beim nächsten Case
/Default
oder bei der geschweiften Endklammer. Im Gegensatz zu den Switch-Anweisungen in einigen anderen Sprachen gibt es kein indirektes Fall-Through, außerdem wird kein Break verwendet (außer um eine umschließende Schleife zu unterbrechen).
Da sich alle Cases im selben Block befinden, kann ein Label, das in einem Case definiert ist, das Ziel von Goto in einem anderen Case sein. Wenn allerdings ein Label direkt über Case
oder Default
platziert wird, verweist es auf das Ende des vorherigen Case, nicht auf den Anfang des nächsten Case.
Default
muss nicht als letztes aufgelistet werden.
Dies ist ein funktionierendes Hotkey-Beispiel. Es gibt ein Beispiel auf der Input-Seite, das funktionsgemäß identisch ist, aber if-else-if verwendet.
+Dies ist ein funktionierendes Hotkey-Beispiel. Die Dokumentation des Input-Befehls enthält ein funktionsgleiches Beispiel, das if-else-if verwendet.
~<:: Input, BenutzerEingabe, V T5 L4 C, {enter}.{esc}{tab}, btw,otoh,fl,ahk,ca switch ErrorLevel diff --git a/target/docs/lib/SysGet.htm b/target/docs/lib/SysGet.htm index bf4be226d..ba5f10633 100644 --- a/target/docs/lib/SysGet.htm +++ b/target/docs/lib/SysGet.htm @@ -15,15 +15,15 @@SysGet
Ruft Bildschirmauflösungen, Multi-Bildschirm-Informationen, Dimensionen von Systemobjekten und andere Systemeigenschaften ab.
SysGet, AusgabeVar, Unterbefehl , Wert-Der AusgabeVar-Parameter ist Name der Ausgabevariable, in der das Ergebnis gespeichert werden soll. Die Parameter Unterbefehl und Wert sind voneinander abhängig und können wie folgt verwendet werden.
+Der AusgabeVar-Parameter ist der Name der Ausgabevariable, in der das Ergebnis gespeichert werden soll. Die Parameter Unterbefehl und Wert sind voneinander abhängig und können wie folgt verwendet werden.
Unterbefehle
Geben Sie für Unterbefehl Folgendes an:
Ruft die Gesamtzahl der Bildschirme ab.
SysGet, AusgabeVar, MonitorCount
-Im Gegensatz zu SM_CMONITORS von der unteren Tabelle erfasst dieser Unterbefehl alle Bildschirme, selbst solche, die nicht zum Desktop gehören.
+Im Gegensatz zu SM_CMONITORS in der unteren Tabelle erfasst dieser Unterbefehl alle Bildschirme, auch solche, die nicht zum Desktop gehören.
Ruft die Nummer des primären Bildschirms ab.
@@ -39,27 +39,27 @@In einem System mit nur einem einzigen Bildschirm wird das immer 1 sein.
Ruft die Abgrenzungskoordinaten des Bildschirms Nummer N ab.
+Ruft die Begrenzungskoordinaten des Bildschirms mit der Nummer N ab.
SysGet, AusgabeVar, Monitor , N-
Lässt man N weg, wird der primäre Bildschirm verwendet. Die Information wird in vier Variablen aufgeteilt, deren Namen alle mit AusgabeVar beginnen. Falls N zu hoch ist oder die Informationen aufgrund eines Problems nicht abgerufen werden können, werden alle Variablen leer gemacht. Zum Beispiel:
+Wenn N weggelassen wird, wird der primäre Bildschirm verwendet. Die Informationen werden in vier Variablen gespeichert, deren Namen alle mit AusgabeVar beginnen. Wenn N zu groß ist oder die Informationen aufgrund eines Problems nicht abgerufen werden können, werden alle Variablen leer gemacht. Zum Beispiel:
SysGet, Mon2, Monitor, 2 MsgBox, Links: %Mon2Left% -- Oben: %Mon2Top% -- Rechts: %Mon2Right% -- Unten: %Mon2Bottom%.-
Um einen Satz von Variablen innerhalb einer Funktion global statt lokal zu machen, deklarieren Sie Mon2 als globale Variable, bevor Sie diesen Befehl verwenden (das Gegenteil davon gilt für Assume-Global-Funktionen). Oft ist es auch notwendig, jede Variable in diesem Satz einzeln zu deklarieren, da ein häufiger Anlass zu Verwirrung vorliegt.
+Um einen Satz von Variablen innerhalb einer Funktion global statt lokal zu machen, deklarieren Sie Mon2 als globale Variable, bevor Sie diesen Befehl verwenden (für Assume-Global-Funktionen gilt das Gegenteil). Oft ist es auch notwendig, jede Variable in diesem Satz einzeln zu deklarieren, da ein häufiger Anlass zu Verwirrung vorliegt.
Ruft die Abgrenzungskoordinaten des Arbeitsbereichs des Bildschirms Nummer N ab.
+Ruft die Begrenzungskoordinaten des Arbeitsbereichs des Bildschirms mit der Nummer N ab.
SysGet, AusgabeVar, MonitorWorkArea , N-
Das Gleiche wie der Monitor-Unterbefehl oben, außer dass der Bereich ohne die Taskleiste und andere registrierte Desktop-Toolbars gemeint ist.
+Wie der Monitor-Unterbefehl oben, außer dass mit "Arbeitsbereich" der Bereich ohne Taskleiste und andere registrierte Desktopsymbolleisten gemeint ist.
Ruft den im Betriebssystem angezeigten Namen des Bildschirms Nummer N ab.
+Ruft den Systemnamen des Bildschirms mit der Nummer N ab.
SysGet, AusgabeVar, MonitorName , N-
Lässt man N weg, wird der primäre Bildschirm verwendet.
+Wenn N weggelassen wird, wird der primäre Bildschirm verwendet.
Geben Sie für Unterbefehl eine Nummer aus den unteren Tabellen an, um den entsprechenden Wert abzurufen.
SysGet, AusgabeVar, N
-Das folgende Beispiel würde die Anzahl der Maustasten in eine Variable namens "MaustastenAnzahl" speichern: SysGet, MaustastenAnzahl, 43
.
Das folgende Beispiel würde die Anzahl der Maustasten in eine Variable speichern: SysGet, MaustastenAnzahl, 43
.
43 | -SM_CMOUSEBUTTONS: Anzahl der Tasten auf der Maus (0, wenn keine Maus angeschlossen ist). | +SM_CMOUSEBUTTONS: Anzahl der Maustasten (0, wenn keine Maus angeschlossen ist). |
16, 17 | -SM_CXFULLSCREEN, SM_CYFULLSCREEN: Breite und Höhe des Clientbereichs eines Vollbildfensters auf dem primären Bildschirm (in Pixel). | +SM_CXFULLSCREEN, SM_CYFULLSCREEN: Breite und Höhe des Clientbereichs eines Vollbildfensters auf dem primären anzeigefähigen Bildschirm (in Pixel). |
61, 62 | -SM_CXMAXIMIZED, SM_CYMAXIMIZED: Breite und Höhe eines maximierten Top-Level-Fensters auf dem primären Bildschirm (in Pixel). | +SM_CXMAXIMIZED, SM_CYMAXIMIZED: Breite und Höhe eines maximierten Top-Level-Fensters auf dem primären anzeigefähigen Bildschirm (in Pixel). |
59, 60 | -SM_CXMAXTRACK, SM_CYMAXTRACK: Maximale Breite und Höhe eines Fensters mit einem Titel und Rahmen zum Ändern der Fenstergröße (in Pixel). Diese Maße beziehen sich auf den ganzen Desktop. Der Benutzer kann den Fensterrahmen nicht auf eine Größe ziehen, die diese Dimensionen überschreiten würden. | +SM_CXMAXTRACK, SM_CYMAXTRACK: Maximale Breite und Höhe eines Fensters mit einem Titel und Rahmen zum Ändern der Fenstergröße (in Pixel). Diese Metrik bezieht sich auf den gesamten Desktop. Der Benutzer kann den Fensterrahmen nicht auf eine Größe ziehen, die diese Dimensionen überschreiten würden. |
28, 29 | @@ -93,19 +93,19 @@||
57, 58 | -SM_CXMINIMIZED, SM_CYMINIMIZED: Breite und Höhe eines minimierten Fensters (in Pixel). | +SM_CXMINIMIZED, SM_CYMINIMIZED: Dimensionen eines minimierten Fensters (in Pixel). |
34, 35 | -SM_CXMINTRACK, SM_CYMINTRACK: Minimale Breite und Höhe eines Fensters (in Pixel). Der Benutzer kann den Fensterrahmen nicht auf eine Größe ziehen, die diese Dimensionen unterschreiten würden. Durch Verarbeiten der WM_GETMINMAXINFO-Meldung kann ein Fenster diese Werte überschreiben. | +SM_CXMINTRACK, SM_CYMINTRACK: Minimale Breite und Höhe eines Fensters (in Pixel). Der Benutzer kann den Fensterrahmen nicht auf eine Größe ziehen, die diese Dimensionen unterschreiten würden. Ein Fenster kann diese Werte durch Verarbeitung der WM_GETMINMAXINFO-Meldung überschreiben. |
0, 1 | -SM_CXSCREEN, SM_CYSCREEN: Breite und Höhe des primären Bildschirms (in Pixel). Diese sind identisch mit den internen Variablen A_ScreenWidth und A_ScreenHeight. | +SM_CXSCREEN, SM_CYSCREEN: Breite und Höhe des primären anzeigefähigen Bildschirms (in Pixel). Diese sind identisch mit den internen Variablen A_ScreenWidth und A_ScreenHeight. |
78, 79 | -SM_CXVIRTUALSCREEN, SM_CYVIRTUALSCREEN: Breite und Höhe des virtuellen Bildschirms (in Pixel). Der virtuelle Bildschirm ist ein Rechteck, der alle Bildschirme umschließt. SM_XVIRTUALSCREEN und SM_YVIRTUALSCREEN sind die Koordinaten der oberen linken Ecke des virtuellen Bildschirms. | +SM_CXVIRTUALSCREEN, SM_CYVIRTUALSCREEN: Breite und Höhe des virtuellen Bildschirms (in Pixel). Der virtuelle Bildschirm ist das umgebende Rechteck von allen anzeigefähigen Bildschirmen. SM_XVIRTUALSCREEN und SM_YVIRTUALSCREEN sind die Koordinaten der oberen linken Ecke des virtuellen Bildschirms. |
19 | @@ -117,19 +117,19 @@||
63 | -SM_NETWORK: Wenn ein Netzwerk vorhanden ist, wird das niederwertigste Bit gesetzt, andernfalls wird es gelöscht. Die anderen Bits werden für die zukünftige Verwendung reserviert. | +SM_NETWORK: Wenn ein Netzwerk vorhanden ist, wird das niederwertigste Bit gesetzt, andernfalls wird es gelöscht. Die anderen Bits sind für die zukünftige Verwendung reserviert. |
8193 | -SM_REMOTECONTROL: Diese Systemmetrik wird in einer Terminaldienstumgebung verwendet. Ungleich 0, wenn die aktuelle Sitzung ferngesteuert wird, andernfalls 0. | +SM_REMOTECONTROL: Diese Systemmetrik wird in einer Terminal Services-Umgebung verwendet. Ungleich 0, wenn die aktuelle Sitzung ferngesteuert wird, andernfalls 0. |
4096 | -SM_REMOTESESSION: Diese Systemmetrik wird in einer Terminaldienstumgebung verwendet. Wenn der aufrufende Prozess einer Terminaldienste-Clientsitzung zugeordnet ist, ist der Rückgabewert ungleich 0. Wenn der aufrufende Prozess einer Terminaldienst-Konsolensitzung zugeordnet ist, ist der Rückgabewert 0. Die Konsolensitzung ist nicht unbedingt die physische Konsole. | +SM_REMOTESESSION: Diese Systemmetrik wird in einer Terminal Services-Umgebung verwendet. Wenn der aufrufende Prozess einer Terminal Services-Clientsitzung zugeordnet ist, ist der Rückgabewert ungleich 0. Wenn der aufrufende Prozess einer Terminal Server-Konsolensitzung zugeordnet ist, ist der Rückgabewert 0. Die Konsolensitzung ist nicht unbedingt die physische Konsole. |
70 | -SM_SHOWSOUNDS: Ungleich 0, wenn die Anwendung Informationen für den Benutzer visuell anzeigen soll, die sonst nur als Audiodaten ausgegeben werden, andernfalls 0. | +SM_SHOWSOUNDS: Ungleich 0, wenn die Anwendung dem Benutzer Informationen visuell anzeigen soll, die sonst nur in akustischer Form ausgegeben werden, andernfalls 0. |
8192 | @@ -137,11 +137,11 @@||
23 | -SM_SWAPBUTTON: Ungleich 0, wenn die Funktionen der linken und rechten Maustaste getauscht wurden, andernfalls 0. | +SM_SWAPBUTTON: Ungleich 0, wenn die Bedeutungen der linken und rechten Maustaste vertauscht sind, andernfalls 0. |
76, 77 | -SM_XVIRTUALSCREEN, SM_YVIRTUALSCREEN: Koordinaten für die obere linke Ecke des virtuellen Bildschirms. Der virtuelle Bildschirm ist ein Rechteck, der alle Bildschirme umschließt. SM_CXVIRTUALSCREEN und SM_CYVIRTUALSCREEN (weiter oben zu finden) sind die Breite und Höhe des virtuellen Bildschirms. | +SM_XVIRTUALSCREEN, SM_YVIRTUALSCREEN: Koordinaten der oberen linken Ecke des virtuellen Bildschirms. Der virtuelle Bildschirm ist das umgebende Rechteck von allen anzeigefähigen Bildschirmen. SM_CXVIRTUALSCREEN und SM_CYVIRTUALSCREEN (siehe weiter oben) sind die Breite und Höhe des virtuellen Bildschirms. |
SM_IMMENABLED: Ungleich 0, wenn Features vom Input Method Manager/Input Method Editor aktiviert sind, andernfalls 0.
-SM_IMMENABLED gibt an, ob das System bereit ist, einen unicode-basierten IME auf eine Unicode-Anwendung anzuwenden. Um sicherzustellen, dass ein sprachabhängiger IME ordnungsgemäß funktioniert, sollten Sie zuvor SM_DBCSENABLED und die ANSI-Codepage des Systems überprüfen. Andernfalls könnte es sein, dass die ANSI-zu-Unicode-Konvertierung nicht richtig durchgeführt wird, oder dass einige Komponenten wie Schriften oder Registry-Einstellungen nicht vorhanden sind.
+SM_IMMENABLED: Ungleich 0, wenn Input Method Manager-/Input Method Editor-Features aktiviert sind, andernfalls 0.
+SM_IMMENABLED gibt an, ob das System bereit ist, einen Unicode-basierten IME auf eine Unicode-Anwendung anzuwenden. Um sicherzustellen, dass ein sprachabhängiger IME ordnungsgemäß funktioniert, überprüfen Sie SM_DBCSENABLED und die ANSI-Codepage des Systems. Andernfalls könnte es sein, dass die ANSI-zu-Unicode-Konvertierung nicht korrekt durchgeführt wurde oder dass einige Komponenten wie Schriften oder Registry-Einstellungen nicht vorhanden sind.
Ruft die Anzahl von Maustasten ab und speichert den Wert in MaustastenAnzahl.
+Ruft die Anzahl der Maustasten ab und speichert den Wert in MaustastenAnzahl.
SysGet, MaustastenAnzahl, 43
Ruft die Breite und Höhe des virtuellen Bildschirms ab und speichert sie in BildschirmVirtuelleBreite und BildschirmVirtuelleHöhe.
+Ruft die Breite und Höhe des virtuellen Bildschirms ab und speichert die Werte in BildschirmVirtuelleBreite und BildschirmVirtuelleHöhe.
SysGet, BildschirmVirtuelleBreite, 78 SysGet, BildschirmVirtuelleHöhe, 79
Zeigt Informationen zu jedem Bildschirm an.
+Zeigt Informationen über jeden Bildschirm an.
SysGet, BildschirmAnzahl, MonitorCount SysGet, BildschirmPrimär, MonitorPrimary MsgBox, Bildschirmanzahl:`t%BildschirmAnzahl%`nPrimärer Bildschirm:`t%BildschirmPrimär% diff --git a/target/docs/lib/Thread.htm b/target/docs/lib/Thread.htm index 5b483667f..0f168cc64 100644 --- a/target/docs/lib/Thread.htm +++ b/target/docs/lib/Thread.htm @@ -20,39 +20,39 @@Thread
Unterbefehle
Geben Sie für Unterbefehl Folgendes an:
Verhindert Unterbrechungen durch beliebige Timer.
+Verhindert Unterbrechungen durch Timer.
Thread, NoTimers , TrueOderFalse-
Dieser Unterbefehl verhindert Unterbrechungen von beliebigen Timern, bis der aktuelle Thread entweder endet, Thread, NoTimers, false
ausgeführt wird oder von einem anderen Thread unterbrochen wird, der Timer erlaubt (in diesem Fall können Timer den unterbrechenden Thread unterbrechen, bis er endet).
Wenn dieser Unterbefehl im automatischen Ausführungsbereich (ganz oben im Skript) nicht verwendet wird, sind alle Threads zunächst via Timer unterbrechbar (es sei denn, der Interrupt-Unterbefehl [unten] wurde verwendet). Wird dieser Unterbefehl im automatischen Ausführungsbereich eingeschaltet, aber nie ausgeschaltet, ist jeder neu gestartete Thread (z.B. Hotkey, benutzerdefinierter Menüpunkt oder Timer) zunächst immun gegen Unterbrechungen via Timer.
-Unabhängig von der Standardeinstellung laufen Timer auch dann, wenn das Skript keine Threads hat (es sei denn, Pause wurde eingeschaltet).
-Thread, NoTimers
ist das gleiche wie Thread, NoTimers, true
. Da TrueOderFalse außerdem ein Ausdruck ist, wird True in 1 und False in 0 aufgelöst.
Dieser Unterbefehl verhindert Unterbrechungen durch Timer, bis der aktuelle Thread entweder endet, Thread, NoTimers, false
ausgeführt wird oder von einem anderen Thread unterbrochen wird, der Timer erlaubt (in diesem Fall können Timer den unterbrechenden Thread unterbrechen, bis dieser endet).
Wenn dieser Unterbefehl im automatischen Ausführungsbereich (ganz oben im Skript) nicht verwendet wird, können alle Threads zunächst durch Timer unterbrochen werden (obwohl die Einstellungen des unten beschriebenen Interrupt-Unterbefehls weiterhin gelten). Wenn hingegen der automatische Ausführungsbereich diesen Unterbefehl einschaltet, aber nie ausschaltet, ist jeder neu gestartete Thread (z.B. Hotkey, benutzerdefinierter Menüpunkt oder Timer) zunächst immun gegen Unterbrechungen durch Timer.
+Unabhängig von der Standardeinstellung laufen die Timer immer, wenn das Skript keine Threads hat (es sei denn, Pause wurde eingeschaltet).
+Thread, NoTimers
ist äquivalent zu Thread, NoTimers, true
. Da TrueOderFalse außerdem ein Ausdruck ist, wird True in 1 und False in 0 aufgelöst.
Ändert die Prioritätsstufe des aktuellen Threads.
Thread, Priority, Stufe
-Geben Sie für Stufe einen Integer zwischen -2147483648 und 2147483647 (oder einen Ausdruck) an, um die neue Priorität für den aktuellen Thread zu bestimmen. Andere Threads werden davon nicht beeinflusst. Einzelheiten finden Sie unter Threads.
-Aufgrund seiner Fähigkeit, Ereignisse zu puffern, ist der Critical-Befehl grundsätzlich diesem Unterbefehl überlegen.
+Geben Sie für Stufe einen Integer zwischen -2147483648 und 2147483647 (oder einen Ausdruck) an, um die neue Priorität für den aktuellen Thread zu bestimmen. Andere Threads sind davon nicht betroffen. Einzelheiten finden Sie unter Threads.
+Aufgrund seiner Fähigkeit, Ereignisse zu puffern, ist der Critical-Befehl diesem Unterbefehl grundsätzlich überlegen.
Mit Process Priority kann die Prioritätsstufe des gesamten Skripts geändert werden. Zum Beispiel:
Process, Priority,, High
Ändert die Dauer der Unterbrechbarkeit für neu gestartete Threads.
Thread, Interrupt , Dauer, ZeilenAnzahl-
Hinweis: Dieser Unterbefehl sollte sparsam verwendet werden, weil die meisten Skripte stabiler laufen, wenn sie Einstellungen haben, die dicht bei den Standardwerten liegen.
-Standardmäßig ist jeder neu gestartete Thread für eine Dauer von 15 Millisekunden oder bei einer ZeilenAnzahl von 1000 Zeilen unterbrechungsfrei, je nachdem, was zuerst kommt. Dadurch hat der Thread die Chance, seine Arbeit zu beenden, anstatt sofort von einem anderen Thread unterbrochen zu werden, der darauf warten, seine Arbeit zu beginnen (z.B. ein gepufferter Hotkey oder eine Reihe von zeitgesteuerten Subroutinen, die ausgeführt werden sollen).
+Hinweis: Dieser Unterbefehl sollte sparsam verwendet werden, da die meisten Skripte stabiler laufen, wenn ihre Einstellungen nah an den Standardwerten liegen.
+Standardmäßig ist jeder neu gestartete Thread für eine Dauer von 15 Millisekunden oder eine ZeilenAnzahl von 1000 Zeilen unterbrechungsfrei, je nachdem, was zuerst kommt. Dadurch hat der Thread die Chance, seine Arbeit zu beenden, anstatt sofort von einem anderen Thread unterbrochen zu werden, der darauf wartet, seine Arbeit zu beginnen (z.B. ein gepufferter Hotkey oder eine Reihe von zeitgesteuerten Subroutinen, die ausgeführt werden sollen).
Hinweis: Eine Dauer kleiner als 17 kann dazu führen, dass die tatsächliche Dauer kürzer ist oder der Thread sofort unterbrochen wird, da der systeminterne Taktzähler eine Mindestauflösung von 10 bis 16 Millisekunden hat.
-Sobald einer der beiden Parameter 0 ist, wird jeder neu gestartete Thread sofort unterbrochen. Sobald einer der beiden Parameter -1 ist, kann der Thread aufgrund dieses Parameters nicht mehr unterbrochen werden. Der Höchstwert beider Parameter ist 2147483647.
-Dieser Unterbefehl ist global - das heißt, dass der Unterbefehl von allen nachfolgenden Threads berücksichtigt wird, sogar wenn der Unterbefehl irgendwo anders als im automatischen Ausführungsbereich verwendet wird. Auf unterbrochene Threads hat dies keinen Effekt, weil ihr unterbrechungsfreier Zeitraum bereits abgelaufen ist. Der aktuelle Thread bleibt ebenfalls unberührt, es sei denn, dieser Thread ist zum Zeitpunkt der Änderung des ZeilenAnzahl-Parameters unterbrechungsfrei, dann wird die neue ZeilenAnzahl für diesen Thread wirksam.
-Falls ein Hotkey gedrückt oder ein benutzerdefinierter Menüpunkt ausgewählt wird, während der aktuelle Thread unterbrechungsfrei ist, wird dieses Ereignis gepuffert. Mit anderen Worten: Das Ereignis wird erst gestartet, wenn der aktuelle Thread fertig oder wieder unterbrechbar ist, je nachdem, was zuerst kommt. Die Ausnahme hiervon ist, wenn der Thread vor seiner Beendigung unterbrechbar gemacht wird und eine höhere Priorität als das gepufferte Ereignis hat, dann wird das gepufferte Ereignis entpuffert und verworfen.
+Wenn einer der beiden Parameter 0 ist, ist jeder neu gestartete Thread sofort unterbrechbar. Wenn einer der beiden Parameter -1 ist, kann der Thread nicht als Ergebnis dieses Parameters unterbrochen werden. Das Maximum beider Parameter ist 2147483647.
+Dieser Unterbefehl ist global, d.h. alle nachfolgenden Threads werden ihn berücksichtigen, auch dann, wenn der Unterbefehl irgendwo anders als im automatischen Ausführungsbereich verwendet wird. Allerdings sind unterbrochene Threads nicht betroffen, da ihre unterbrechungsfreie Zeit bereits abgelaufen ist. Der aktuelle Thread bleibt ebenfalls unberührt, es sei denn, er ist zum Zeitpunkt der Änderung des ZeilenAnzahl-Parameters unterbrechungsfrei, dann wird die neue ZeilenAnzahl für diesen Thread wirksam.
+Wenn ein Hotkey gedrückt oder ein benutzerdefinierter Menüpunkt ausgewählt wird, während der aktuelle Thread unterbrechungsfrei ist, wird dieses Ereignis gepuffert. Mit anderen Worten, das Ereignis wird erst gestartet, wenn der aktuelle Thread fertig oder wieder unterbrechbar ist, je nachdem, was zuerst kommt. Die Ausnahme hiervon ist, wenn der Thread vor seiner Beendigung unterbrechbar gemacht wird und eine höhere Priorität als das gepufferte Ereignis hat, dann wird das gepufferte Ereignis entpuffert und verworfen.
Unabhängig davon wird ein Thread immer unterbrechbar gemacht, sobald dieser ein MsgBox-, InputBox-, FileSelectFile- oder FileSelectFolder-Dialogfenster anzeigt.
-Jeder Parameter kann leer gelassen werden, um diesen nicht zu ändern.
-Wenn Critical in der ersten Zeile der Subroutine oder Funktion des Threads angegeben wird, startet der Thread unterbrechungsfrei und der Interrupt-Unterbefehl hat keine Wirkung. Allerdings gilt das nicht für gebundene Funktionen oder benutzerdefinierte Funktionsobjekte.
+Jeder der beiden Parameter kann leer gelassen werden, um ihn nicht zu ändern.
+Wenn Critical in der ersten Zeile der Subroutine oder Funktion des Threads angegeben ist, startet der Thread unterbrechungsfrei und der Interrupt-Unterbefehl hat keine Wirkung. Dies gilt jedoch nicht für gebundene Funktionen oder benutzerdefinierte Funktionsobjekte.
Aufgrund seiner höheren Flexibilität und seiner Fähigkeit, Ereignisse zu puffern, ist der Critical-Befehl grundsätzlich nützlicher als die Unterbefehle Interrupt und Priority.
@@ -62,7 +62,7 @@Setzt die Priorität des aktuellen Threads etwas höher als normal.
+Erhöht die Priorität des aktuellen Threads ein wenig.
Thread, Priority, 1
Ein Wert, der in AusgabeVar von Catch gespeichert werden soll.
-Da dieser Parameter ein Ausdruck ist, sind alle folgenden Zeilen gültig:
+Ein Wert, der in die Ausgabevariable von Catch gespeichert werden soll.
+Da dieser Parameter ein Ausdruck ist, sind alle der folgenden Zeilen gültig:
throw 3 throw "direkt geschriebene Zeichenkette" throw MeineVar throw i + 1 throw { what: "Benutzerdefinierter Fehler", file: A_LineFile, line: A_LineNumber } ; Übergibt ein Objekt-
Dieser Parameter ist immer ein Ausdruck, daher sollten Variablenreferenzen nicht von Prozentzeichen umschlossen werden, außer, um eine Doppeldereferenzierung durchzuführen.
+Dieser Parameter ist immer ein Ausdruck, daher sollten Variablenreferenzen nur mit Prozentzeichen umschlossen werden, wenn eine Doppeldereferenzierung beabsichtigt ist.
[v1.1.05+]: Wenn weggelassen, wird ein Exception-Objekt mit einer Standardmeldung ausgelöst.
Erstellt ein Objekt mit Eigenschaften, die auch bei durch Laufzeitfehler erzeugten Ausnahmen üblich sind.
+Erstellt ein Objekt mit Eigenschaften, die auch für via Laufzeitfehler erzeugte Ausnahmen üblich sind.
Exception(Message , What, Extra)
Dieses Objekt enthält die folgenden Eigenschaften:
Lässt man What weg, wird standardmäßig der Name der aktuellen Funktion oder Subroutine verwendet. Andernfalls geben Sie eine Zeichenkette oder ein negativen Offset vom Anfang der Aufrufliste an. Zum Beispiel bewirkt ein Wert von -1, dass Exception.What
auf die aktuelle Funktion oder Subroutine gesetzt wird, und dass Exception.Line
und Exception.File
auf die Zeile und Datei gesetzt wird, die sie aufgerufen hat. Wenn das Skript jedoch kompiliert oder der Offset ungültig ist, wird What einfach in eine Zeichenkette umgewandelt.
Message und Extra werden in Zeichenketten umgewandelt. Diese werden in einem Fehlerdialogfenster angezeigt, wenn die Ausnahme ausgelöst aber nicht abgefangen wurde.
+Wenn What weggelassen wird, wird standardmäßig der Name der aktuellen Funktion oder Subroutine verwendet. Andernfalls geben Sie eine Zeichenkette oder einen negativen Offset vom Anfang der Aufrufliste an. Zum Beispiel bewirkt -1, dass Exception.What
auf die aktuelle Funktion oder Subroutine gesetzt wird, und dass Exception.Line
und Exception.File
auf die Zeile und Datei gesetzt wird, die die Funktion oder Subroutine aufgerufen hat. Wenn das Skript jedoch kompiliert ist oder der Offset ungültig ist, wird What einfach in eine Zeichenkette umgewandelt.
Message und Extra werden in Zeichenketten umgewandelt. Diese werden in einem Fehlerdialogfenster angezeigt, wenn die Ausnahme ausgelöst, aber nicht abgefangen wurde.
try IrgendeineFunktion() catch e MsgBox % "Fehler in " e.What ", das auf Zeile " e.Line " aufgerufen wurde." IrgendeineFunktion() { - throw Exception("Fehlschlag", -1) + throw Exception("Fehler", -1) }
Führt verschiedene mathematische Funktionen, bitweise Operationen und Aufgaben wie ASCII/Unicode-Konvertierung aus.
Veraltet: Dieser Befehl ist nicht für neue Skripte empfohlen. Einzelheiten dazu, was Sie stattdessen verwenden können, finden Sie in den Abschnitten zu den Unterbefehlen weiter unten.
Transform, AusgabeVar, Unterbefehl, Wert1 , Wert2-
Der AusgabeVar-Parameter ist Name der Ausgabevariable, in der das Ergebnis gespeichert werden soll. Die Parameter Unterbefehl, Wert1 und Wert2 sind voneinander abhängig und können wie folgt verwendet werden.
+Der AusgabeVar-Parameter ist der Name der Ausgabevariable, in der das Ergebnis gespeichert werden soll. Die Parameter Unterbefehl, Wert1 und Wert2 sind voneinander abhängig und können wie folgt verwendet werden.
Geben Sie für Unterbefehl Folgendes an:
diff --git a/target/docs/lib/WinGet.htm b/target/docs/lib/WinGet.htm index 7939b9ccb..c03648ba2 100644 --- a/target/docs/lib/WinGet.htm +++ b/target/docs/lib/WinGet.htm @@ -83,7 +83,7 @@Ruft die eindeutigen IDs aller existierenden Fenster gemäß den Titel/Text-Parametern ab.
WinGet, AusgabeVar, List , FensterTitel, FensterText, AusnahmeTitel, AusnahmeText-
Um alle Fenster des gesamten Systems abzurufen, müssen Sie alle vier Titel-/Text-Parameter weglassen. Jede ID-Nummer wird in eine Variable gespeichert, deren Name mit dem Eigennamen von AusgabeVar beginnt (um einen Pseudo-Array zu formen). AusgabeVar selbst wird auf die Anzahl der abgerufenen Elemente gesetzt (0, wenn keine gefunden werden). Wenn AusgabeVar beispielsweise MeinArray wäre und gäbe es zwei übereinstimmende Fenster, würde MeinArray1 auf die ID des ersten Fensters, MeinArray2 auf die ID des zweiten Fensters und MeinArray selbst auf 2 gesetzt werden. Die Fenster werden von oben nach unten abgerufen (entsprechend der Tatsache, wie sie auf dem Desktop gestapelt sind). Versteckte Fenster werden nur mitgezählt, wenn DetectHiddenWindows eingeschaltet ist. Um ein Pseudo-Array innerhalb einer Funktion global statt lokal zu machen, deklarieren Sie MeinArray als globale Variable, bevor Sie diesen Befehl verwenden (das Gegenteil davon gilt für Assume-Global-Funktionen). Oft ist es auch notwendig, jede Variable in diesem Satz einzeln zu deklarieren, da ein häufiger Anlass zu Verwirrung vorliegt.
+Um alle Fenster des gesamten Systems abzurufen, müssen Sie alle vier Titel-/Text-Parameter weglassen. Jede ID-Nummer wird in eine Variable gespeichert, deren Name mit dem Eigennamen von AusgabeVar beginnt (um einen Pseudo-Array zu formen). AusgabeVar selbst wird auf die Anzahl der abgerufenen Elemente gesetzt (0, wenn keine gefunden werden). Wenn AusgabeVar beispielsweise MeinArray wäre und gäbe es zwei übereinstimmende Fenster, würde MeinArray1 auf die ID des ersten Fensters, MeinArray2 auf die ID des zweiten Fensters und MeinArray selbst auf 2 gesetzt werden. Die Fenster werden von oben nach unten abgerufen (entsprechend der Tatsache, wie sie auf dem Desktop gestapelt sind). Versteckte Fenster werden nur mitgezählt, wenn DetectHiddenWindows eingeschaltet ist. Um ein Pseudo-Array innerhalb einer Funktion global statt lokal zu machen, deklarieren Sie MeinArray als globale Variable, bevor Sie diesen Befehl verwenden (für Assume-Global-Funktionen gilt das Gegenteil). Oft ist es auch notwendig, jede Variable in diesem Satz einzeln zu deklarieren, da ein häufiger Anlass zu Verwirrung vorliegt.
Ruft eine Zahl ab, die angibt, ob ein Fenster minimiert oder maximiert ist.
diff --git a/target/docs/lib/WinMenuSelectItem.htm b/target/docs/lib/WinMenuSelectItem.htm index dff1c198c..4a58592f5 100644 --- a/target/docs/lib/WinMenuSelectItem.htm +++ b/target/docs/lib/WinMenuSelectItem.htm @@ -53,7 +53,7 @@Dieser Befehl funktioniert auch, wenn das Zielfenster nicht aktiv ist. Allerdings ist es möglich, dass einige Fenster in einem nicht-minimierten Zustand sein müssen.
-Dieser Befehl wird nicht funktionieren, wenn Programme nicht-standardisierte Menüleisten verwenden. Microsoft Outlook und Outlook Express verwenden beispielsweise versteckte Werkzeugleisten für ihre Menüleisten. In solchen Fällen sind ControlSend oder PostMessage gut geeignet, weil sie in der Lage sein sollten, mit einigen dieser nicht-standardisierten Menüleisten interagieren zu können.
+Dieser Befehl wird nicht funktionieren, wenn Programme nicht-standardisierte Menüleisten verwenden. Microsoft Outlook und Outlook Express verwenden beispielsweise versteckte Symbolleisten für ihre Menüleisten. In solchen Fällen sind ControlSend oder PostMessage gut geeignet, weil sie in der Lage sein sollten, mit einigen dieser nicht-standardisierten Menüleisten interagieren zu können.
In den Menü-Parametern können auch Positionsnummern angegeben werden. Diese Methode existiert, um Menüs zu unterstützen, die keinen Text haben (weil sie beispielsweise Bilder statt Text enthalten). Position 1& ist der erste Menüpunkt (z.B. das Datei-Menü), Position 2& ist der zweite Menüpunkt (z.B. das Bearbeiten-Menü), und so weiter. Menü-Trennlinien zählen auch als Menüpunkte beim Bestimmen der Position.
Fenstertitel und -texte sind Groß-/Kleinschreibung-sensitiv. Versteckte Fenster werden nur erkannt, wenn DetectHiddenWindows eingeschaltet ist.
diff --git a/target/docs/lib/index.htm b/target/docs/lib/index.htm index d5d636bb2..9cc60e805 100644 --- a/target/docs/lib/index.htm +++ b/target/docs/lib/index.htm @@ -261,7 +261,7 @@Für das nächste Beispiel habe ich Paint genommen, weil das wahrscheinlich jeder haben wird. Nehmen wir mal an, dass Sie in dieser Anwendung ein Tool aus der Toolbar per AutoHotkey auswählen müssen, wie z.B. die Farbauswahl.
-Was werden Sie tun? Höchstwahrscheinlich per Mausklick auf die Toolbar-Schaltfläche, richtig? Aber Toolbars können verschoben und versteckt werden! Das trifft auch auf Paint zu. Wenn der Zielbenutzer so etwas getan hat, wird Ihr Skript an dieser Stelle fehlschlagen. Der folgende Befehl würde weiterhin funktionieren:
+Für das nächste Beispiel habe ich Paint genommen, weil das wahrscheinlich jeder haben wird. Nehmen wir mal an, dass Sie in dieser Anwendung ein Symbol in der Symbolleiste per AutoHotkey auswählen müssen, wie z.B. die Farbauswahl.
+Was werden Sie tun? Höchstwahrscheinlich per Mausklick auf die Symbolleistenschaltfläche, richtig? Aber Symbolleisten können verschoben und versteckt werden! Das trifft auch auf Paint zu. Wenn der Zielbenutzer so etwas getan hat, wird Ihr Skript an dieser Stelle fehlschlagen. Der folgende Befehl würde weiterhin funktionieren:
PostMessage, 0x0111, 639,,, Unbenannt - Paint
Ein weiterer Vorteil von PostMessage ist, dass das Fenster im Hintergrund sein kann; dagegen müsste beim Senden von Mausklicks das Fenster aktiv sein.
Hier ein paar weitere Beispiele. Hinweis: Ich verwende WinXP Pro (SP1) ... Falls sich Ihr Betriebssystem von meinem unterscheidet, könnten Ihre Parameter anders sein (gilt nur für Windows-Anwendungen wie Wordpad und Notepad, bei anderen Anwendungen sollten die Parameter nicht abweichen):