diff --git a/target/docs/Compat.htm b/target/docs/Compat.htm index dee9ed6b..f9d95773 100644 --- a/target/docs/Compat.htm +++ b/target/docs/Compat.htm @@ -40,10 +40,10 @@

ユニコードとANSIの比較

意味:技術的には、一部のUnicode文字は2つの16ビットコードユニットで表され、集合的に「サロゲートペア」として知られています。同様に、いくつかのANSIコードページ(一般にダブルバイト文字セットとして知られている)には、いくつかのダブルバイト文字が含まれています。しかし、実用上の理由から、これらはほとんどの場合、2つの個別のユニット(簡単のために「文字」と呼ばれる)として扱われます。

Buffer

-

バッファを割り当てる際には、必要なエンコーディングに応じた正しいバイト数を計算するように注意してください。事例:

+

バッファを割り当てる際には、必要なエンコーディングに応じた正しいバイト数を計算するように注意してください。例:

ansi_buf := Buffer(capacity_in_chars)
 utf16_buf := Buffer(capacity_in_chars * 2)
-

StrPutでANSIまたはUTF-8の文字列をバッファに書き込む場合、ANSIまたはUTF-8の長さがネイティブ(UTF-16)の長さと異なる場合があるので、バッファのサイズを決めるのにStrLenを使用しないでください。代わりに、StrPutを使用して必要なバッファサイズを計算します。事例:

+

StrPutでANSIまたはUTF-8の文字列をバッファに書き込む場合、ANSIまたはUTF-8の長さがネイティブ(UTF-16)の長さと異なる場合があるので、バッファのサイズを決めるのにStrLenを使用しないでください。代わりに、StrPutを使用して必要なバッファサイズを計算します。例:

required_bytes := StrPut(source_string, "cp0")
 ansi_buf := Buffer(required_bytes)
 StrPut(source_string, ansi_buf)
diff --git a/target/docs/Concepts.htm b/target/docs/Concepts.htm index 3045225b..141f7d53 100644 --- a/target/docs/Concepts.htm +++ b/target/docs/Concepts.htm @@ -27,7 +27,7 @@

目次

  • 変数 -

    事例:

    +

    例:

     myObj.methodName(arg1)
     value := myObj.propertyName[arg1]
     
    -

    オブジェクトは、デフォルトプロパティを持つことができます。これは、プロパティ名なしで角括弧が使用されたときに呼び出されます。事例:

    +

    オブジェクトは、デフォルトプロパティを持つことができます。これは、プロパティ名なしで角括弧が使用されたときに呼び出されます。例:

    value := myObj[arg1]

    一般にSetは代入と同じ意味を持つので、同じ演算子を使います:

    @@ -166,7 +166,7 @@ 

    変数の設定を解除するには、直接代入(:=)とunsetキーワードまたはmaybe(var?)演算子。事例:Var := unsetVar1 := (Var2?)

    変数に値がない場合、or-maybe演算子(??)を使ってデフォルト値を提供することができる。例えば、MyVar ?? "Default" は、IsSet(MyVar) ? MyVar : "Default"と同等です。

    -

    組み込みの変数

    +

    組込変数

    プログラムには便利な変数が多数組み込まれており、どのスクリプトからも参照することができます。注意書きがある場合を除き、これらの変数は読み取り専用です。つまり、スクリプトでその内容を直接変更することはできません。慣習上、これらの変数のほとんどは接頭辞A_で始まります。

    A_KeyDelayA_TitleMatchModeなどの一部の変数は、スクリプトの動作を制御する設定を表し、各スレッドで別々の値を保持します。これにより、新しいスレッドで起動したサブルーチン(ホットキー、メニュー、タイマーなど)が、他のスレッドに影響を与えずに設定を変更することができます。

    特殊な変数の中には、定期的に更新されるのではなく、スクリプトがその変数を参照するたびに、その値が取得または計算されるものがあります。例えば、A_Clipboardはクリップボードの現在の内容をテキストとして取得し、A_TimeSinceThisHotkeyはホットキーが押されてから経過したミリ秒数を計算します。

    @@ -175,7 +175,7 @@

    組み込みの変数

    環境変数

    環境変数は、オペレーティングシステムによって管理されます。コマンドプロンプトで「SET」と入力してEnterを押すと、その一覧を見ることができます。

    スクリプトは、EnvSetを使用して新しい環境変数を作成したり、既存の環境変数の内容を変更したりすることができます。このような追加や変更は、システムの他の部分からは見えません。ただし、RunRunWaitを呼び出してスクリプトが起動するプログラムやスクリプトは、通常、親スクリプトの環境変数のコピーを引き継ぎます。

    -

    環境変数を取得する場合は、EnvGetを使用します。事例:

    +

    環境変数を取得する場合は、EnvGetを使用します。例:

    Path := EnvGet("PATH")

    変数参照(VarRef)

    @@ -216,7 +216,7 @@

    関数

    関数は通常、パラメータを特定の順序で記述することを想定しているため、各パラメータ値の意味は、カンマで区切られたパラメータリスト内の位置に依存します。一部のパラメータは省略可能で、その場合はパラメータを空白にすることができますが、それに続くカンマは、残りのすべてのパラメータも省略される場合にのみ省略することができます。例えば、ControlSendの構文は以下の通りです:

    ControlSend Keys , Control, WinTitle, WinText, ExcludeTitle, ExcludeText
     
    -

    角括弧は、囲んだパラメータがオプションであることを示します(括弧自体は実際のコードに表示されるべきではありません)。ただし、通常はターゲットウィンドウも指定する必要があります。事例:

    +

    角括弧は、囲んだパラメータがオプションであることを示します(括弧自体は実際のコードに表示されるべきではありません)。ただし、通常はターゲットウィンドウも指定する必要があります。例:

     ControlSend "^{Home}", "Edit1", "A"  ; 正しい。制御が指定されている。
     ControlSend "^{Home}", "A"           ; 不正解です。パラメータが不一致です。
    @@ -313,14 +313,14 @@ 

    純粋数

    浮動小数点数は、一般的に15桁の精度をサポートしています。

  • -

    注:2進浮動小数点形式では正確に表現できない10進数の端数があるため、表現可能な最も近い数値に丸められます。そのため、予期せぬ結果になる可能性があります。事例:

    +

    注:2進浮動小数点形式では正確に表現できない10進数の端数があるため、表現可能な最も近い数値に丸められます。そのため、予期せぬ結果になる可能性があります。例:

     MsgBox 0.1 + 0           ; 0.10000000000000001
     MsgBox 0.1 + 0.2         ; 0.30000000000000004
     MsgBox 0.3 + 0           ; 0.29999999999999999
     MsgBox 0.1 + 0.2 = 0.3   ; 0(ノットイコール)
     
    -

    その対策として、直接の比較を避け、代わりに違いを比較することがあります。事例:

    +

    その対策として、直接の比較を避け、代わりに違いを比較することがあります。例:

    MsgBox Abs((0.1 + 0.2) - (0.3)) < 0.0000000000000001
     

    また、文字列に変換するなどして、比較の前に丸めを明示的に適用する方法もある。精度を指定しながら行う方法は一般的に2つあり、どちらも以下に示すとおりです:

    diff --git a/target/docs/FAQ.htm b/target/docs/FAQ.htm index 17e8d7a1..683b5a49 100644 --- a/target/docs/FAQ.htm +++ b/target/docs/FAQ.htm @@ -116,7 +116,7 @@

    エラーで起動しないので、トレイアイコン

    スクリプトのエラーを見つけて修正するにはどうすればよいですか?

    簡単なスクリプトについては、「スクリプトのデバッグ」を参照してください。変数の内容を表示するには、MsgBoxまたはToolTipを使用します。複雑なスクリプトについては、「インタラクティブ・デバッグ」を参照してください。

    実行機能でゲームやプログラムを起動できないのはなぜですか?

    -

    プログラムによっては、独自のディレクトリで起動する必要があります(疑わしい場合は、通常、そうするのが最善です)。事例:

    +

    プログラムによっては、独自のディレクトリで起動する必要があります(疑わしい場合は、通常、そうするのが最善です)。例:

    Run A_ProgramFiles "\Some Application\App.exe", A_ProgramFiles "\Some Application"

    起動しようとしているプログラムがA_WinDir "\System32"にあり、64ビットシステムでAutoHotkey 32ビットを使用している場合、ファイルシステムリダイレクトが干渉している可能性があります。これは、A_WinDir "\SysNative"を代わりに使用; 64ビットシステム上で動作する32ビットプログラムにのみ表示される仮想ディレクトリです。

    @@ -146,7 +146,7 @@

    特定のゲームでホットストリ

    注意:ユーザーアカウント制御が有効な場合、スクリプトが管理者として実行されていても、SendPlayが全く効果を発揮しない場合があります。

  • -

    SetKeyDelayの増加。事例:

    +

    SetKeyDelayの増加。例:

    SetKeyDelay 0, 50
     SetKeyDelay 0, 50, "Play"
  • @@ -179,7 +179,7 @@

    公式ビルドや旧バージョンはどこで入手でき

    USBメモリからAHKを起動することはできますか?

    AutoHotkey.exeの移植性を参照してください。

    コマンドライン操作の出力はどのように取得できますか?

    -

    テストでは、ファイルキャッシュにより、一時ファイルが比較的小さな出力でも非常に高速に動作することが確認されています。実際、使用後すぐにファイルを削除すると、実際にはディスクに書き込まれないことが多い。事例:

    +

    テストでは、ファイルキャッシュにより、一時ファイルが比較的小さな出力でも非常に高速に動作することが確認されています。実際、使用後すぐにファイルを削除すると、実際にはディスクに書き込まれないことが多い。例:

    RunWait A_ComSpec ' /c dir > C:\My Temp File.txt'
     VarToContainContents := FileRead("C:\My Temp File.txt")
     FileDelete "C:\My Temp File.txt"
    @@ -292,7 +292,7 @@

    キーやボタンの二度押しを検出するにはど MsgBox "double-press" }

    ホットキーホットストリングを特定のプログラム専用にするにはどうすればよいですか?つまり、特定のウィンドウがアクティブなとき以外は、あるキーが通常通り動作するようにしたいのです。

    -

    好ましいのは「#HotIf」です。事例:

    +

    好ましいのは「#HotIf」です。例:

    #HotIf WinActive("ahk_class Notepad")
     ^a::MsgBox "You pressed Control-A while Notepad is active."
     
    diff --git a/target/docs/Functions.htm b/target/docs/Functions.htm index 37559a2a..28b868b2 100644 --- a/target/docs/Functions.htm +++ b/target/docs/Functions.htm @@ -55,7 +55,7 @@

    導入と簡単な例

    { return x + y } -

    上記は、「Add」という名前の関数(大文字小文字を区別しない)を作成し、それを呼び出す人は正確に2つのパラメータ(xとy)を提供しなければならないと定めていることから、関数定義として知られています。関数を呼び出すには、その結果を:=演算子で変数に代入します。事例:

    +

    上記は、「Add」という名前の関数(大文字小文字を区別しない)を作成し、それを呼び出す人は正確に2つのパラメータ(xとy)を提供しなければならないと定めていることから、関数定義として知られています。関数を呼び出すには、その結果を:=演算子で変数に代入します。例:

    Var := Add(2, 3)  ; Varに数字5が格納されます。

    また、関数は戻り値を保存せずに呼び出すことができます:

    Add(2, 3)
    @@ -85,7 +85,7 @@ 

    ByRefパラメータ

    Right := temp }

    上記の例では、&を使用することで、呼び出し側がVarRefを渡す必要があります。各パラメーターは、VarRefで表される変数のエイリアスになります。つまり、パラメータも呼び出し側の変数も、メモリ上の同じ内容を参照しているのです。これにより、Swap関数は、の内容をに移動したり、逆に右の内容を右に移動したりして、呼び出し側の変数を変更することができます。

    -

    一方、上記の例でByRefを使用しなかった場合、LeftRightは呼び出し元の変数のコピーとなるため、Swap関数は外部に影響を与えることはありません。しかし、その代わりに、各 VarRef を明示的に非参照にするように関数を変更することができます。事例:

    +

    一方、上記の例でByRefを使用しなかった場合、LeftRightは呼び出し元の変数のコピーとなるため、Swap関数は外部に影響を与えることはありません。しかし、その代わりに、各 VarRef を明示的に非参照にするように関数を変更することができます。例:

    Swap(Left, Right)
     {
         temp := %Left%
    @@ -129,7 +129,7 @@ 

    アンセットパラメータ

    MyFunc(42) MyFunc
    -

    パラメータに値がないのに読み込もうとすると、初期化されていない変数と同じようにエラーとみなされます。オプションのパラメータに値がない場合でも他の関数に渡すには、maybe演算子(var?。事例:

    +

    パラメータに値がないのに読み込もうとすると、初期化されていない変数と同じようにエラーとみなされます。オプションのパラメータに値がない場合でも他の関数に渡すには、maybe演算子(var?。例:

     Greet(title?) {
         MsgBox("Hello!", title?)
    @@ -229,14 +229,14 @@ 

    ローカル変数

    また、localキーワードで変数を宣言したり、関数のモードを変更することで、デフォルトをオーバーライドすることもできます(下図)。

    グローバル変数

    -

    想定ローカル関数内の変数参照は、それが読み込まれるだけであれば、グローバル変数に解決される可能性があります。ただし、変数が代入や参照演算子(&)で使用された場合、デフォルトで自動的にローカルになります。これにより、関数は関数内で宣言することなく、グローバル変数の読み込みや、グローバル関数や組み込み関数の呼び出しを行うことができます。また、代入されるローカル変数の名前がグローバル変数と一致する場合に、意図しない副作用からスクリプトを保護します。事例:

    +

    想定ローカル関数内の変数参照は、それが読み込まれるだけであれば、グローバル変数に解決される可能性があります。ただし、変数が代入や参照演算子(&)で使用された場合、デフォルトで自動的にローカルになります。これにより、関数は関数内で宣言することなく、グローバル変数の読み込みや、グローバル関数や組み込み関数の呼び出しを行うことができます。また、代入されるローカル変数の名前がグローバル変数と一致する場合に、意図しない副作用からスクリプトを保護します。例:

    LogToFile(TextToLog)
     {
         ; LogFileNameは、以前この関数の外のどこかで値を与えられていました。
         ; FileAppend は、組み込み関数を含む事前定義されたグローバル変数です。
         FileAppend TextToLog "`n", LogFileName
     }
    -

    それ以外の場合、関数内で既存のグローバル変数を参照する(または新規に作成する)には、その変数を使用する前にグローバル変数として宣言します。事例:

    +

    それ以外の場合、関数内で既存のグローバル変数を参照する(または新規に作成する)には、その変数を使用する前にグローバル変数として宣言します。例:

    SetDataDir(Dir)
     {
         global LogFileName
    @@ -244,7 +244,7 @@ 

    グローバル変数

    global DataDir := Dir ; 後述するアサインメントと組み合わせた宣言を行います。 }
    -

    アシュームグローバルモード:ある関数が多数のグローバル変数にアクセスしたり作成したりする必要がある場合、その関数の最初の行を「global」とすることで、(パラメータを除く)すべての変数がグローバルであると仮定するよう定義することができます。事例:

    +

    アシュームグローバルモード:ある関数が多数のグローバル変数にアクセスしたり作成したりする必要がある場合、その関数の最初の行を「global」とすることで、(パラメータを除く)すべての変数がグローバルであると仮定するよう定義することができます。例:

    SetDefaults()
     {
         global
    @@ -253,7 +253,7 @@ 

    グローバル変数

    }

    スタティック変数

    -

    静的変数は常に暗黙のローカル変数ですが、呼び出しの間にその値が記憶されるため、ローカル変数とは異なります。事例:

    +

    静的変数は常に暗黙のローカル変数ですが、呼び出しの間にその値が記憶されるため、ローカル変数とは異なります。例:

    LogToFile(TextToLog)
     {
         static LoggedLines := 0
    @@ -263,7 +263,7 @@ 

    スタティック変数

    }

    静的変数は、宣言と同じ行で、:=と任意ので続けて初期化することができる。事例:static X:=0, Y:="fox"。Static declarations are evaluated the same as local declarations, except that after a static initializer (or group of combined initializers) is successfully evaluated, it is effectively removed from the flow of control and will not execute a second time.

    ネストした関数は、外側の関数の非静的なローカル変数を取り込まないように、静的に宣言することができます。

    -

    アシュームスタティックモード:関数の最初の行を「static」とすることで、宣言されていないローカル変数はすべて(パラメータを除いて)静的であると仮定するように定義することができる。事例:

    +

    アシュームスタティックモード:関数の最初の行を「static」とすることで、宣言されていないローカル変数はすべて(パラメータを除いて)静的であると仮定するように定義することができる。例:

    GetFromStaticArray(WhichItemNumber)
     {
         static
    @@ -312,7 +312,7 @@ 

    簡略化されたブーリアン評価

    三項条件演算子(?:)も、ロス分岐を評価しないことで短絡させる。

    ネストされた関数

    -

    ネストされた関数は、他の関数の中で定義されたものです。事例:

    +

    ネストされた関数は、他の関数の中で定義されたものです。例:

     outer(x) {
         inner(y) {
    @@ -343,7 +343,7 @@ 

    ネストされた関数

    各関数定義は、関数そのものを含む読み取り専用の変数、つまりFuncまたはClosureオブジェクトを作成します。使用例については、以下をご覧ください。

    スタティック関数

    -

    つまり、外側の関数を呼び出すたびに、同じFuncを参照することになります。キーワードstaticは、入れ子になった関数を明示的にstaticと宣言するために使用します。この場合、外側の関数のstaticでないローカル変数は無視されます。事例:

    +

    つまり、外側の関数を呼び出すたびに、同じFuncを参照することになります。キーワードstaticは、入れ子になった関数を明示的にstaticと宣言するために使用します。この場合、外側の関数のstaticでないローカル変数は無視されます。例:

    outer() {
         x := "outer value"
         static inner() {
    @@ -358,7 +358,7 @@ 

    スタティック関数

    クロージャ

    クロージャとは、自由変数の集合に束縛されたネストされた関数のことです。自由変数は、外側の関数のローカル変数で、ネストした関数でも使用されます。クロージャは、1つまたは複数のネストした関数が、外側の関数が戻った後でも、外側の関数と変数を共有することを可能にします。

    -

    クロージャを作るには、外側の関数の変数を参照する入れ子関数を定義するだけです。事例:

    +

    クロージャを作るには、外側の関数の変数を参照する入れ子関数を定義するだけです。例:

     make_greeter(f)
     {
    @@ -373,7 +373,7 @@ 

    クロージャ

    g(A_UserName) g("World")
    -

    クロージャは、SetTimerHotkeyなどの組み込み関数で使用することもできます。事例:

    +

    クロージャは、SetTimerHotkeyなどの組み込み関数で使用することもできます。例:

     app_hotkey(keyname, app_title, app_path)
     {
    @@ -393,7 +393,7 @@ 

    クロージャ

    入れ子になった関数は、外側の関数の非静的なローカル変数をキャプチャすれば、自動的にクロージャとなります。クロージャそのものに対応する変数(activateなど)も非静的なローカル変数なので、クロージャを参照するネストした関数は自動的にクロージャになります。

    外側の関数を呼び出すたびに、以前の呼び出しとは異なる新しいクロージャが作成されます。

    -

    It is best not to store a reference to a closure in any of the outer function's free variables, since that creates a reference cycle which must be broken (such as by clearing the variable) before the closure can be freed. However, a closure may safely refer to itself and other closures by their original variables without creating a problematic reference cycle. 事例:

    +

    It is best not to store a reference to a closure in any of the outer function's free variables, since that creates a reference cycle which must be broken (such as by clearing the variable) before the closure can be freed. However, a closure may safely refer to itself and other closures by their original variables without creating a problematic reference cycle. 例:

     timertest() {
         x := "tock!"
    @@ -418,7 +418,7 @@ 

    復帰・退出・総評

    関数内で使用すると、ListVarsは関数のローカル変数をその内容とともに表示します。This can help debug a script.

    スタイルと命名規則

    複雑な関数は、特殊な変数に明確な接頭辞をつけると読みやすく、保守しやすくなります。例えば、関数のパラメータリストの各パラメータに「p」や「p_」という先頭の名前を付けると、特に数十個のローカル変数が競合している関数では、その特殊性が一目瞭然になる。同様に、ByRefパラメータには接頭辞「r」または「r_」を、静的変数には「s」または「s_」を使用することができる。

    -

    機能定義にOne True Brace(OTB)スタイルをオプションで使用することができる。事例:

    +

    機能定義にOne True Brace(OTB)スタイルをオプションで使用することができる。例:

    Add(x, y) {
         return x + y
     }
    diff --git a/target/docs/Hotkeys.htm b/target/docs/Hotkeys.htm index 893d085b..e5882a8c 100644 --- a/target/docs/Hotkeys.htm +++ b/target/docs/Hotkeys.htm @@ -35,7 +35,7 @@

    導入と簡単な例

    }

    上記では、中括弧はホットキーの関数体を定義する役割を果たします。また、OTB(One True Brace)スタイルをサポートするために、ダブルコロンと同じ行に開始ブレースを指定することができる。ただし、ホットキーが1つの行だけを実行する必要がある場合は、その行をダブルコロンの右側にリストアップすることができます。つまり、中括弧は暗黙の了解なのです:

    #n::Run "notepad"
    -

    ホットキーがトリガーされると、ホットキーの名前がThisHotkeyという最初のパラメータとして渡されます(末尾のコロンは除外されます)。事例:

    +

    ホットキーがトリガーされると、ホットキーの名前がThisHotkeyという最初のパラメータとして渡されます(末尾のコロンは除外されます)。例:

    #n::MsgBox ThisHotkey  ; レポート #n

    一部の例外を除き、組み込み変数A_ThisHotkeyと同様です。パラメータ名は、名前付き関数を使用することで変更することができます。

    1つのホットキーで複数のモディファイアを使用する場合は、連続してリストアップしてください(順番は関係ありません)。次の例では、Ctrl+Alt+Sを示すために^!sを使用しています:

    @@ -87,7 +87,7 @@

    ホットキーモディファイアの記号

    <^>! -

    AltGrオルタネートグラフ、代替グラフィック)。キーボードレイアウトに右Altキーの代わりにAltGrがある場合、この一連の記号は通常AltGrを表すために使用することができます。事例:

    +

    AltGrオルタネートグラフ、代替グラフィック)。キーボードレイアウトに右Altキーの代わりにAltGrがある場合、この一連の記号は通常AltGrを表すために使用することができます。例:

    <^>!m::MsgBox "You pressed AltGr+m."
     <^<!m::MsgBox "You pressed LeftControl+LeftAlt+m."

    また、AltGr自体をホットキーにするには、以下のホットキーを使用します(上記のようなホットキーが存在しない状態):

    @@ -95,7 +95,7 @@

    ホットキーモディファイアの記号

    * -

    ワイルドカード:余分なモディファイアが押されていても、ホットキーを発射します。キーやボタンのリマッピングとセットで使われることが多いです。事例:

    +

    ワイルドカード:余分なモディファイアが押されていても、ホットキーを発射します。キーやボタンのリマッピングとセットで使われることが多いです。例:

    *#c::Run "calc.exe"  ; Win+C、Shift+Win+C、Ctrl+Win+Cなど、すべてこのホットキーがトリガーされます。
     *ScrollLock::Run "notepad"  ; 修飾キーが押されていても、ScrollLockを押すとこのホットキーが起動します。

    ワイルドカードホットキーは、ワイルドカードホットキーに取って代わられたホットキーと同様に、常にキーボードフックを使用します。例えば、*a::があると、^a::は常にフックを使用するようになります。

    @@ -133,13 +133,13 @@

    ホットキーモディファイアの記号

    「Up」は、この例のように通常のホットキーでも使用することができます:^!r Up::MsgBox "You pressed and released Ctrl+Alt+R"組み合わせホットキー(例:F1 & e Up::)でも動作します

    制限:1)「Up」はコントローラーのボタンでは動作しない。2)「Up」ホットキーに対応する通常のホットキー/ダウンホットキーがない場合、そのキーが完全に引き継がれ、押したままになるのを防ぐ。これを防ぐ一つの方法は、チルダの接頭辞を付けることです(例えば、~LControl up::

    「Up」ホットキーとそのキーダウンの対応するもの(ある場合)は、常にキーボードフックを使用します。

    -

    これに関連して、上記と似た手法として、ホットキーをプレフィックスキーにする方法があります。この利点は、ホットキーは離すと起動しますが、押している間に他のキーを押さなかった場合にのみ起動することです。事例:

    +

    これに関連して、上記と似た手法として、ホットキーをプレフィックスキーにする方法があります。この利点は、ホットキーは離すと起動しますが、押している間に他のキーを押さなかった場合にのみ起動することです。例:

    LControl & F1::return  ; 少なくとも1回は「&」の前に使うことで、left-controlを接頭辞とします。
     LControl::MsgBox "You released LControl without having used it to modify any other key."

    注:キーボートとマウス・ジョイスティックのボタンのリストは、キーリストをご覧ください。

    -

    複数のホットキーを縦に重ねて、同じ動作をさせることができます。事例:

    +

    複数のホットキーを縦に重ねて、同じ動作をさせることができます。例:

    ^Numpad0::
     ^Numpad1::
     {
    @@ -150,7 +150,7 @@ 

    ホットキーモディファイアの記号

    RWin::return

    文脈依存のホットキー

    -

    #HotIfディレクティブを使用すると、特定の条件によってホットキーに異なる動作をさせることができます(または全くさせないこともできます)。事例:

    +

    #HotIfディレクティブを使用すると、特定の条件によってホットキーに異なる動作をさせることができます(または全くさせないこともできます)。例:

    #HotIf WinActive("ahk_class Notepad")
     ^a::MsgBox "You pressed Ctrl-A while Notepad is active. Pressing Ctrl-A in any other window will pass the Ctrl-A keystroke to that window."
     #c::MsgBox "You pressed Win-C while Notepad is active."
    @@ -179,7 +179,7 @@ 

    カスタムコンビネーション

    Numpad0::Send "{Numpad0}" ; Numpad0 のリリースでNumpad0 のキーストロークを生成させる。以下のコメント参照。

    リリース時に発射:上記のカスタムコンビネーションホットキーが存在する場合、Numpad0を離すと指示されたアクションが実行されますが、Numpad0を押している間に他のキーを押していない場合に限られます。この動作は、いずれかのホットキーにチルダ接頭辞を付けることで回避できます。

    モディファイア:通常のホットキーとは異なり、カスタムの組み合わせは、デフォルトでワイルドカード(*)モディファイアを持つように動作します。例えば、1 & 2::は、12を押したときにCtrlまたはAltが押されていても起動しますが、^1::Ctrl+1で起動し、Ctrl+Alt+1では起動しないでしょう。

    -

    3つ以上のキーの組み合わせはサポートされていません。キーボードのハードウェアがサポートする組み合わせは、通常#HotIfGetKeyStateを使用して検出することができますが、結果は一貫していない場合があります。事例:

    +

    3つ以上のキーの組み合わせはサポートされていません。キーボードのハードウェアがサポートする組み合わせは、通常#HotIfGetKeyStateを使用して検出することができますが、結果は一貫していない場合があります。例:

    ; AppsKey と Alt を任意の順番で押して、スラッシュ(/)を押します。
     #HotIf GetKeyState("AppsKey", "P")
     Alt & /::MsgBox "Hotkey activated."
    @@ -226,7 +226,7 @@ 

    マウスホイールホットキー

    最後に、マウスホイールのホットキーはダウンイベントのみを生成するため(アップイベントは生成しない)、キーアップホットキーとして使用することはできません。

    ホットキーのヒントと備考

    -

    それぞれのテンキーは、NumLockの状態に応じて2つの異なるホットキーサブルーチンを起動させることができます。また、テンキーは状態に関係なく同じサブルーチンを起動するようにすることもできます。事例:

    +

    それぞれのテンキーは、NumLockの状態に応じて2つの異なるホットキーサブルーチンを起動させることができます。また、テンキーは状態に関係なく同じサブルーチンを起動するようにすることもできます。例:

    NumpadEnd::
     Numpad1::
     {
    diff --git a/target/docs/Hotstrings.htm b/target/docs/Hotstrings.htm
    index f89e1288..bfc7de04 100644
    --- a/target/docs/Hotstrings.htm
    +++ b/target/docs/Hotstrings.htm
    @@ -43,7 +43,7 @@ 

    導入と簡単な例

    }

    上記では、中括弧は各ホットストリングの関数本体を定義する役割を果たします。左中括弧は、OTB (One True Brace) スタイルをサポートするために、二重コロンと同じ行に指定することもできます。

    上の2つの例は自動置換ホットストリングでないにもかかわらず、入力した略語はデフォルトで消去されます。これは自動バックスペースによって行われますが、b0オプションによって無効にすることができます。

    -

    ホットストリングがトリガーされると、ホットストリングの名前がThisHotkeyという最初のパラメータとして渡されます(末尾のコロンを除いたものです)。事例:

    +

    ホットストリングがトリガーされると、ホットストリングの名前がThisHotkeyという最初のパラメータとして渡されます(末尾のコロンを除いたものです)。例:

    :X:btw::MsgBox ThisHotkey  ; メッセージボックスに「:X:btw」と表示されます。

    一部の例外を除き、組み込み変数A_ThisHotkeyと同様です。パラメータ名は、名前付き関数を使用することで変更することができます。

    @@ -60,7 +60,7 @@

    Options

  • ホットストリングの最初のコロンのペアの間にオプションを挟みます。次の例では、Cと*オプション(大文字と小文字が区別され、「エンディングキャラクターは不要」)をこのホットストリングのみに対して有効にします::c*:j@::john@somedomain.com
  • 以下のリストでは、各オプションについて説明します。上記の方法で複数のオプションを指定するときは、オプションの間にスペースを任意に含めることができます。

    -

    *(アスタリスク):ホットストリングのトリガーには、Space.Enterなどのエンディングキャラクターは必要ありません。事例:

    +

    *(アスタリスク):ホットストリングのトリガーには、Space.Enterなどのエンディングキャラクターは必要ありません。例:

    :*:j@::jsmith@somedomain.com

    上の例では、@を入力した瞬間に置換する文字列(jsmith@somedomain.com)を送信します。#Hotstringディレクティブを使用するときは、このオプションをオフに戻すには*0を使用します。

    ?(クエスチョンマーク):ホットストリングは、他の単語の中にあっても発動します。つまり、直前に入力された文字が英数字である場合、ホットストリングは発動します。例えば、:?:al::airlineがホットストリングである場合、「practical 」と入力すると、「practicairline 」が出力されます。このオプションをオフに戻すには、?0を使用します。

    @@ -96,7 +96,7 @@

    Options

    }

    上記にはZオプションがないので、111(3つの連続した1)を入力すると、真ん中の1が最初のトリガーの最後の文字でありながら、2番目のトリガーの最初の文字でもあるため、ホットストリングが2回トリガーされます。b0の前に文字Zを追加することで、ホットストリングを2回発動させるためには、3回ではなく4回1を入力する必要があります。このオプションをオフに戻すには、Z0を使用します。

    ロングリプレイスメント

    -

    大量の置換テキストを生成するHotstringsは、継続セクションを使用することで、より読みやすく、保守的にすることができます。事例:

    +

    大量の置換テキストを生成するHotstringsは、継続セクションを使用することで、より読みやすく、保守的にすることができます。例:

    ::text1::
     (
     上下の括弧の間のテキストは、文字通りに扱われます。
    @@ -105,7 +105,7 @@ 

    ロングリプレイスメント

    )

    これらのデフォルトの動作を変更する方法については、続きのセクションを参照してください。また、継続セクションがあると、ホットストリングのデフォルトがテキストモードになります。この特別なデフォルトを上書きする唯一の方法は、継続セクションを持つ各ホットストリングで反対側のオプションを指定することです(例えば、:t0:text1:: or :r:text2::など)。

    文脈依存型ホットストリング

    -

    #HotIfディレクティブを使用することで、選択したホットストリングをコンテキストセンシティブにすることができます。このようなホットストリングは、アクティブなウィンドウの種類などの条件によって、異なる置換を送信したり、異なるアクションを実行したり、まったく何もしなかったりします。事例:

    +

    #HotIfディレクティブを使用することで、選択したホットストリングをコンテキストセンシティブにすることができます。このようなホットストリングは、アクティブなウィンドウの種類などの条件によって、異なる置換を送信したり、異なるアクションを実行したり、まったく何もしなかったりします。例:

    #HotIf WinActive("ahk_class Notepad")
     ::btw::This replacement text will appear only in Notepad.
     #HotIf
    diff --git a/target/docs/Language.htm b/target/docs/Language.htm
    index 91531d1f..1b2d89c5 100644
    --- a/target/docs/Language.htm
    +++ b/target/docs/Language.htm
    @@ -81,9 +81,9 @@ 

    一般的な慣習

    コメント

    コメントとは、スクリプト内のテキストの一部で、プログラムによって無視される部分です。一般的には、説明を加えたり、コードの一部を無効にしたりするために使用されます。

    -

    スクリプトは、行頭のセミコロンでコメントすることができます。事例:

    +

    スクリプトは、行頭のセミコロンでコメントすることができます。例:

    ; この行全体がコメントです。
    -

    コメントは行末に追加することもできますが、その場合、セミコロンの左側には少なくとも1つのスペースまたはタブが必要です。事例:

    +

    コメントは行末に追加することもできますが、その場合、セミコロンの左側には少なくとも1つのスペースまたはタブが必要です。例:

    Run "Notepad"  ; これは、関数呼び出しと同じ行にあるコメントです。

    さらに、この/* および */記号は、この例のように、セクション全体をコメントアウトするために使用することができます:

    /*
    @@ -117,7 +117,7 @@ 

    変数

  • 明示的な連結:"The value is " . MyVar
  • 暗黙の連結は、自動連結とも呼ばれる。いずれの場合も、変数とドットの前にあるスペースは必須です。

    -

    また、フォーマット機能もこの目的に使用できます。事例:

    +

    また、フォーマット機能もこの目的に使用できます。例:

    MsgBox Format("You are using AutoHotkey v{1} {2}-bit.", A_AhkVersion, A_PtrSize*8)

    MyVar := "Some text"のように、変数に値を代入するには、:= 代入演算子を使用します。

    式中のパーセント記号は、動的な変数参照を作成するために使用されますが、これらはほとんど必要ありません。

    @@ -149,7 +149,7 @@

    関数呼び出し

    関数呼び出し式は通常、リテラル関数名で始まりますが、呼び出しの対象は、関数オブジェクトを生成する任意の式にすることができます。GetKeyState("Shift")という式では、GetKeyStateは実際には変数参照ですが、通常は組み込み関数を含む読み取り専用変数を指します。

    関数呼び出し文

    -

    関数の戻り値が必要なく、関数名が行頭に書かれている場合(またはelseホットキーに続くなど、ステートメントを許可する他のコンテキスト)、括弧を省略することができます。この場合、行の残りは関数のパラメータリストとして扱われます。事例:

    +

    関数の戻り値が必要なく、関数名が行頭に書かれている場合(またはelseホットキーに続くなど、ステートメントを許可する他のコンテキスト)、括弧を省略することができます。この場合、行の残りは関数のパラメータリストとして扱われます。例:

    result := MsgBox("This one requires parentheses.",, "OKCancel")
     MsgBox "This one doesn't. The result was " result "."

    同じ文脈でメソッドを呼び出す場合、括弧を省略することもできますが、対象となるオブジェクトがmyVar.myMethodmyVar.myProp.myMethodのように変数や直接名前の付いたプロパティの場合のみです。

    @@ -297,7 +297,7 @@

    関数

    関数を定義する方法は複数あります:

      -
    • 名前、括弧、コードのブロックを組み合わせた関数定義です。これは、関数コールまたは関数コールステートメントで名前を指定して実行できる関数を定義します。事例: +
    • 名前、括弧、コードのブロックを組み合わせた関数定義です。これは、関数コールまたは関数コールステートメントで名前を指定して実行できる関数を定義します。例:
      SayHello()  ; SayHello関数を定義します。
       {
           MsgBox "Hello!"
      @@ -305,14 +305,14 @@ 

      関数

      SayHello ; SayHello関数を呼び出す。
    • -
    • ホットキーまたはホットストリングの定義で、ホットキーまたはホットストリングを1つのステートメントまたはコードのブロックと組み合わせたものです。このタイプの関数は直接呼び出すことはできませんが、ホットキーまたはホットストリングがアクティブになるたびに実行されます。事例: +
    • ホットキーまたはホットストリングの定義で、ホットキーまたはホットストリングを1つのステートメントまたはコードのブロックと組み合わせたものです。このタイプの関数は直接呼び出すことはできませんが、ホットキーまたはホットストリングがアクティブになるたびに実行されます。例:
      #w::Run "wordpad"  ; Win-Wを押してWordpadを実行します。
       #n::  ; Win-Nを押してメモ帳を起動します。
       {
           Run "notepad"
       }
    • -
    • ファットアロー式は、コードのブロックを実行する代わりに、を評価してその結果を返す関数を定義します。このような関数は、他の関数に直接渡されるため、通常は名前を持ちません。事例: +
    • ファットアロー式は、コードのブロックを実行する代わりに、を評価してその結果を返す関数を定義します。このような関数は、他の関数に直接渡されるため、通常は名前を持ちません。例:
      SetTimer () => MsgBox("Hello!"), -1000  ; 1秒後に「こんにちは」を表示します。
    • ファットアロー構文は、通常の関数やメソッド定義の略記として、式の外でも使用できます。例えば、以下は上記のSayHelloの定義と同等ですが、こちらは「OK」を返すことを除きます: @@ -325,7 +325,7 @@

      関数

    • 変数が参照されているが、代入や参照演算子(&var)の対象として使用されていない場合。
    • ネストした関数の内部で、外側関数のローカル変数を参照する場合。
    -

    関数は、オプションでパラメータを受け取ることができます。パラメータは、括弧の中に列挙することで定義されます。事例:

    +

    関数は、オプションでパラメータを受け取ることができます。パラメータは、括弧の中に列挙することで定義されます。例:

    MyFunction(FirstParameter, Second, &Third, Fourth:="")
     {
         ;...
    @@ -351,7 +351,7 @@ 

    その他

    ダイナミックな変数

    動的変数参照は、テキスト値を受け取り、それを変数名として解釈します。

    注:動的参照によって変数を作成することはできませんが、既存の変数を割り当てることは可能です。これには、スクリプトが非動的な参照を含むすべての変数が含まれ、たとえ値が割り当てられていない場合でも、その変数が含まれます。

    -

    動的変数参照の最も一般的な形式は、二重参照またはdouble-derefと呼ばれます。二重参照を行う前に、対象となる変数名を第二の変数に格納します。そして、この第2変数を用いて、二重参照を用いて間接的に対象変数に値を代入することができる。事例:

    +

    動的変数参照の最も一般的な形式は、二重参照またはdouble-derefと呼ばれます。二重参照を行う前に、対象となる変数名を第二の変数に格納します。そして、この第2変数を用いて、二重参照を用いて間接的に対象変数に値を代入することができる。例:

    target := 42
     second := "target"
     MsgBox  second   ; 通常の(単一の)変数の参照⇒ターゲット
    @@ -359,14 +359,14 @@ 

    ダイナミックな変数

    現在、secondの場合は必ず変数名を含む必要があり、任意の式はサポートされていません。

    動的変数参照は、1つまたは複数のリテラルテキストと1つまたは複数の変数の内容を取り、それらを結合して1つの変数名を形成することもできます。これは、名前とパーセントで囲まれた変数の断片を、空白を入れずに順番に書いていくだけです。例えば、MyArray%A_Index%や、または MyGrid%X%_%Y%。後述する擬似配列にアクセスするために使用します。

    -

    これらのテクニックは、オブジェクトのプロパティやメソッドにも適用できます。事例:

    +

    これらのテクニックは、オブジェクトのプロパティやメソッドにも適用できます。例:

    clr := {}
     for n, component in ["red", "green", "blue"]
         clr.%component% := Random(0, 255)
     MsgBox clr.red "," clr.green "," clr.blue

    疑似配列

    -

    擬似配列は、実際には単なる離散変数の束ですが、配列の要素のように使用できるような命名パターンを持っています。事例:

    +

    擬似配列は、実際には単なる離散変数の束ですが、配列の要素のように使用できるような命名パターンを持っています。例:

     MyArray1 := "A"
     MyArray2 := "B"
    diff --git a/target/docs/Objects.htm b/target/docs/Objects.htm
    index 1c167719..dc6f0ce4 100644
    --- a/target/docs/Objects.htm
    +++ b/target/docs/Objects.htm
    @@ -92,7 +92,7 @@ 

    配列

    RemovedValue := MyArray.RemoveAt(Index)

    Popメソッドを使って最後の項目を削除する:

    RemovedValue := MyArray.Pop()
    -

    Lengthは、配列の項目数を返します。配列の中身をループするには、インデックスを使う方法と、Forループを使う方法がある。事例:

    +

    Lengthは、配列の項目数を返します。配列の中身をループするには、インデックスを使う方法と、Forループを使う方法がある。例:

    MyArray := ["one", "two", "three"]
     
     ; Iterate from 1 to the end of the array:
    @@ -141,20 +141,20 @@ 

    オブジェクト

    オブジェクトはインデックスをサポートすることもある:MyArray[Index]は、実際にはMyArray__Itemプロパティを呼び出し、Indexをパラメータとして渡す。

    オブジェクト・リテラル

    -

    オブジェクト・リテラルをの中で使うと、即席のオブジェクトを作ることができる。オブジェクト・リテラルは、カンマで区切られた名前と値のペアのリストを中括弧({})で囲んだものである。各ペアは、コロン(:)で区切られたリテラル(引用符で囲まれていない)プロパティ名と値(サブ式)で構成されます。事例:

    +

    オブジェクト・リテラルをの中で使うと、即席のオブジェクトを作ることができる。オブジェクト・リテラルは、カンマで区切られた名前と値のペアのリストを中括弧({})で囲んだものである。各ペアは、コロン(:)で区切られたリテラル(引用符で囲まれていない)プロパティ名と値(サブ式)で構成されます。例:

    Coord := {X: 13, Y: 240}

    これは等価だ:

    Coord := Object()
     Coord.X := 13
     Coord.Y := 240

    各名前と値のペアは、値のプロパティを定義させるが、例外としてBaseを設定することができる(通常の代入と同じ制限がある)。

    -

    名前の置換は、または変数を評価することによってプロパティ名を決定することができます。事例:

    +

    名前の置換は、または変数を評価することによってプロパティ名を決定することができます。例:

    parts := StrSplit("key = value", "=", " ")
     pair := {%parts[1]%: parts[2]}
     MsgBox pair.key

    オブジェクトの解放

    -

    スクリプトは明示的にオブジェクトを解放しない。オブジェクトへの最後の参照が解放されると、オブジェクトは自動的に解放される。変数に格納された参照は、その変数に他の値が代入されると自動的に解放される。事例:

    +

    スクリプトは明示的にオブジェクトを解放しない。オブジェクトへの最後の参照が解放されると、オブジェクトは自動的に解放される。変数に格納された参照は、その変数に他の値が代入されると自動的に解放される。例:

    obj := {}  ;  オブジェクトを生成します。
     obj := ""  ;  最後の参照を解放します。つまり、オブジェクトを破棄します。

    同様に、プロパティや配列要素に格納された参照は、そのプロパティや配列要素に他の値が割り当てられたり、オブジェクトから削除されたりすると解放される。

    @@ -174,7 +174,7 @@

    オブジェクトの解放

    延長使用

    配列の配列

    -

    「多次元」配列はサポートされていないが、スクリプトは複数の配列やマップを組み合わせることができる。事例:

    +

    「多次元」配列はサポートされていないが、スクリプトは複数の配列やマップを組み合わせることができる。例:

     grid := [[1,2,3],
              [4,5,6],
    @@ -182,7 +182,7 @@ 

    配列の配列

    MsgBox grid[1][3] ; 3 MsgBox grid[3][2] ; 8
    -

    カスタム・オブジェクトは、__Itemプロパティを定義することで、多次元サポートを実装することができます。事例:

    +

    カスタム・オブジェクトは、__Itemプロパティを定義することで、多次元サポートを実装することができます。例:

     class Array2D extends Array {
         __new(x, y) {
    @@ -433,7 +433,7 @@ 

    __Item Property

  • パラメータがある場合、object[params]object.__Item[params]と等価である。
  • object[]object.__Itemと等価である。
  • -

    事例:

    +

    例:

     obj := {}
     obj[] := Map()     ; Equivalent to obj.__Item := Map()
    @@ -444,7 +444,7 @@ 

    __Item Property

    注: obj.prop[]のように明示的なプロパティ名が空括弧と組み合わされているときは、それは2つの別々の操作として扱われます:まずobj.propを取得し、次に結果のデフォルト・プロパティを呼び出します。これは言語構文の一部であり、オブジェクトに依存するものではない。

    コンストラクタとデストラクタ

    -

    ClassName()のデフォルト実装によってオブジェクトが生成されるたびに、新しいオブジェクトの__Newメソッドが呼び出されます。ClassName()に渡されたパラメータはすべて__Newに転送されるため、オブジェクトの初期内容や構築方法に影響を与える可能性があります。オブジェクトが破棄されると、__Deleteが呼ばれる。事例:

    +

    ClassName()のデフォルト実装によってオブジェクトが生成されるたびに、新しいオブジェクトの__Newメソッドが呼び出されます。ClassName()に渡されたパラメータはすべて__Newに転送されるため、オブジェクトの初期内容や構築方法に影響を与える可能性があります。オブジェクトが破棄されると、__Deleteが呼ばれる。例:

    m1 := GMem(0, 10)
     m2 := {base: GMem.Prototype}, m2.__New(0, 30)
     
    @@ -543,13 +543,13 @@ 

    プリミティブ値

    通常、x is AnyはAutoHotkeyの型階層内のどの値に対してもtrueになりますが、COMオブジェクトに対してはfalseになることに注意してください。

    プロパティとメソッドの追加

    -

    プロパティとメソッドは、その型のプロトタイプ・オブジェクトを修正することによって、与えられた型のすべての値に対して追加することができる。しかし、プリミティブ値はObjectではなく、独自のプロパティやメソッドを持つことができないため、プリミティブプロトタイプオブジェクトはObject.Prototypeから派生しません。つまり、DefinePropHasOwnPropといったメソッドは、デフォルトではアクセスできない。間接的に呼ばれることもある。事例:

    +

    プロパティとメソッドは、その型のプロトタイプ・オブジェクトを修正することによって、与えられた型のすべての値に対して追加することができる。しかし、プリミティブ値はObjectではなく、独自のプロパティやメソッドを持つことができないため、プリミティブプロトタイプオブジェクトはObject.Prototypeから派生しません。つまり、DefinePropHasOwnPropといったメソッドは、デフォルトではアクセスできない。間接的に呼ばれることもある。例:

     DefProp := {}.DefineProp
     DefProp( "".base, "Length", { get: StrLen } )
     MsgBox A_AhkPath.length " == " StrLen(A_AhkPath)
     
    -

    プリミティブ値はそのプロトタイプから値プロパティを継承できますが、スクリプトがプリミティブ値に値プロパティを設定しようとすると例外がスローされます。事例:

    +

    プリミティブ値はそのプロトタイプから値プロパティを継承できますが、スクリプトがプリミティブ値に値プロパティを設定しようとすると例外がスローされます。例:

    "".base.test := 1  ; Don't try this at home.
     MsgBox "".test  ; 1
     "".test := 2  ; エラー:プロパティは読み取り専用です。
    diff --git a/target/docs/Program.htm b/target/docs/Program.htm index c65b61f0..d5e72a0e 100644 --- a/target/docs/Program.htm +++ b/target/docs/Program.htm @@ -124,7 +124,7 @@

    メインウィンドウ

    既知の問題:スクリプトがメッセージボックスやその他のダイアログを表示している間、メニュー項目のキーボードショートカットは機能しません。

    組み込み変数A_ScriptHwndには、スクリプトのメインウィンドウの一意なID(HWND)が格納されます。

    WinCloseでこのウィンドウを閉じると(他のスクリプトからでも)スクリプトが終了しますが、他のほとんどの方法ではウィンドウが非表示になるだけで、スクリプトは実行されたままになります。

    -

    メインウィンドウを最小化すると、自動的に非表示になります。これは、所有するウィンドウ(GUIウィンドウや特定のダイアログウィンドウなど)が自動的に最小化されるのを防ぐために行われますが、メインウィンドウのタスクバーボタンを隠す効果もあります。その代わりにメインウィンドウを普通に最小化できるようにするには、OnMessageでデフォルトの処理をオーバーライドします。事例:

    +

    メインウィンドウを最小化すると、自動的に非表示になります。これは、所有するウィンドウ(GUIウィンドウや特定のダイアログウィンドウなど)が自動的に最小化されるのを防ぐために行われますが、メインウィンドウのタスクバーボタンを隠す効果もあります。その代わりにメインウィンドウを普通に最小化できるようにするには、OnMessageでデフォルトの処理をオーバーライドします。例:

    ; メインウィンドウを最小化したときに非表示にならないようにします。
     OnMessage 0x0112, PreventAutoMinimize ; WM_SYSCOMMAND = 0x0112
     OnMessage 0x0005, PreventAutoMinimize ; WM_SIZE = 0x0005
    @@ -219,7 +219,7 @@ 

    基準

    例えば、_H, 64, !ANSIは、AutoHotkey_Hがあればそれを選び、システムと互換性があれば64ビットを選び、最後にANSIよりもUnicodeを選びます。

    Launcher Settings GUIでは、「Unicode 32-bit」などのオプションがドロップダウンリストに表示されますが、部分文字列のリストは手動で入力することができます。

    追加の(優先順位の高い)条件は、/RunWithlauncherスイッチを使ってコマンドラインで指定できる。

    -

    スクリプト内で#Requiresディレクティブを使用することで、条件を指定することができます(対象のAutoHotkeyバージョンでサポートされている場合)。事例:

    +

    スクリプト内で#Requiresディレクティブを使用することで、条件を指定することができます(対象のAutoHotkeyバージョンでサポートされている場合)。例:

    #Requires AutoHotkey v1.1.35 ; prefer 64-bit, Unicode.  More comments.

    Run *Launch

    diff --git a/target/docs/Scripts.htm b/target/docs/Scripts.htm index 07804a70..d58775bf 100644 --- a/target/docs/Scripts.htm +++ b/target/docs/Scripts.htm @@ -73,7 +73,7 @@

    長い線を短い線に分割する

    ProductIsAvailableInColor(Product, Color)

    上の例で使われているインデントは任意だが、どの行がその上の行に属するかを示すことで、より明瞭になるかもしれない。また、上記の例の行間や行末に空行やコメントを追加してもよい。

    継続演算子は、自動置換ホットストリングや#HotIf以外のディレクティブでは使用できません。

    -

    囲みによる継続:ある行に式や関数・プロパティの定義があり、その定義が閉じていない(/[/{場合、開閉記号の数が釣り合うまで後続の行と結合される。言い換えれば、括弧、ブラケット、ブレースで囲まれた部分式は、ほとんどの場合、自動的に複数行にまたがることができる。事例:

    +

    囲みによる継続:ある行に式や関数・プロパティの定義があり、その定義が閉じていない(/[/{場合、開閉記号の数が釣り合うまで後続の行と結合される。言い換えれば、括弧、ブラケット、ブレースで囲まれた部分式は、ほとんどの場合、自動的に複数行にまたがることができる。例:

     myarray := [
       "item 1",
    @@ -88,7 +88,7 @@ 

    長い線を短い線に分割する

    継続表現は両方のタイプのコメントを含むことができる。

    継続表現は通常の継続セクションを含むことができる。したがって、式を含むすべての行と同様に、エスケープされていない開括弧(()で始まる行は、同じ行に閉括弧())がない限り、継続セクションの開始とみなされる。

    引用符で囲まれた文字列は、この方法だけでは複数行にまたがることはできない。ただし、上記を参照のこと。

    -

    囲みによる継続は、継続演算子と組み合わせることができる。事例:

    +

    囲みによる継続は、継続演算子と組み合わせることができる。例:

    myarray :=  ; The assignment operator causes continuation.
     [  ; Brackets enclose the following two lines.
       "item 1",
    @@ -100,13 +100,13 @@ 

    長い線を短い線に分割する

  • オブジェクト・リテラルは法律上、)または]に続くことはできないので、中括弧がこれらの記号のどちらかに続く場合(空白を除く)、(関数やプロパティ定義のような)ブロックの開始として解釈される。
  • ボディを必要とする(したがってOTBをサポートする)制御フロー文の場合、中括弧は、:= {for x in {のような演算子が先行する場合に限り、オブジェクト・リテラルの開始とすることができる。特に、Loop {の中括弧は常にブロック開始であり、If {While {は常にエラーである。
  • -

    中括弧は、本文を必要としない関数呼び出し、式、制御フロー文であれば、行の継続のために安全に使うことができる。事例:

    +

    中括弧は、本文を必要としない関数呼び出し、式、制御フロー文であれば、行の継続のために安全に使うことができる。例:

    myfn() {
         return {
             key: "value"
         }
     }
    -

    継続セクション:この方法は、多数の行を統合する場合や、行が他の方法に適さない場合に使用する。このメソッドは自動置換ホットストリングに特に有効ですが、どんなにも使えます。事例:

    +

    継続セクション:この方法は、多数の行を統合する場合や、行が他の方法に適さない場合に使用する。このメソッドは自動置換ホットストリングに特に有効ですが、どんなにも使えます。例:

    ; EXAMPLE #1:
     Var := "
     (
    @@ -138,7 +138,7 @@ 

    長い線を短い線に分割する

    備考

    `n(改行)や `t(タブ)などのエスケープシーケンスは、アクセント(`)オプションが指定されている場合を除き、継続セクションの内部でサポートされています。

    -

    commentオプションがない場合、セミコロンと/*..*/コメントは、リテラルテキストとみなされるため、継続セクションの内部ではサポートされない。ただし、セクションの最下行と最上行にコメントを入れることができる。事例:

    +

    commentオプションがない場合、セミコロンと/*..*/コメントは、リテラルテキストとみなされるため、継続セクションの内部ではサポートされない。ただし、セクションの最下行と最上行にコメントを入れることができる。例:

    FileAppend "   ; Comment.
     ; Comment.
     ( LTrim Join    ; Comment.
    @@ -240,7 +240,7 @@ 

    コンパイラの実行

    使用する .bin ファイル。デフォルトは、GUIインターフェイスで最後に保存された.binファイル名です。 -

    事例:

    +

    例:

    Ahk2Exe.exe /in "MyScript.ahk" /icon "MyIcon.ico"
    @@ -363,7 +363,7 @@

    スクリプトにコマンドラインパラメータを渡す

    /script -

    .exeファイルに基づいてコンパイルされたスクリプトで使用する場合、このスイッチは、プログラムがメインの埋め込みスクリプトを無視するようにします。これにより、コンパイルされたスクリプト.exeは、メインスクリプト以外の外部スクリプトファイルや埋め込みスクリプトを実行できるようになる。コンパイル済みスクリプトでは通常サポートされていないその他のスイッチも使用できるが、このスイッチの右側に記載する必要がある。事例:

    +

    .exeファイルに基づいてコンパイルされたスクリプトで使用する場合、このスイッチは、プログラムがメインの埋め込みスクリプトを無視するようにします。これにより、コンパイルされたスクリプト.exeは、メインスクリプト以外の外部スクリプトファイルや埋め込みスクリプトを実行できるようになる。コンパイル済みスクリプトでは通常サポートされていないその他のスイッチも使用できるが、このスイッチの右側に記載する必要がある。例:

    CompiledScript.exe /script /ErrorStdOut MyScript.ahk "Script's arg 1"

    現在の実行ファイルにスクリプトが埋め込まれていない場合、このスイッチは許可されるが、何の効果もない。

    このスイッチは、.binファイルに基づいてコンパイルされたスクリプトではサポートされていません。

    diff --git a/target/docs/Tutorial.htm b/target/docs/Tutorial.htm index 5f3fff65..911a32e2 100644 --- a/target/docs/Tutorial.htm +++ b/target/docs/Tutorial.htm @@ -127,12 +127,12 @@

    c. ヘルプファイルの探し方

    2 - ホットキーとホットストリング

    -

    ホットキーとは何ですか?ホットキーとは、触れると熱くなるキーのこと。... 冗談だよ。これは、キーボードの人が何らかのアクションを起こすために押すキー、またはキーの組み合わせである。事例:

    +

    ホットキーとは何ですか?ホットキーとは、触れると熱くなるキーのこと。... 冗談だよ。これは、キーボードの人が何らかのアクションを起こすために押すキー、またはキーの組み合わせである。例:

    ^j::
     {
         Send "My First Script"
     }
    -

    ホットストリングとは?ホットストリングは主に、入力した略語を展開する(自動置換)ために使用されますが、スクリプト化されたアクションを起動するためにも使用できます。事例:

    +

    ホットストリングとは?ホットストリングは主に、入力した略語を展開する(自動置換)ために使用されますが、スクリプト化されたアクションを起動するためにも使用できます。例:

    ::ftw::Free the whales

    この2つの例の違いは、ホットキーはCtrl+Jを押したときに発動するのに対し、ホットストリングは入力された「ftw」を「Free the whales」に変換するという点です。

    「では、私のような素人がホットキーを作るにはどうすればいいのでしょうか?」いい質問です。ホットキーはコロンのペア一組で作成できます。キーまたはキーコンボは::左側に置く必要があります。そして、その内容は中カッコで囲んで下に書く必要があります。

    @@ -201,7 +201,7 @@

    a. キーとその不思議なシンボル

    Run "notepad.exe" }
    -

    しかし、ホットキーがそうである以上、ホットストリングにクールなモディファイアがあるのかどうか、あなたは今、疑問に思っているはずだ。そうだ!ホットストリング修飾子は、最初のコロンのペアの間に置く。事例:

    +

    しかし、ホットキーがそうである以上、ホットストリングにクールなモディファイアがあるのかどうか、あなたは今、疑問に思っているはずだ。そうだ!ホットストリング修飾子は、最初のコロンのペアの間に置く。例:

    :*:ftw::Free the whales

    その他のホットキーとホットストリングの修飾子、情報、例については、ホットキーホットストリングをご覧ください。

    @@ -216,7 +216,7 @@

    b. ウィンドウ固有のホットキー/ホットストリング { MsgBox "You pressed WIN+SPACE in Notepad." }

    -

    それ以降のホットキーまたはホットストリングのコンテキスト感度をオフにするには、パラメータなしで#HotIfを指定します。事例:

    ; Untitled - Notepad
    +

    それ以降のホットキーまたはホットストリングのコンテキスト感度をオフにするには、パラメータなしで#HotIfを指定します。例:

    ; Untitled - Notepad
     #HotIf WinActive("Untitled - Notepad")
     !q::
     {
    @@ -330,7 +330,7 @@ 

    3 - キー入力の送信

    Send "AutoHotkey" }
    -

    多くの人が持っている一般的な問題は、中カッコは単に面白半分でドキュメントのページに付けられたものだと思い込んでいることだ。しかし、実際には必要なのだ{!}が「感嘆符」を意味し、「Altを押してください」を意味しないことをAHKが知っているのはそのためだ。ですから、送信ページの表をチェックし、括弧が正しい位置にあることを確認するのを忘れないでください。事例:

    +

    多くの人が持っている一般的な問題は、中カッコは単に面白半分でドキュメントのページに付けられたものだと思い込んでいることだ。しかし、実際には必要なのだ{!}が「感嘆符」を意味し、「Altを押してください」を意味しないことをAHKが知っているのはそのためだ。ですから、送信ページの表をチェックし、括弧が正しい位置にあることを確認するのを忘れないでください。例:

    Send "This text has been typed{!}" ; Notice the ! between the curly brackets? That's because if it wasn't, AHK would press the ALT key.
     
    ; Same as above, but with the ENTER key. AHK would type out "Enter" if
    @@ -338,7 +338,7 @@ 

    3 - キー入力の送信

    Send "Multiple Enter lines have Enter been sent." ; WRONG Send "Multiple{Enter}lines have{Enter}been sent." ; CORRECT
    -

    もうひとつのよくある問題は、人々はすべてを括弧でくくる必要があると思っていることだ。それは誤りだ。チャートになければ、括弧は必要ない。一般的な文字や数字、あるいは.(ピリオド)のような記号を中カッコで囲む必要はない。また、送信機能を使えば、一度に複数の文字、数字、記号を送信することができます。だから、1文字ずつのSend関数の束は必要ない。事例:

    +

    もうひとつのよくある問題は、人々はすべてを括弧でくくる必要があると思っていることだ。それは誤りだ。チャートになければ、括弧は必要ない。一般的な文字や数字、あるいは.(ピリオド)のような記号を中カッコで囲む必要はない。また、送信機能を使えば、一度に複数の文字、数字、記号を送信することができます。だから、1文字ずつのSend関数の束は必要ない。例:

    Send "{a}"       ; WRONG
     Send "{b}"       ; WRONG
     Send "{c}"       ; WRONG
    @@ -346,7 +346,7 @@ 

    3 - キー入力の送信

    Send "{abc}" ; WRONG Send "abc" ; CORRECT
    -

    キーを押したままにしたり離したりするには、キー名を波括弧で囲み、その後に「UP」または「DOWN」を使用する。事例:

    +

    キーを押したままにしたり離したりするには、キー名を波括弧で囲み、その後に「UP」または「DOWN」を使用する。例:

    ; This is how you hold one key down and press another key (or keys).
     ; If one method doesn't work in your program, please try the other.
     Send "^s"                     ; Both of these send CTRL+S
    diff --git a/target/docs/Variables.htm b/target/docs/Variables.htm
    index 1b2a9a81..2c81f659 100644
    --- a/target/docs/Variables.htm
    +++ b/target/docs/Variables.htm
    @@ -16,57 +16,57 @@ 

    目次

    変数

    -

    変数がどのように機能するかについての一般的な説明と詳細については、変数を参照してください。

    -

    変数への値の格納文字列や数値を変数に格納するには、コロンと等号の演算子(:=)の後に数値や引用符で囲まれた文字列、その他の型の式を続けます。事例:

    +

    変数がどのように機能するかについての一般的な説明と詳細については、変数をご覧ください。

    +

    変数への値の格納:文字列や数値を変数に格納するには、コロンと等号の演算子(:=)の後に数値や引用符で囲まれた文字列、その他の型のを続けます。例:

    MyNumber := 123
     MyString := "This is a literal string."
     CopyOfVar := Var

    変数を明示的に削除することはできませんが、空文字列などの新しい値を代入することで、以前の値を解放することができます:

    MyVar := ""
    -

    変数に値を割り当てるには、その参照を取り、double-derefを使ったり、関数に渡したりして間接的に行うこともできます。事例:

    +

    変数に対してその参照を取得してdouble-derefを使用するか関数に渡すことで、間接的に値を割り当てることもできます。例:

    MouseGetPos &x, &y

    値を割り当てられていない変数の値を読み込もうとするとエラーになります。IsSetはこの状態を検出するために使われます。

    -

    変数の内容の取得変数の内容を文字列に含めるには、連結か 書式を使う。事例:

    +

    変数の内容の取得:変数の内容を文字列に含めるには、連結Format関数を使います。例:

    MsgBox "The value of Var is " . Var . "."
     MsgBox "The value in the variable named Var is " Var "."
     MsgBox Format("Var has the value {1}.", Var)
     
    -

    部分式も同じように文字列と組み合わせることができる。事例:

    +

    部分式も同じように文字列と組み合わせることができます。例:

    MsgBox("The sum of X and Y is " . (X + Y))
     

    変数の比較:さまざまな種類の比較に関する重要な注意事項については、以下の式のセクションをお読みください。

    -

    構造化された概要と詳細な説明については、エクスプレッションをご覧ください。

    +

    構造化された概要と詳細な説明については、をご覧ください。

    式は、一連の変数、リテラル文字列、リテラル数値に対して、演算を実行するために使用されます。

    -

    式中のプレーンワードは変数名として解釈されます。したがって、リテラル文字列は変数と区別するために二重引用符で囲む必要があります。事例:

    +

    式中のプレーンワードは変数名として解釈されます。したがって、リテラル文字列は変数と区別するために二重引用符で囲む必要があります。例:

    if (CurrentSetting > 100 or FoundColor != "Blue")
         MsgBox "The setting is too high or the wrong color is present."
    -

    上の例では、「Blue」はリテラル文字列なので引用符で囲まれています。しまシングルクオートマーク(')とダブルクオートマーク(")は、シングルクオートマークで囲まれた文字列がリテラルダブルクオートマークを含むことができ、その逆も可能であることを除いて、同じように機能します。従って、リテラル文字列の中に実際の引用符を含めるには、引用符をエスケープするか、文字列を反対のタイプの引用符で囲みます。事例:

    +

    上の例では、「Blue」はリテラル文字列なので引用符で囲まれています。シングルクオートマーク(')とダブルクオートマーク(")は、シングルクオートマークで囲まれた文字列がリテラルダブルクオートマークを含むことができ、その逆も可能であることを除いて、同じように機能します。従って、リテラル文字列の中に実際の引用符を含めるには、引用符をエスケープするか、文字列を反対のタイプの引用符で囲みます。例:

    MsgBox "She said, `"An apple a day.`""
     MsgBox 'She said, "An apple a day."'
    -

    空の文字列:式の中で空の文字列を指定するには、空の引用符のペアを使用します。例えば、if (MyVar != "")というステートメントは、MyVarが空白でなければ真となる。

    -

    式の結果を格納する:結果を変数に代入するには、コロンと等号の演算子(:=)を使う。事例:

    +

    空文字列:式の中で空文字列を指定するには、空の引用符のペアを使用します。例えば、if (MyVar != "")というステートメントは、MyVarが空白でなければ真となります。

    +

    式の結果の格納:結果を変数に代入するには、コロンと等号の演算子(:=)を使います。例:

    NetPrice := Price * (1 - Discount/100)
    -

    ブール値:式がtrueまたはfalseに評価される必要がある場合(IF文など)、空白またはゼロの結果はfalseとみなされ、それ以外の結果はtrueとみなされる。例えば、ItemCountが空白か0の場合のみ、if ItemCount式が偽になる。同様に、if not ItemCount式は逆の結果をもたらす。

    -

    NOT/>/=/<などの演算子は、自動的に真か偽の値を生成する:真なら1、偽なら0となる。しかし、AND/OR演算子は常に入力値のいずれかを生成する。例えば以下の式では、A_Indexが5より大きい場合は変数Doneに1が代入され、それ以外の場合はFoundItの値が代入される:

    +

    ブール値:IF文など式が真偽で評価される必要があるときは、空白またはゼロは偽とみなされ、それ以外の結果は真とみなされます。例えば、ItemCountが空白か0の場合のみif ItemCount式は偽になります。同様に、if not ItemCount式は逆に真になります。

    +

    NOT/>/=/<などの演算子は、自動的に真か偽の値を生成します:真なら1、偽なら0となります。ただし、AND/OR演算子は常に入力値のいずれかを生成します。例えば、以下の式ではA_Indexが5より大きいときは変数Doneに1が代入され、それ以外のときはFoundItの値が代入されます:

    Done := A_Index > 5 or FoundIt
    -

    上で示唆したように、変数を空白にするか0を代入するだけで、偽の値を保持することができる。これを利用するために、if Doneという省略記法を使えば、変数Doneが真か偽かをチェックすることができる。

    -

    式では、キーワードtruefalseは1と0に解決される。これらの例は、スクリプトをより読みやすくするために使われます:

    +

    上で示唆したように、変数に空白にするか0を代入するだけで、偽とすることができます。。これを利用するために、if Doneという省略記法を使えば、変数Doneが真か偽かをチェックすることができます。

    +

    式では、キーワードtruefalseは1と0に解決される。これらの例は、スクリプトをより読みやすくするために使われます。

    CaseSensitive := false
     ContinueSearch := true
    -

    整数と浮動小数点:整数と浮動小数点:式の中で、小数点または科りま数法を含む数値は浮動小数点とみなされ、そうでない場合は整数となります。加算や乗算など、ほとんどの演算子では、入力のどちらかが浮動小数点数であれば、結果も浮動小数点数になります。

    -

    式内でも非式内でも、整数は16進数か10進数のどちらかの形式で書くことができる。16進数はすべて接頭辞0xで始まる。例えば、Sleep 0xFFSleep 255に相当する。浮動小数点数は、小数点の有無にかかわらず、科学表記で書くこともできる(例:1e4-2.1E-4)。

    -

    式内では、1280x7F1.0などの引用符で囲まれていないリテラル数値は、スクリプトの実行を開始する前に純粋な数値に変換されるため、数値を文字列に変換すると元のリテラル値とは異なる値が生成される可能性があります。事例:

    +

    整数と浮動小数点:式の中で、小数点または科学的記数法を含む数値は浮動小数点とみなされ、そうでないときは整数となります。加算や乗算などのほとんどの演算子では、入力のどちらかが浮動小数点数であれば結果も浮動小数点数になります。

    +

    式の中でもそうでなくても、整数は16進数と10進数のどちらの形式でも書くことができます。16進数はすべて接頭辞0xで始まります。例えば、Sleep 0xFFSleep 255に相当します。浮動小数点数は、小数点の有無にかかわらず科学的記数法で書くことができます。(例:1e4-2.1E-4)。

    +

    式の中では1280x7F1.0などの引用符で囲まれていないリテラル数値はスクリプトの実行を開始する前に純粋な数値に変換されるため、数値を文字列に変換すると元のリテラル値とは異なる値が生成される可能性があります。例:

    MsgBox(0x7F)  ; 128と表示します。
     MsgBox(1.00)  ; 1.0と表示します。
    -

    式の演算子

    -

    演算子に関する一般的な情報については、「演算子」を参照のこと。

    +

    式の中での演算子

    +

    演算子に関する一般的な情報については、「演算子」を参照してください。

    以下に記す場合を除き、空白の値(空文字列)または数値以外の値が算術演算に含まれる場合、ゼロとはみなされません。代わりにTypeErrorがスローされます。Tryを使用しない場合、処理されなかった例外はデフォルトでエラーダイアログを表示します。

    式演算子(優先順位の降順)

    @@ -257,7 +257,7 @@

    式演算子(優先順位の降順)

    ??

    あるいは、合体演算子と呼ばれるものかもしれない。左オペランド(変数でなければならない)に値があれば、それが結果となり、右分岐はスキップされる。そうでない場合は、右オペランドが結果になる。言い換えれば、A ?? Bは、条件がIsSet(A)であることを除けば、A || B論理和)のように振る舞う。

    -

    これは通常、変数やオプショナル・パラメータにまだ値がないことが分かっている場合に、デフォルト値を提供するために使われる。事例:

    +

    これは通常、変数やオプショナル・パラメータにまだ値がないことが分かっている場合に、デフォルト値を提供するために使われる。例:

    MsgBox MyVar ?? "Default value"

    変数が初期化されていないことも想定されるので、そのような場合でもエラーは発生しない。IsSet(A) ? A : Bと異なり、変数への他の参照があるが代入がない場合、ロード時にVarUnset 警告が表示されることがあります。

    @@ -365,7 +365,7 @@

    式演算子(優先順位の降順)

    -

    組み込みの変数

    +

    組込変数

    以下の変数はプログラムに組み込まれており、どのスクリプトからも参照できる。

    一般的な情報については、組み込み変数を参照してください。

    目次

    @@ -555,7 +555,7 @@

    Date and Time

    A_TickCount -

    システムが起動してから経過したミリ秒数(最大49.7日)。A_TickCountを変数に格納することで、最新のA_TickCountの値からその変数を引くことで、後で経過時間を計測することができる。事例:

    +

    システムが起動してから経過したミリ秒数(最大49.7日)。A_TickCountを変数に格納することで、最新のA_TickCountの値からその変数を引くことで、後で経過時間を計測することができる。例:

    StartTime := A_TickCount
     Sleep 1000
     ElapsedTime := A_TickCount - StartTime
    @@ -700,7 +700,7 @@ 

    User Idle Time

    A_TimeIdle -

    システムが最後にキーボードやマウスなどの入力を受け取ってから経過したミリ秒数。これは、ユーザーが不在かどうかを判断するのに便利である。ユーザーからの物理的な入力や、何等かのプログラムやスクリプト(Send関数やMouseMove関数など)によって生成された人工的な入力は、この値をゼロに戻す。この値は10刻みで増加する傾向があるため、他の値と等しいかどうかはチェックしない。その代わりに、別の値より大きいか小さいかをチェックする。事例:

    +

    システムが最後にキーボードやマウスなどの入力を受け取ってから経過したミリ秒数。これは、ユーザーが不在かどうかを判断するのに便利である。ユーザーからの物理的な入力や、何等かのプログラムやスクリプト(Send関数やMouseMove関数など)によって生成された人工的な入力は、この値をゼロに戻す。この値は10刻みで増加する傾向があるため、他の値と等しいかどうかはチェックしない。その代わりに、別の値より大きいか小さいかをチェックする。例:

    if A_TimeIdle > 600000
         MsgBox "Last activity was 10 minutes ago"
    @@ -772,13 +772,13 @@

    オペレーティング・システムとユーザー情報

    A_ComSpec -

    Contains the same string as the ComSpec environment variable, which is usually the full path to the command prompt executable (cmd.exe). Run/RunWaitと一緒に使われることが多い。事例:

    +

    Contains the same string as the ComSpec environment variable, which is usually the full path to the command prompt executable (cmd.exe). Run/RunWaitと一緒に使われることが多い。例:

    C:\Windows\system32\cmd.exe
    A_Temp -

    一時ファイルを保存するフォルダのフルパスと名前。これは、以下のいずれかの場所から取得される(順番に):1) 環境変数TMP、TEMP、またはUSERPROFILE、2) Windowsディレクトリ。事例:

    +

    一時ファイルを保存するフォルダのフルパスと名前。これは、以下のいずれかの場所から取得される(順番に):1) 環境変数TMP、TEMP、またはUSERPROFILE、2) Windowsディレクトリ。例:

    C:\Users\<UserName>\AppData\Local\Temp
    @@ -828,77 +828,77 @@

    オペレーティング・システムとユーザー情報

    A_AppData -

    現在のユーザーのアプリケーション固有データを含むフォルダーのフルパスと名前。事例:

    +

    現在のユーザーのアプリケーション固有データを含むフォルダーのフルパスと名前。例:

    C:\Users\<UserName>\AppData\Roaming
    A_AppDataCommon -

    全ユーザーのアプリケーション固有データを含むフォルダのフルパスと名前。事例:

    +

    全ユーザーのアプリケーション固有データを含むフォルダのフルパスと名前。例:

    C:\ProgramData
    A_Desktop -

    現在のユーザーのデスクトップファイルを含むフォルダーのフルパスと名前。事例:

    +

    現在のユーザーのデスクトップファイルを含むフォルダーのフルパスと名前。例:

    C:\Users\<UserName>\Desktop
    A_DesktopCommon -

    全ユーザーのデスクトップファイルを含むフォルダーのフルパスと名前。事例:

    +

    全ユーザーのデスクトップファイルを含むフォルダーのフルパスと名前。例:

    C:\Users\Public\Desktop
    A_StartMenu -

    現在のユーザーのスタートメニューフォルダのフルパスと名前。事例:

    +

    現在のユーザーのスタートメニューフォルダのフルパスと名前。例:

    C:\Users\<UserName>\AppData\Roaming\Microsoft\Windows\Start Menu
    A_StartMenuCommon -

    全ユーザーのスタートメニューフォルダのフルパスと名前。事例:

    +

    全ユーザーのスタートメニューフォルダのフルパスと名前。例:

    C:\ProgramData\Microsoft\Windows\Start Menu
    A_Programs -

    現在のユーザーのスタートメニューにあるProgramsフォルダのフルパスと名前。事例:

    +

    現在のユーザーのスタートメニューにあるProgramsフォルダのフルパスと名前。例:

    C:\Users\<UserName>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
    A_ProgramsCommon -

    全ユーザーのスタートメニューにあるProgramsフォルダのフルパスと名前。事例:

    +

    全ユーザーのスタートメニューにあるProgramsフォルダのフルパスと名前。例:

    C:\ProgramData\Microsoft\Windows\Start Menu\Programs
    A_Startup -

    現在のユーザーのスタートメニューにあるスタートアップフォルダのフルパスと名前。事例:

    +

    現在のユーザーのスタートメニューにあるスタートアップフォルダのフルパスと名前。例:

    C:\Users\<UserName>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
    A_StartupCommon -

    全ユーザーのスタートメニューのスタートアップフォルダのフルパスと名前。事例:

    +

    全ユーザーのスタートメニューのスタートアップフォルダのフルパスと名前。例:

    C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
    A_MyDocuments -

    現在のユーザーの「My Documents」フォルダのフルパスと名前。類似の変数の多くとは異なり、フォルダがドライブのルートである場合、最後のバックスラッシュは含まれない(例えば、M:\ではなくM:が含まれる)。事例:

    +

    現在のユーザーの「My Documents」フォルダのフルパスと名前。類似の変数の多くとは異なり、フォルダがドライブのルートである場合、最後のバックスラッシュは含まれない(例えば、M:\ではなくM:が含まれる)。例:

    C:\Users\<UserName>\Documents
    diff --git a/target/docs/howto/ManageWindows.htm b/target/docs/howto/ManageWindows.htm index d19093c3..96f33f42 100644 --- a/target/docs/howto/ManageWindows.htm +++ b/target/docs/howto/ManageWindows.htm @@ -43,7 +43,7 @@

    アクティブウインドウ

    WinMinimize "A"

    ラストファウンドウィンドウ

    -

    WinWaitWinExistWinActiveWinWaitActiveWinWaitNotActiveは、一致するウィンドウを見つけると、そのウィンドウを ラストファウンドウインドウに設定します。ほとんどのウィンドウ関数では、ウィンドウのタイトル(および関連するパラメータ)を省略することができ、その場合、最後に見つかったウィンドウをデフォルトとして使用します。事例:

    +

    WinWaitWinExistWinActiveWinWaitActiveWinWaitNotActiveは、一致するウィンドウを見つけると、そのウィンドウを ラストファウンドウインドウに設定します。ほとんどのウィンドウ関数では、ウィンドウのタイトル(および関連するパラメータ)を省略することができ、その場合、最後に見つかったウィンドウをデフォルトとして使用します。例:

    Run "notepad.exe"
     WinWait "Untitled - Notepad"
     WinActivate
    @@ -61,7 +61,7 @@ 

    ウィンドウズクラス

    関連:ahk_class

    プロセス名/パス

    -

    Windowsは、「ahk_exe」という単語の後にプロセスの名前またはパスを付けることで、それを作成したプロセスによって識別することができます。事例:

    +

    Windowsは、「ahk_exe」という単語の後にプロセスの名前またはパスを付けることで、それを作成したプロセスによって識別することができます。例:

    Run "notepad.exe"
     WinWait "ahk_exe notepad.exe"
     WinActivate
    @@ -105,7 +105,7 @@ 

    タイムアウト

    }

    if文の下のブロックは、WinWaitが一致するウィンドウを見つけた場合のみ実行されます。タイムアウトした場合、そのブロックはスキップされ、閉じ波括弧の後(その後にコードがある場合)に実行が継続されます。

    なお、「WinWait」の後の括弧は、関数の結果をif文の条件など)で使用したい場合に必要です。関数の呼び出しそのものが、関数の結果の代用品と考えることができます。例えば、WinWaitがタイムアウト前にマッチを見つけた場合、結果は非ゼロとなる。if 1はif文の下のブロックを実行し、if 0はそれをスキップします。

    -

    別の書き方としては、待ち時間がタイムアウトしたら早めにリターンします(言い換えれば、アボートします)。事例:

    +

    別の書き方としては、待ち時間がタイムアウトしたら早めにリターンします(言い換えれば、アボートします)。例:

    Run "notepad.exe",,, &notepad_pid
     if !WinWait("ahk_pid " notepad_pid,, 5)
         return
    diff --git a/target/docs/howto/RunExamples.htm b/target/docs/howto/RunExamples.htm
    index f889249b..6a4d0dbe 100644
    --- a/target/docs/howto/RunExamples.htm
    +++ b/target/docs/howto/RunExamples.htm
    @@ -24,7 +24,7 @@ 

    サンプルコードの実行方法

    ホットキーの割り当て

    最初にホットキーに割り当てておくと、コードのテストが楽になることがあります。例えば、アクティブウィンドウを最大化するためのコードを考えてみましょう:

    WinMaximize "A"
    -

    これをファイルに保存して、そのファイルをダブルクリックで実行すると、そのファイルを含むファイルエクスプローラーのウィンドウが最大化されるようです。その代わり、ホットキーに割り当てて、好きなウィンドウで効果を試すことができます。事例:

    +

    これをファイルに保存して、そのファイルをダブルクリックで実行すると、そのファイルを含むファイルエクスプローラーのウィンドウが最大化されるようです。その代わり、ホットキーに割り当てて、好きなウィンドウで効果を試すことができます。例:

    ^1::WinMaximize "A"

    これで、対象ウインドウをアクティブにして、Ctrl+1を押して最大化することができます。

    ホットキーについて詳しくは、「ホットキーの書き方」を参照してください。

    diff --git a/target/docs/howto/RunPrograms.htm b/target/docs/howto/RunPrograms.htm index 810efec5..f0427646 100644 --- a/target/docs/howto/RunPrograms.htm +++ b/target/docs/howto/RunPrograms.htm @@ -17,7 +17,7 @@

    プログラムの実行方法

    この例では、メモ帳を起動します。試す方法は、「サンプルコードを実行する方法」を参照してください。

    この段階では、ホットキー(言い換えれば、キーボードショートカットの割り当て)を定義していないので、すぐに指示が実行されます。この場合、スクリプトは他にすることがないので、自動的に終了します。学習しながら便利なホットキーを作りたい方は、まず「ホットキーの書き方」をご覧ください。

    注:「実行」は、ドキュメント、フォルダ、URLを開くためにも使用できます。

    -

    他のプログラムを起動する場合は、上記の例のパスを起動したいプログラムのパスに置き換えるだけです。プログラムによってはパスがシステムに登録されているものもあり、その場合は拡張子「.exe」の有無にかかわらず、プログラムのファイル名だけを渡すことで対応できます(場合によっては拡張子「.exe」のないものもあります)。事例:

    +

    他のプログラムを起動する場合は、上記の例のパスを起動したいプログラムのパスに置き換えるだけです。プログラムによってはパスがシステムに登録されているものもあり、その場合は拡張子「.exe」の有無にかかわらず、プログラムのファイル名だけを渡すことで対応できます(場合によっては拡張子「.exe」のないものもあります)。例:

    Run "notepad"

    コマンドラインパラメーター

    @@ -63,9 +63,9 @@

    変数を含む

    コマンドラインには、しばしばいくつかの変数を含める必要があります。例えば、「Program Files」ディレクトリの場所はシステムによって異なることがあり、スクリプトはA_ProgramFiles変数を使用することでこれを考慮することができます。変数にコマンドライン全体が含まれている場合は、その変数をRun関数に渡すだけで実行できます。

    Run A_ComSpec  ; コマンドプロンプト(ほとんどの場合cmd.exe)を起動します。
     Run A_MyDocuments  ; ユーザーのDocumentsフォルダを開く。
    -

    引用符で囲まれた文字列のに変数を入れてもうまくいかないので、代わりに連結を使ってリテラル文字列と変数を連結します。事例:

    +

    引用符で囲まれた文字列のに変数を入れてもうまくいかないので、代わりに連結を使ってリテラル文字列と変数を連結します。例:

    Run 'notepad.exe "' A_MyDocuments '\AutoHotkey.ahk"'
    -

    Format関数で置換することもできます。事例:

    +

    Format関数で置換することもできます。例:

    Run Format('notepad.exe "{1}\AutoHotkey.ahk"', A_MyDocuments)

    注:Formatは、0やスペースによるパディングや、数値を10進数ではなく16進数でフォーマットするなど、追加のフォーマットを同時に実行することができます。

    @@ -74,7 +74,7 @@

    実行時パラメータ

    WorkingDirは、新しいプロセスの作業ディレクトリを指定します。プログラムに相対パスを指定した場合は、このディレクトリからの相対パスとなります。コマンドラインパラメータの相対パスもこのディレクトリからの相対パスであることが多いが、それはプログラムによって異なる。

    Run "cmd", "C:\"  ; コマンドプロンプトをC:\ に開きます。

    オプションは、プログラムを画面にポップアップさせるのではなく、最小化または非表示にして実行するために使用できることが多いですが、プログラムによっては無視されることもあります。

    -

    OutputVarPIDはプロセスIDを与えるもので、WinWaitWinWaitActiveahk_pidとともに、プログラムが画面にウィンドウを表示するまで待つ、あるいはそのウィンドウの一つを特定するためによく使われます。事例:

    +

    OutputVarPIDはプロセスIDを与えるもので、WinWaitWinWaitActiveahk_pidとともに、プログラムが画面にウィンドウを表示するまで待つ、あるいはそのウィンドウの一つを特定するためによく使われます。例:

    Run "mspaint",,, &pid
     WinWaitActive "ahk_pid " pid
     Send "^e"  ; Ctrl+Eはイメージのプロパティダイアログを開きます。
    diff --git a/target/docs/howto/SendKeys.htm b/target/docs/howto/SendKeys.htm index 68d56834..e1d63509 100644 --- a/target/docs/howto/SendKeys.htm +++ b/target/docs/howto/SendKeys.htm @@ -31,9 +31,9 @@

    コードの書き方

    技術的には、SendTextは実際にはキーストロークではなく、Unicodeの文字パケットを送信するため、Shift+2 or AltGr+aのようなキーコンビネーションで通常入力される文字に対してより信頼性が高くなります。

    引用符で囲まれた文字列のルール

    -

    SendTextは、テキストをそのまま送信しますが、言語のルールに注意してください。例えば、リテラルテキストは引用符(ダブル"またはシングル'」)で囲む必要があり、引用符そのものはSendText関数には「見えない」のです。文字通りの引用符を送るには、逆のタイプの引用符で囲むとよいでしょう。事例:

    +

    SendTextは、テキストをそのまま送信しますが、言語のルールに注意してください。例えば、リテラルテキストは引用符(ダブル"またはシングル'」)で囲む必要があり、引用符そのものはSendText関数には「見えない」のです。文字通りの引用符を送るには、逆のタイプの引用符で囲むとよいでしょう。例:

    ^2::SendText 'Quote marks are also known as "quotes".'
    -

    または、エスケープシーケンスを使用します。引用符で囲まれた文字列の中では、`"はリテラル"に、`'はリテラル'に変換されます。事例:

    +

    または、エスケープシーケンスを使用します。引用符で囲まれた文字列の中では、`"はリテラル"に、`'はリテラル'に変換されます。例:

    ^3::{
         SendText "Double quote (`")"
         SendText 'Single quote (`')'
    @@ -46,7 +46,7 @@ 

    引用符で囲まれた文字列のルールキーとキーの組み合わせの送信

    SendTextはテキストをそのまま送信するのに適していますが、LeftHomeのようなテキストを生成しないキーは送信できません。SendSendInputSendPlaySendEventControlSendは、テキストとキーの組み合わせ、またはテキストを生成しないキーの両方を送信できます。そのために、次のようなシンボルに特別な意味を持たせている:^!+#{}

    最初の4つの記号は、標準的な修飾キーであるCtrl(^)、Alt(!)、Shift(+)、Win(#)に対応しています。これらは組み合わせて使うことができますが、それ以外は次のキーにしか影響しません。

    -

    キーを名前で送る場合、または上記の記号のいずれかを文字どおり送る場合は、中括弧で囲んでください。事例:

    +

    キーを名前で送る場合、または上記の記号のいずれかを文字どおり送る場合は、中括弧で囲んでください。例:

    • ^+{Left}Ctrl+Shift+Leftです
    • ^{+}{Left}Ctrl++の後にLeftが続きます
    • @@ -122,7 +122,7 @@

      テキストを大量に送信する

      「Join」オプションを使用しない限り。 )"

    一般的にかなり高速ですが、SendTextはまだ各文字を一度に送信する必要があり、Sendは一般的に少なくとも2倍のメッセージ(キーダウン・キーアップ)を送信する必要があります。そのため、大量のテキストを送信する際には、顕著な遅延が発生します。また、遅延が長くなると、ユーザーの入力と衝突したり、キーボードのフォーカスがずれたり、その他の条件が変化するリスクが高くなるため、信頼性が低くなる可能性があります。

    -

    一般的には、クリップボードにテキストを置き、それを貼り付ける方が、より速く、より確実です。事例:

    +

    一般的には、クリップボードにテキストを置き、それを貼り付ける方が、より速く、より確実です。例:

    ^1::{
         old_clip := ClipboardAll()  ; クリップボードの内容をすべて保存する
         A_Clipboard := "
    diff --git a/target/docs/howto/WriteHotkeys.htm b/target/docs/howto/WriteHotkeys.htm
    index 16837300..04529d0f 100644
    --- a/target/docs/howto/WriteHotkeys.htm
    +++ b/target/docs/howto/WriteHotkeys.htm
    @@ -37,7 +37,7 @@ 

    基本的なホットキー

  • nキーリストの任意の名前に置き換えてください。
  • 注:::の前の最後の文字は、修飾記号として解釈されることはありません。

    -

    この形式のホットキーでは、組み合わせの最後のキーだけを1文字で書いたり、その名前をフルスペルで書いたりすることができます。事例:

    +

    この形式のホットキーでは、組み合わせの最後のキーだけを1文字で書いたり、その名前をフルスペルで書いたりすることができます。例:

    • #::は、ハッシュキー又はその記号に関連する組み合わせで起動するホットキーを作成することができます。(USレイアウトでは Shift+3)。
    • ##::は、上記のようなホットキーを作成しますが、Windowsキーも保持している場合にのみ有効です。
    • @@ -61,7 +61,7 @@

      文脈依存のホットキー

    • ホットキーを押したときにCapsLockがオンになっている場合。
    • その他、コードで検出できる状態であれば何でもOKです。
    -

    事例:

    +

    例:

    #HotIf WinActive("ahk_class Notepad")
     ^a::MsgBox "You pressed Ctrl-A while Notepad is active. Pressing Ctrl-A in any other window will pass the Ctrl-A keystroke to that window."
     #c::MsgBox "You pressed Win-C while Notepad is active."
    diff --git a/target/docs/lib/Array.htm b/target/docs/lib/Array.htm
    index 8f2a912a..99b9d565 100644
    --- a/target/docs/lib/Array.htm
    +++ b/target/docs/lib/Array.htm
    @@ -16,12 +16,12 @@ 

    Arrayオブジェクト

    配列オブジェクトは、値のリストまたはシーケンスを含んでいます。

    値は、配列内の位置(配列インデックス)で指定され、位置1が最初の要素になります。

    -

    配列は、値のリストを括弧で囲むことで作成されることが多い。事例:

    +

    配列は、値のリストを括弧で囲むことで作成されることが多い。例:

    veg := ["Asparagus", "Broccoli", "Cucumber"]
     Loop veg.Length
         MsgBox veg[A_Index]

    負のインデックスは、要素を逆にアドレスするために使用することができ、-1は最後の要素、-2は2番目の最後の要素、といった具合です。

    -

    範囲外の配列インデックス(ゼロや絶対値が配列の長さより大きい場合など)を使用しようとすると、エラーとみなされ、IndexErrorがスローされます。配列に新しい要素を追加するには、InsertAtまたはPushを呼び出すのが最適です。事例:

    +

    範囲外の配列インデックス(ゼロや絶対値が配列の長さより大きい場合など)を使用しようとすると、エラーとみなされ、IndexErrorがスローされます。配列に新しい要素を追加するには、InsertAtまたはPushを呼び出すのが最適です。例:

    users := Array()
     users.Push A_UserName
     MsgBox users[1]
    @@ -134,7 +134,7 @@

    パラメータ

    備考

    InsertAtは、RemoveAtと対になるものです。

    -

    これまでIndexの右側にあったアイテムは、右側に移動します。欠落したパラメータも挿入されるが、値はない。事例:

    +

    これまでIndexの右側にあったアイテムは、右側に移動します。欠落したパラメータも挿入されるが、値はない。例:

    x := []
     x.InsertAt(1, "A", "B") ; =>  ["A", "B"]
     x.InsertAt(2, "C")      ; =>  ["A", "C", "B"]
    @@ -195,7 +195,7 @@ 

    戻り値

    備考

    RemoveAtはInsertAtの対になるものです。

    IndexLengthで示される範囲が、配列の現在の範囲に完全に収まっていない場合、ValueErrorがスローされます。

    -

    Posの右にある残りの項目は、Length(省略時は1)だけ左にシフトされます。事例:

    +

    Posの右にある残りの項目は、Length(省略時は1)だけ左にシフトされます。例:

    x := ["A", "B"]
     MsgBox x.RemoveAt(1)  ; A
     MsgBox x[1]           ; B
    diff --git a/target/docs/lib/Block.htm b/target/docs/lib/Block.htm
    index 933a02d9..f6f231d5 100644
    --- a/target/docs/lib/Block.htm
    +++ b/target/docs/lib/Block.htm
    @@ -29,7 +29,7 @@ 

    備考

    ブロックはどこでも使えますが、現状では関数定義IfElseLoop文TryCatchFinallyで使う場合にのみ意味を持ちます。

    上記の制御フロー文のうち、文が1つしかない場合、その文はブロックで囲む必要はありません(関数定義には使えません)。しかし、そうすることでスクリプトの読みやすさや保守性が向上する場合もあります。

    ブロックは、空(0個のステートメントを含む)であってもよい。これは、ブロック自体を削除せずにブロックの内容をコメントアウトしたい場合に便利です。

    -

    One True Brace(OTB、K&Rスタイル):OTBスタイルは、以下の場所でオプションとして使用することができます:関数定義IfElseLoopWhileForTryCatchFinally。このスタイルでは、ブロックの開始ブレースをブロックの制御文と同じ行に配置し、ブロックの下に単独で配置することはありません。事例:

    +

    One True Brace(OTB、K&Rスタイル):OTBスタイルは、以下の場所でオプションとして使用することができます:関数定義IfElseLoopWhileForTryCatchFinally。このスタイルでは、ブロックの開始ブレースをブロックの制御文と同じ行に配置し、ブロックの下に単独で配置することはありません。例:

    MyFunction(x, y) {
         ...
     }
    @@ -54,7 +54,7 @@ 

    備考

    } Finally { .... }
    -

    同様に、ブレース(One True Braceスタイルのオープンブレースを除く)の右側にも文が存在する場合があります。事例:

    +

    同様に、ブレース(One True Braceスタイルのオープンブレースを除く)の右側にも文が存在する場合があります。例:

    if (x = 1)
     { MsgBox "This line appears to the right of an opening brace. It executes whenever the IF-statement is true."
         MsgBox "This is the next line."
    diff --git a/target/docs/lib/CallbackCreate.htm b/target/docs/lib/CallbackCreate.htm
    index b3d873d5..d3a8c62b 100644
    --- a/target/docs/lib/CallbackCreate.htm
    +++ b/target/docs/lib/CallbackCreate.htm
    @@ -84,7 +84,7 @@ 

    The Function's Parameters

    MyString := StrGet(MyParameter)

    入力されたパラメータが構造体のアドレスである場合、DllCall構造体の手順に従って、個々のメンバーを抽出することができます。

    -

    Receiving parameters by address: If the & option is used, Function receives the address of the first callback parameter. 事例:

    +

    Receiving parameters by address: If the & option is used, Function receives the address of the first callback parameter. 例:

     callback := CallbackCreate(TheFunc, "F&", 3)  ; パラメータリストのサイズは32ビットで指定する必要があります。
     DllCall(callback, "float", 10.5, "int64", 42)
    diff --git a/target/docs/lib/Catch.htm b/target/docs/lib/Catch.htm
    index 9fe24ee7..104cf3a7 100644
    --- a/target/docs/lib/Catch.htm
    +++ b/target/docs/lib/Catch.htm
    @@ -50,7 +50,7 @@ 

    備考

    Catchの使用はすべて、その上のTry文に属する(関連付けられる)必要があります。Catchは、ブロックを使ってその動作を変更しない限り、常にその上にある最も近い未取得のTry文に属す。

    パラメータリストは、オプションで括弧で囲むことができ、その場合、catchの後のスペースまたはタブはオプションです。

    Catchの後には、オプションでElseを付けることができます。Elseは、関連するTryブロック内で例外がスローされなかった場合に実行されます。

    -

    OTB(One True Brace)スタイルはオプションで使用することができます。事例:

    +

    OTB(One True Brace)スタイルはオプションで使用することができます。例:

    try {
         ...
     } catch Error {
    diff --git a/target/docs/lib/Click.htm b/target/docs/lib/Click.htm
    index b4e9a7dc..ab82183c 100644
    --- a/target/docs/lib/Click.htm
    +++ b/target/docs/lib/Click.htm
    @@ -34,7 +34,7 @@ 

    パラメータ

    備考

    Click関数は、SendModeで設定された送信方式を使用します。特定のクリックに対してこのモードを上書きするには、この例のように{Click}と組み合わせて特定のSend関数を使用します:SendEvent "{Click 100 200}"

    -

    Shift-ClickやControl-Clickを行うには、一般的にSend経由のクリックが最も簡単です。事例:

    +

    Shift-ClickやControl-Clickを行うには、一般的にSend経由のクリックが最も簡単です。例:

    Send "+{Click 100 200}"  ; Shift+LeftClick
     Send "^{Click 100 200 Right}"  ; Control+RightClick

    Send関数と違って、Click関数は修飾キー(Ctrl、Alt、Shift、Win)を自動的に解除することはありません。例えば、現在Ctrlが押されている場合、Clickはコントロールクリックになりますが、Send "{Click}"は通常のクリックになります。

    diff --git a/target/docs/lib/ComValue.htm b/target/docs/lib/ComValue.htm index 6d8b9968..353b7a57 100644 --- a/target/docs/lib/ComValue.htm +++ b/target/docs/lib/ComValue.htm @@ -67,7 +67,7 @@

    ByRef

    sc.Run("Example", vref) ; scは、以下の例のように初期化する必要があります。 MsgBox vref[]

    なお、vref[]やCOMメソッドで新しい値を代入すると、以前の値はすべて解放されますが、最終的な値は自動的に解放されるわけではありません。値を解放するには、その値がどのタイプであるかを知る必要があります。この場合VT_VARIANTなので、DllCallVariantClearを呼び出すか、もっと簡単な方法で解放することができます:vref[] := 0のように整数を代入します。

    -

    上記のようにメソッドがVT_BYREFとVT_VARIANTの組み合わせを受け付ける場合、VarRefを代わりに使用することができます。事例:

    +

    上記のようにメソッドがVT_BYREFとVT_VARIANTの組み合わせを受け付ける場合、VarRefを代わりに使用することができます。例:

    some_var := "in value"
     sc.Run("Example", &some_var)
     MsgBox some_var
    diff --git a/target/docs/lib/ControlFocus.htm b/target/docs/lib/ControlFocus.htm index 944b6ed4..83d3a7d5 100644 --- a/target/docs/lib/ControlFocus.htm +++ b/target/docs/lib/ControlFocus.htm @@ -45,7 +45,7 @@

    備考

  • ユーザー入力によってデフォルトボタンが一時的に変更された場合、ボタン以外のコントロールをフォーカスしても、デフォルトハイライトが実際のデフォルトボタンに自動的に復元されることはありません。Enterキーを押すと、ハイライトされていなくてもデフォルトのボタンが有効になることがあります。
  • エディットコントロールをフォーカスしても、自動的にそのテキストが選択されるわけではありません。代わりに、挿入点(キャレット)は、通常、コントロールが最後にフォーカスを持ったときの位置に配置されます。
  • -

    WM_NEXTDLGCTLメッセージは、コントロールをフォーカスし、これらの追加効果を適用するために使用することができます。事例:

    +

    WM_NEXTDLGCTLメッセージは、コントロールをフォーカスし、これらの追加効果を適用するために使用することができます。例:

    WinExist("A") ; Last Found Windowをアクティブウィンドウに設定します。
     hWndControl := ControlGetHwnd("Button1")  ; Get HWND of first Button
     SendMessage 0x0028, hWndControl, True  ; 0x0028 is WM_NEXTDLGCTL
    diff --git a/target/docs/lib/DllCall.htm b/target/docs/lib/DllCall.htm index ff149df4..7e6c1008 100644 --- a/target/docs/lib/DllCall.htm +++ b/target/docs/lib/DllCall.htm @@ -164,12 +164,12 @@

    ネイティブの例外とA_LastError

    組込変数A_LastErrorには、オペレーティングシステムのGetLastError()関数の結果が格納されます。

    パフォーマンス

    -

    DLLを繰り返し呼び出す場合、明示的にロードすることでパフォーマンスを飛躍的に向上させることができます(User32などの標準的なDLLは常に常駐しているため必要ありません)。この方法によって、DllCallが内部でLoadLibraryとFreeLibraryを毎回呼び出す必要を回避することができます。事例:

    +

    DLLを繰り返し呼び出す場合、明示的にロードすることでパフォーマンスを飛躍的に向上させることができます(User32などの標準的なDLLは常に常駐しているため必要ありません)。この方法によって、DllCallが内部でLoadLibraryとFreeLibraryを毎回呼び出す必要を回避することができます。例:

    hModule := DllCall("LoadLibrary", "Str", "MyFunctions.dll", "Ptr")  ; ループ内でDllCallしてライブラリを読み込む必要を回避。
     Loop Files, "C:\My Documents\*.*", "R"
         result := DllCall("MyFunctions\BackupFile", "Str", A_LoopFilePath)
     DllCall("FreeLibrary", "Ptr", hModule)  ; メモリ節約のため、使用後はDLLをアンロードすることがあります。
    -

    ; 関数のアドレスをあらかじめ調べておくことで、さらに高速なパフォーマンスを実現することができます。事例:

    +

    ; 関数のアドレスをあらかじめ調べておくことで、さらに高速なパフォーマンスを実現することができます。例:

    ; 次の例では、DLLがまだロードされていない場合、GetModuleHandleの代わりにLoadLibraryを使用してください。
     MulDivProc := DllCall("GetProcAddress", "Ptr", DllCall("GetModuleHandle", "Str", "kernel32", "Ptr"), "AStr", "MulDiv", "Ptr")
     Loop 500
    diff --git a/target/docs/lib/Download.htm b/target/docs/lib/Download.htm
    index 1d07639b..934e4a2b 100644
    --- a/target/docs/lib/Download.htm
    +++ b/target/docs/lib/Download.htm
    @@ -42,7 +42,7 @@ 

    備考

    ファイアウォールや複数のネットワークアダプターが存在する場合、この機能に失敗することがあります。また、ウェブサイトによっては、そのようなダウンロードをブロックしている場合があります。

    キャッシング:デフォルトでは、URLはリモートサーバーから直接取得されます(つまり、Internet Explorerのキャッシュから取得することはありません)。キャッシュを許可する場合は、URLの前に*0とスペースを入れてください:"*0 https://someorg.org"。アスタリスクに続くゼロは、有効なdwFlags番号で置き換えることができます。詳細は、www.microsoft.com「InternetOpenUrl」を検索してください。

    プロキシ:Microsoft Internet Explorerの設定でプロキシサーバーが設定されている場合は、そのサーバーを使用します。

    -

    FTPやGopherのURLもサポートされています。事例:

    +

    FTPやGopherのURLもサポートされています。例:

    Download "ftp://example.com/home/My File.zip", "C:\My Folder\My File.zip" ; 匿名でログインします。
     Download "ftp://user:pass@example.com:21/home/My File.zip", "C:\My Folder\My File.zip" ; 特定のユーザーでログインしてください。
     Download "ftp://user:pass@example.com/My Directory", "C:\Dir Listing.html" ; HTML形式のディレクトリ一覧を取得します。
    diff --git a/target/docs/lib/Else.htm b/target/docs/lib/Else.htm index 696e2c68..07130495 100644 --- a/target/docs/lib/Else.htm +++ b/target/docs/lib/Else.htm @@ -27,7 +27,7 @@

    備考

  • Try...Catch: No exception was thrown within the Try block.
  • Elseの後には、同じ行にある他の単一のステートメントをすぐに続けることができます。これは、「else if」ラダーに最もよく使われます(下部の例を参照)。

    -

    Elseが複数の行を所有する場合、それらの行を中括弧で囲む(ブロックを作る)必要があります。ただし、1行だけがElseに属する場合は、中括弧は省略可能です。事例:

    +

    Elseが複数の行を所有する場合、それらの行を中括弧で囲む(ブロックを作る)必要があります。ただし、1行だけがElseに属する場合は、中括弧は省略可能です。例:

    if (count > 0)  ; 次の行は1行なので、中括弧は不要です。
         MsgBox "Press OK to begin the process."
     else  ; 以下の部分は1行以上からなるため、中括弧を使用する必要があります。
    @@ -35,7 +35,7 @@ 

    備考

    WinClose "Untitled - Notepad" MsgBox "There are no items present." }
    -

    OTB(One True Brace)スタイルは、オプションでエルゼの周りに使用することができます。事例:

    +

    OTB(One True Brace)スタイルは、オプションでエルゼの周りに使用することができます。例:

    if IsDone {
         ; ...
     } else if (x < y) {
    diff --git a/target/docs/lib/Error.htm b/target/docs/lib/Error.htm
    index f0c09c42..1090a584 100644
    --- a/target/docs/lib/Error.htm
    +++ b/target/docs/lib/Error.htm
    @@ -54,7 +54,7 @@ 

    Error()

  • NewError.LineNewError.Fileは、関数を呼び出した行を示します。
  • NewError.Stackには、指示されたスタックフレームを先頭とする部分的なスタックトレースが含まれます。
  • -

    Whatパラメータを使用すると、複雑な関数がヘルパー関数を使用して作業やパラメータの検証を行い、報告されるエラー情報からはそれらの内部詳細を省くことができます。事例:

    +

    Whatパラメータを使用すると、複雑な関数がヘルパー関数を使用して作業やパラメータの検証を行い、報告されるエラー情報からはそれらの内部詳細を省くことができます。例:

    MyFunction(a, b) {
         CheckArg "a", a
         CheckArg "b", b
    diff --git a/target/docs/lib/FileAppend.htm b/target/docs/lib/FileAppend.htm
    index 71c911a1..80aa3141 100644
    --- a/target/docs/lib/FileAppend.htm
    +++ b/target/docs/lib/FileAppend.htm
    @@ -31,7 +31,7 @@ 

    パラメータ

    If omitted, the output file of the innermost enclosing file-reading loop will be used (if available). Otherwise, specify the name of the file to be appended, which is assumed to be in A_WorkingDir if an absolute path isn't specified. 保存先ディレクトリはすでに存在している必要があります。

    標準出力(stdout):Filenameにアスタリスク(*)を指定すると、Textは標準出力(stdout)に送られます。このようなテキストは、ファイルにリダイレクトしたり、別のEXEにパイプしたり、おしゃれなテキストエディターでキャプチャしたりすることができます。例えば、以下のようにコマンドプロンプトで入力した場合は有効です:

    "%ProgramFiles%\AutoHotkey\AutoHotkey.exe" "My Script.ahk" >"Error Log.txt"
    -

    ただし、stdoutに送られたテキストは、起動したコマンドプロンプトには表示されません。これは、1)Ahk2Exe ConsoleAppディレクティブでスクリプトをコンパイルする、または2)スクリプトの出力を他のコマンドやプログラムにパイプすることで回避することができます。事例:

    +

    ただし、stdoutに送られたテキストは、起動したコマンドプロンプトには表示されません。これは、1)Ahk2Exe ConsoleAppディレクティブでスクリプトをコンパイルする、または2)スクリプトの出力を他のコマンドやプログラムにパイプすることで回避することができます。例:

    "%ProgramFiles%\AutoHotkey\AutoHotkey.exe" "My Script.ahk" |more
    For /F "tokens=*" %L in ('""%ProgramFiles%\AutoHotkey\AutoHotkey.exe" "My Script .ahk""') do @Echo %L

    Filenameにアスタリスク(**)を2つ指定すると、Textは標準エラーストリーム(stderr)に送信されます。

    diff --git a/target/docs/lib/FileInstall.htm b/target/docs/lib/FileInstall.htm index 4b86c343..bd40c430 100644 --- a/target/docs/lib/FileInstall.htm +++ b/target/docs/lib/FileInstall.htm @@ -45,7 +45,7 @@

    パラメータ

    エラー処理

    失敗した場合は例外がスローされます。

    -

    宛先にファイルを書き込めない場合は、すべて失敗とみなします。事例:

    +

    宛先にファイルを書き込めない場合は、すべて失敗とみなします。例:

    • 保存先ファイルがすでに存在し、Overwriteパラメータが0または省略されています。
    • パーミッションエラー、またはファイルが使用中であるため、保存先ファイルを開くことができませんでした。
    • diff --git a/target/docs/lib/FileRead.htm b/target/docs/lib/FileRead.htm index 187ce8e8..e33c4402 100644 --- a/target/docs/lib/FileRead.htm +++ b/target/docs/lib/FileRead.htm @@ -47,7 +47,7 @@

      エラー処理

      A_LastErrorには、オペレーティングシステムのGetLastError()関数の結果が設定されます。

      バイナリデータの読み取り

      -

      RAWオプションを使用した場合、戻り値は、ファイルの未修正の内容を含むBufferオブジェクトとなる。オブジェクトのSizeプロパティは、読み込んだバイト数を返します。NumGetまたはStrGetを使用して、バッファからデータを取得することができます。事例:

      +

      RAWオプションを使用した場合、戻り値は、ファイルの未修正の内容を含むBufferオブジェクトとなる。オブジェクトのSizeプロパティは、読み込んだバイト数を返します。NumGetまたはStrGetを使用して、バッファからデータを取得することができます。例:

      buf := FileRead(A_AhkPath, "RAW")
       if StrGet(buf, 2, "cp0") == "MZ"  ; 実行ファイルのように見えるが...
       {
      diff --git a/target/docs/lib/Finally.htm b/target/docs/lib/Finally.htm
      index 3447b07d..a4e1ff58 100644
      --- a/target/docs/lib/Finally.htm
      +++ b/target/docs/lib/Finally.htm
      @@ -24,7 +24,7 @@ 

      備考

      Try文は、CatchFinallyがあるかどうかで動作が異なります。詳しくは、Tryをご覧ください。

      Tryブロック中の制御フローステートメントを抑制するため、GotoBreakContinueまたはReturnでは、Finallyブロックを抜け出すことはできません。例えば、tryreturn 42を使用したときは、finallyブロックが実行された後に値42が返されます。これらの文を使ってFinallyブロックから抜け出そうとときは、可能であればロード時に、そうでなければランタイム時にエラーとして検出されます。

      トレイメニューやExitAppなど、何らかの手段でスクリプトを直接終了させた場合は、Finally文は実行されません。

      -

      OTB(One True Brace)スタイルは、オプションでfinally文を使用することができる。事例:

      +

      OTB(One True Brace)スタイルは、オプションでfinally文を使用することができる。例:

      try {
           ...
       } finally {
      diff --git a/target/docs/lib/Func.htm b/target/docs/lib/Func.htm
      index f62de8e2..e2510029 100644
      --- a/target/docs/lib/Func.htm
      +++ b/target/docs/lib/Func.htm
      @@ -17,7 +17,7 @@ 

      Funcオブジェクト

      関数のように呼び出すことができる他のオブジェクトについては、関数オブジェクトをご覧ください。

      ClosureクラスはFuncを拡張していますが、新しいプロパティは定義していません。

      -

      スクリプト内の各組込み関数または関数定義に対して、Funcオブジェクトを含む対応する読み取り専用変数が存在します。この変数は、関数を呼び出すために直接使われますが、その値を読み込むことで、関数そのものを、値として取り出すこともできます。事例:

      +

      スクリプト内の各組込み関数または関数定義に対して、Funcオブジェクトを含む対応する読み取り専用変数が存在します。この変数は、関数を呼び出すために直接使われますが、その値を読み込むことで、関数そのものを、値として取り出すこともできます。例:

      InspectFn StrLen
       InspectFn InspectFn
       
      diff --git a/target/docs/lib/Goto.htm b/target/docs/lib/Goto.htm
      index 0ca5ada2..adc1e86a 100644
      --- a/target/docs/lib/Goto.htm
      +++ b/target/docs/lib/Goto.htm
      @@ -29,7 +29,7 @@ 

      パラメータ

      備考

      ラベルは、括弧を使用する場合のみ、変数または式にすることができます。例えば、Goto MyLabelGoto("MyLabel")は、どちらもMyLabel:にジャンプします。

      -

      動的ラベル(ラベル名を返す変数や式)を使用する場合、スクリプトを最初に読み込んだときに一度だけではなく、毎回ターゲットラベルを「検索」する必要があるため、パフォーマンスがわずかに低下します。ラベルが存在しない場合は、エラーダイアログが表示されます。これを避けるには、あらかじめIsLabel()を呼び出しておきます。事例:

      +

      動的ラベル(ラベル名を返す変数や式)を使用する場合、スクリプトを最初に読み込んだときに一度だけではなく、毎回ターゲットラベルを「検索」する必要があるため、パフォーマンスがわずかに低下します。ラベルが存在しない場合は、エラーダイアログが表示されます。これを避けるには、あらかじめIsLabel()を呼び出しておきます。例:

      if IsLabel(VarContainingLabelName)
           Goto(VarContainingLabelName)

      Gotoの使用は、一般にスクリプトの可読性を低下させ、保守を困難にするため、推奨されません。Gotoの代用としてElseBlocksBreakContinueの使用を検討します。

      diff --git a/target/docs/lib/Gui.htm b/target/docs/lib/Gui.htm index 470bbb3e..b1615a80 100644 --- a/target/docs/lib/Gui.htm +++ b/target/docs/lib/Gui.htm @@ -109,7 +109,7 @@

      パラメータ

      ControlType

      型:文字列

      これは、以下のいずれかとなります:ActiveXButtonCheckBoxComboBoxCustomDateTimeDropDownList(またはDDL)EditGroupBoxHotkeyLinkListBoxListViewMonthCalPicture(またはPic)ProgressRadioSliderStatusBarTabTab2Tab3TextTreeViewUpDown

      -

      事例:

      +

      例:

      MyGui := Gui()
       MyGui.Add("Text",, "Please enter your name:")
       MyGui.AddEdit("vName")
      @@ -129,7 +129,7 @@ 

      パラメータ

      X+、 Y+の場合、ウィンドウの現在のマージンの代用としてMという文字が使えます。例えば、x+mは、前のコントロールの右端に標準的なパディング距離を加えたものを使用します。xp y+mは、コントロールが前のコントロールの下に位置します。一方、相対的なX座標を単独で(XPまたはX+で)指定すると、通常はデフォルトでypが指定されます。

      XP±n, YP±n (where n is any number in pixels) can be used to position controls relative to the previous control's upper left corner, which is often useful for enclosing controls in a GroupBox.

      XM±n and YM±n (where n is any number in pixels) can be used to position a control at the leftmost and topmost margins of the window, respectively, with an optional plus or minus adjustment.

      -

      XS±n and YS±n (where n is any number in pixels): These are similar to XM and YM except that they refer to coordinates that were saved by having previously added a control with the word Section in its options (the first control of the window always starts a new section, even if that word isn't specified in its options). 事例:

      +

      XS±n and YS±n (where n is any number in pixels): These are similar to XM and YM except that they refer to coordinates that were saved by having previously added a control with the word Section in its options (the first control of the window always starts a new section, even if that word isn't specified in its options). 例:

      MyGui := Gui()
       MyGui.Add("Edit", "w600")  ; ウィンドウの上部にかなり広いエディットコントロールを追加します。
       MyGui.Add("Text", "Section", "First Name:")  ; このコントロールの位置を保存し、新しいセクションを開始します。
      @@ -339,7 +339,7 @@ 

      パラメータ

    • 必要に応じて、スケーリングをその場で有効化(MyGui.Opt("+DPIScale"))、無効化(MyGui.Opt("-DPIScale"))することができます。設定を変更しても、すでに設定されている位置やサイズには影響しません。
    • 座標を手動でスケーリングします。例えば、x*(A_ScreenDPI/96)はxを論理/GUI座標から物理/非GUI座標に変換します。
    -

    LastFound:ウィンドウを最後に見つかったウィンドウに設定します(ただし、GUIスレッドでは自動的に行われるため不要)。これにより、WinGetStyleWinSetTransparentなどの関数が、ウィンドウが隠れていても操作できるようになります(つまり、DetectHiddenWindowsは不要です)。これは、ウィンドウを表示する前にウィンドウのプロパティを変更する場合に特に有効です。事例:

    +

    LastFound:ウィンドウを最後に見つかったウィンドウに設定します(ただし、GUIスレッドでは自動的に行われるため不要)。これにより、WinGetStyleWinSetTransparentなどの関数が、ウィンドウが隠れていても操作できるようになります(つまり、DetectHiddenWindowsは不要です)。これは、ウィンドウを表示する前にウィンドウのプロパティを変更する場合に特に有効です。例:

    MyGui.Opt("+LastFound")
     WinSetTransColor(CustomColor " 150")
     MyGui.Show()
    @@ -508,7 +508,7 @@

    __Enum

    The control's GuiControl object.

    -

    事例:

    +

    例:

    MyGuiのHwnd、GuiCtrlObjの場合
         MsgBox "Control #" A_Index " is " GuiCtrlObj.ClassNN
    @@ -532,7 +532,7 @@

    BackColor

    NewColorは、16の主要なHTMLカラー名、16進数のRGBカラー値(接頭辞0xはオプション)、純粋な数値のRGBカラー値、またはデフォルトカラーを表すDefault(または空の文字列)のいずれかです。例値:"Silver""FFFFAA"0xFFFFAA"Default"""

    デフォルトでは、ウィンドウの背景色は、ボタンの表面のシステムの色になります。

    この例のように、メニューバーと、そのサブメニューの色を変更することができます:MyMenuBar.SetColor "White"

    -

    背景を透明にする場合は、WinSetTransColorを使用します。ただし、Gui.BackColorでカスタムウィンドウを割り当てずにこの操作を行うと、ボタンも透明になります。これを防ぐには、まずカスタムカラーを割り当て、そのカラーを透明にします。事例:

    +

    背景を透明にする場合は、WinSetTransColorを使用します。ただし、Gui.BackColorでカスタムウィンドウを割り当てずにこの操作を行うと、ボタンも透明になります。これを防ぐには、まずカスタムカラーを割り当て、そのカラーを透明にします。例:

    MyGui.BackColor := "EEAA99"
     WinSetTransColor("EEAA99", MyGui)

    背景が透明なウィンドウから、ボーダーとタイトルバーを追加で削除するには、次のようにします:MyGui.Opt("-Caption")

    @@ -577,7 +577,7 @@

    MenuBar

    ウィンドウのメニューバーを取得または設定します。

    CurrentBar := MyGui.MenuBar
    MyGui.MenuBar := NewBar
    -

    CurrentBar and NewBar are a MenuBar object created by MenuBar(). 事例:

    +

    CurrentBar and NewBar are a MenuBar object created by MenuBar(). 例:

    FileMenu := Menu()
     FileMenu.Add "&Open`tCtrl+O", (*) => FileSelect()  ; Ctrl+Oについては後述します。
     FileMenu.Add "E&xit", (*) => ExitApp()
    diff --git a/target/docs/lib/GuiControls.htm b/target/docs/lib/GuiControls.htm
    index 14a903d9..a8be49ca 100644
    --- a/target/docs/lib/GuiControls.htm
    +++ b/target/docs/lib/GuiControls.htm
    @@ -80,7 +80,7 @@ 

    ActiveX

    Button

    A pushbutton, which can be pressed to trigger an action. In this case, the last parameter is the name of the button (shown on the button itself), which may include linefeeds (`n) to start new lines.

    -

    事例:

    +

    例:

    MyBtn := MyGui.Add("Button", "Default w80", "OK")
     MyBtn.OnEvent("Click", MyBtn_Click)  ; クリックされたときにMyBtn_Clickをコールします。

    あるいは:

    @@ -92,7 +92,7 @@

    Button

    Whenever the user clicks the button or presses Space or Enter while it has the focus, the Click event is raised.

    The DoubleClick, Focus and LoseFocus events are also supported. As these events are only raised if the control has the BS_NOTIFY (0x4000) style, it is added automatically by OnEvent.

    The example above includes the word Default in its Options to make "OK" the default button. The default button's Click event is automatically triggered whenever the user presses Enter, except when the keyboard focus is on a different button or a multi-line edit control having the WantReturn style. To later change the default button to another button, follow this example, which makes the Cancel button become the default: MyGui["Cancel"].Opt("+Default"). To later change the window to have no default button, follow this example: MyGui["OK"].Opt("-Default").

    -

    An ampersand (&) may be used in the button name to underline one of its letters. 事例:

    +

    An ampersand (&) may be used in the button name to underline one of its letters. 例:

    MyGui.Add("Button",, "&Pause")

    In the example above, the letter P will be underlined, which allows the user to press Alt+P as shortcut key. To display a literal ampersand, specify two consecutive ampersands (&&).

    @@ -100,7 +100,7 @@

    Button

    CheckBox

    A small box that can be checked or unchecked to represent On/Off, Yes/No, etc.

    -

    事例:

    +

    例:

    MyGui.Add("CheckBox", "vShipToBillingAddress", "Ship to billing address?")

    あるいは:

    MyGui.AddCheckBox("vShipToBillingAddress", "Ship to billing address?")
    @@ -115,7 +115,7 @@

    Button

    ComboBox

    Same as DropDownList but also permits free-form text to be entered as an alternative to picking an item from the list.

    -

    事例:

    +

    例:

    MyGui.Add("ComboBox", "vColorChoice", ["Red","Green","Blue"])

    あるいは:

    MyGui.AddComboBox("vColorChoice", ["Red","Green","Blue"])
    @@ -193,7 +193,7 @@

    Custom

    DateTime

    A box that looks like a single-line edit control but instead accepts a date and/or time. A drop-down calendar is also provided.

    -

    事例:

    +

    例:

    MyGui.Add("DateTime", "vMyDateTime", "LongDate")

    あるいは:

    MyGui.AddDateTime("vMyDateTime", "LongDate")
    @@ -237,7 +237,7 @@

    DateTime Options

    A list of choices that is displayed in response to pressing a small button. In this case, the last parameter of MyGui.Add is an Array like ["Choice1","Choice2","Choice3"].

    -

    事例:

    +

    例:

    MyGui.Add("DropDownList", "vColorChoice", ["Black","White","Red"])

    あるいは:

    MyGui.AddDropDownList("vColorChoice", ["Black","White","Red"])
    @@ -258,7 +258,7 @@

    DateTime Options

    Edit

    ユーザーが自由にテキストを入力できる領域。

    -

    事例:

    +

    例:

    MyGui.Add("Edit", "r9 vMyEdit w135", "Text to appear inside the edit control (omit this parameter to start off empty).")

    あるいは:

    MyGui.AddEdit("r9 vMyEdit w135", "Text to appear inside the edit control (omit this parameter to start off empty).")
    @@ -268,7 +268,7 @@

    Edit

    複数行の編集コントロールで改行するには、最後のパラメータ(contents)に単独のラインフィード(`n)またはキャリッジリターンとラインフィード(`r`n)を指定します。どちらの方法も、Editコントロールの中にリテラルな`r`nペアを生成します。しかし、MyGui.SubmitGuiCtrl.Valueでコントロールの内容を取得する場合、テキスト内の各`r`nは常にプレーンなラインフィード(`n)に変換されます。この行末変換を回避するためには、GuiCtrl.Textを使用します。テキストをファイルに書き出すには、この例に従います:FileAppend(MyEdit.Text, "C:\Saved File.txt")

    コントロールがワードラッピングを有効にしている場合(複数行編集コントロールのデフォルト)、ユーザーが入力する際に発生するラップは、改行文字を生成しません(Enterだけがそれを行うことができます)。

    Whenever the user changes the control's content, the Change event is raised.

    -

    TIP: To load a text file into an Edit control, use FileRead and GuiCtrl.Value. 事例:

    +

    TIP: To load a text file into an Edit control, use FileRead and GuiCtrl.Value. 例:

    MyEdit := MyGui.Add("Edit", "R20")
     MyEdit.Value := FileRead("C:\My File.txt")
    @@ -291,7 +291,7 @@

    Edit Options

    GroupBox

    A rectangular border/frame, often used around other controls to indicate they are related. In this case, the last parameter is the title of the box, which if present is displayed at its upper-left edge.

    -

    事例:

    +

    例:

    MyGui.Add("GroupBox", "w200 h100", "Geographic Criteria")

    あるいは:

    MyGui.AddGroupBox("w200 h100", "Geographic Criteria")
    @@ -302,7 +302,7 @@

    GroupBox

    Hotkey

    A box that looks like a single-line edit control but instead accepts a keyboard combination pressed by the user. For example, if the user presses Ctrl+Alt+C on an English keyboard layout, the box would display "Ctrl + Alt + C".

    -

    事例:

    +

    例:

    MyGui.Add("Hotkey", "vChosenHotkey")

    あるいは:

    MyGui.AddHotkey("vChosenHotkey")
    @@ -329,7 +329,7 @@

    Hotkey

    A text control that can contain links similar to those found in a web browser. Within the control's text, enclose the link text within <A> and </A> to create a clickable link. Although this looks like HTML, Link controls only support the opening <A> tag (optionally with an ID and/or HREF attribute) and closing </A> tag.

    -

    事例:

    +

    例:

    MyGui.Add("Link",, 'This is a <a href="https://www.autohotkey.com">link</a>')
     MyGui.Add("Link",, 'Links may be used anywhere in the text like <a id="A">this</a> or <a id="B">that</a>')

    あるいは:

    @@ -359,7 +359,7 @@

    ListBox

    A relatively tall box containing a list of choices that can be selected. In this case, the last parameter of MyGui.Add is an Array like ["Choice1","Choice2","Choice3"].

    -

    事例:

    +

    例:

    MyGui.Add("ListBox", "r5 vColorChoice", ["Red","Green","Blue"])

    あるいは:

    MyGui.AddListBox("r5 vColorChoice", ["Red","Green","Blue"])
    @@ -386,7 +386,7 @@

    ListBox Options

    ListView

    リストビューは、オペレーティングシステムが提供する最も精巧なコントロールの1つです。最も分かりやすい形としては、行と列の表形式で表示され、最も一般的な例としては、エクスプローラーのファイルやフォルダのリスト(詳細表示)があります。

    -

    事例:

    +

    例:

    MyGui.Add("ListView", "r20 w700", ["Name","In Folder","Size (KB)","Type"])

    あるいは:

    MyGui.AddListView("r20 w700", ["Name","In Folder","Size (KB)","Type"])
    @@ -396,7 +396,7 @@

    ListView

    MonthCal

    A tall and wide control that displays all the days of the month in calendar format. The user may select a single date or a range of dates.

    -

    事例:

    +

    例:

    MyGui.Add("MonthCal", "vMyCalendar")

    あるいは:

    MyGui.AddMonthCal("vMyCalendar")
    @@ -421,7 +421,7 @@

    MonthCal Options

    Picture(またはPic)

    An area containing an image (see last two paragraphs for supported file types). The last parameter is the filename of the image, which is assumed to be in A_WorkingDir if an absolute path isn't specified.

    -

    事例:

    +

    例:

    MyGui.Add("Picture", "w300 h-1", "C:\My Pictures\Company Logo.gif")

    あるいは:

    MyGui.AddPicture("w300 h-1", "C:\My Pictures\Company Logo.gif")
    @@ -431,7 +431,7 @@

    MonthCal Options

    Icons, cursors, and animated cursors: Icons and cursors may be loaded from the following types of files: ICO, CUR, ANI, EXE, DLL, CPL, SCR, and other types that contain icon resources. To use an icon group other than the first one in the file, include in Options the word Icon followed by the number of the group. 次の例では、2番目のアイコングループのデフォルトアイコンが使用されることになります:MyGui.Add("Picture", "Icon2", "C:\My Application.exe")

    Specifying the word AltSubmit in Options tells the program to use Microsoft's GDIPlus.dll to load the image, which might result in a different appearance for GIF, BMP, and icon images. For example, it would load a GIF that has a transparent background as a transparent bitmap, which allows the BackgroundTrans option to take effect (but icons support transparency without AltSubmit).

    Formats supported without the use of GDIPlus include GIF, JPG, BMP, ICO, CUR, and ANI images. GDIPlus is used by default for other image formats, such as PNG, TIF, Exif, WMF and EMF.

    -

    Animated GIFs: Although animated GIF files can be displayed in a picture control, they will not actually be animated. To solve this, use the AniGIF DLL (which is free for non-commercial use) as demonstrated at the AutoHotkey Forums. Alternatively, the ActiveX control type can be used. 事例:

    +

    Animated GIFs: Although animated GIF files can be displayed in a picture control, they will not actually be animated. To solve this, use the AniGIF DLL (which is free for non-commercial use) as demonstrated at the AutoHotkey Forums. Alternatively, the ActiveX control type can be used. 例:

    ; Specify below the path to the GIF file to animate (local files are allowed too):
     pic := "http://www.animatedgif.net/cartoons/A_5odie_e0.gif"
     MyGui := Gui()
    @@ -441,7 +441,7 @@ 

    MonthCal Options

    Progress

    A dual-color bar typically used to indicate how much progress has been made toward the completion of an operation.

    -

    事例:

    +

    例:

    MyGui.Add("Progress", "w200 h20 cBlue vMyProgress", 75)

    あるいは:

    MyGui.AddProgress("w200 h20 cBlue vMyProgress", 75)
    @@ -462,7 +462,7 @@

    Progress Options

    Radio

    A radio button is a small empty circle that can be checked (on) or unchecked (off).

    -

    事例:

    +

    例:

    MyGui.Add("Radio", "vMyRadioGroup", "Wait for all items to be in stock before shipping.")

    あるいは:

    MyGui.AddRadio("vMyRadioGroup", "Wait for all items to be in stock before shipping.")
    @@ -478,7 +478,7 @@

    Radio

    Slider

    A sliding bar that the user can move along a vertical or horizontal track. The standard volume control in the taskbar's tray is an example of a slider.

    -

    事例:

    +

    例:

    MyGui.Add("Slider", "vMySlider", 50)

    あるいは:

    MyGui.AddSlider("vMySlider", 50)
    @@ -532,7 +532,7 @@

    Slider Options

    StatusBar

    A row of text and/or icons attached to the bottom of a window, which is typically used to report changing conditions.

    -

    事例:

    +

    例:

    SB := MyGui.Add("StatusBar",, "Bar's starting text (omit to start off empty).")
     SB.SetText("There are " . RowCount . " rows selected.")

    あるいは:

    @@ -606,7 +606,7 @@

    StatusBar Usage

  • Tab2: Fixes rare redrawing problems in the original "Tab" control but introduces some other problems.
  • Tab: Retained for backward compatibility because of differences in behavior between Tab2/Tab3 and Tab.
  • -

    事例:

    +

    例:

    MyGui.Add("Tab3",, ["General","View","Settings"])

    あるいは:

    MyGui.AddTab3(, ["General","View","Settings"])
    @@ -694,7 +694,7 @@

    Tab Options

    Text

    ユーザーが編集できない、境界のないテキストを含む領域。他のコントロールのラベルに使用されることが多い。

    -

    事例:

    +

    例:

    MyGui.Add("Text",, "Please enter your name:")

    あるいは:

    MyGui.AddText(, "Please enter your name:")
    @@ -703,7 +703,7 @@

    Text

    この場合、最後のパラメータは表示する文字列となります。新しい行を開始するための改行(`n)を含むことができる。また、1本の長い線を、継続部によっていくつかの短い線に分割することができます。

    If a width (W) is specified in Options but no rows (R) or height (H), the control's text will be word-wrapped as needed, and the control's height will be set automatically.

    -

    ユーザーがテキストをクリックしたことを検出するには、Click イベントを使用します。事例:

    +

    ユーザーがテキストをクリックしたことを検出するには、Click イベントを使用します。例:

    MyGui := Gui()
     FakeLink := MyGui.Add("Text", "", "Click here to launch Google.")
     FakeLink.SetFont("underline cBlue")
    @@ -718,7 +718,7 @@ 

    Text

    }

    テキストコントロールはDoubleClickイベントにも対応しています。

    SS_NOTIFY(0x100)スタイルを持つTextコントロールだけがクリックやダブルクリックの通知を送るので、OnEventはClickやDoubleClickコールバックが登録されると自動的にこのスタイルを追加します。SS_NOTIFYスタイルは、コントロールがダブルクリックされたときに、OSが自動的にコントロールのテキストをクリップボードにコピーするようにします。

    -

    本文中でアンパサンド(&)を使用し、1文字に下線を引くことができる。事例:

    +

    本文中でアンパサンド(&)を使用し、1文字に下線を引くことができる。例:

    MyGui.Add("Text",, "&First Name:")
     MyGui.Add("Edit")

    上の例では、Fという文字に下線が引かれ、ユーザーはショートカットキー Alt+Fを押すことで、テキストコントロールの後に追加された最初の入力可能なコントロールにキーボードフォーカスを設定することができるようになります。アンパサンドを表示させる場合は、アンパサンド(&&)を2つ連続して指定します。アンパサンドに対する特別な処理をすべて無効にするには、コントロールのオプションに0x80を含めます。

    @@ -726,7 +726,7 @@

    Text

    TreeView

    A TreeView displays a hierarchy of items by indenting child items beneath their parents. 最も一般的な例は、エクスプローラーのドライブとフォルダーのツリーである。

    -

    事例:

    +

    例:

    MyGui.Add("TreeView", "r10")

    あるいは:

    MyGui.AddTreeView("r10")
    @@ -736,7 +736,7 @@

    TreeView

    UpDown

    A pair of arrow buttons that the user can click to increase or decrease a value. By default, an UpDown control automatically snaps onto the previously added control. This previous control is known as the UpDown's buddy control. The most common example is a "spinner", which is an UpDown attached to an Edit control.

    -

    事例:

    +

    例:

    MyGui.Add("Edit")
     MyGui.Add("UpDown", "vMyUpDown Range1-10", 5)

    あるいは:

    diff --git a/target/docs/lib/HotIf.htm b/target/docs/lib/HotIf.htm index 10902a6e..217ddb76 100644 --- a/target/docs/lib/HotIf.htm +++ b/target/docs/lib/HotIf.htm @@ -73,7 +73,7 @@

    エラー処理

    An exception is thrown if HotIf's parameter is invalid, such as if it does not match an existing expression or is not a valid callback function.

    総論

    -

    The HotIf and HotIfWin functions allow context-sensitive hotkeys and hotstrings to be created and modified while the script is running (by contrast, the #HotIf directive is positional and takes effect before the script begins executing). 事例:

    +

    The HotIf and HotIfWin functions allow context-sensitive hotkeys and hotstrings to be created and modified while the script is running (by contrast, the #HotIf directive is positional and takes effect before the script begins executing). 例:

    HotIfWinActive "ahk_class Notepad"
     Hotkey "^!e", MyFuncForNotepad  ; メモ帳でのみ動作するホットキーを作成します。

    Using HotIf or one of the HotIfWin functions puts context sensitivity into effect for all subsequently created hotkeys and hotstrings in the current thread, and affects which hotkey or hotstring variants the Hotkey or Hotstring function modifies. Only the most recent call to the HotIf or HotIfWin function in the current thread will be in effect.

    diff --git a/target/docs/lib/Hotkey.htm b/target/docs/lib/Hotkey.htm index e6a989b2..fd5c1c85 100644 --- a/target/docs/lib/Hotkey.htm +++ b/target/docs/lib/Hotkey.htm @@ -109,7 +109,7 @@

    エラー処理

    このホットキーを作成すると、スクリプトごとに32762個のホットキーという制限を超えてしまいます(ただし、各ホットキーには無制限のバリエーションがあり、ホットストリングの数には制限がありません)。 -

    ヒント:Try-Catch は、ホットキーのバリアントが存在するかどうかをテストするために使用することができます。事例:

    +

    ヒント:Try-Catch は、ホットキーのバリアントが存在するかどうかをテストするために使用することができます。例:

     try
         Hotkey "^!p"
    @@ -127,7 +127,7 @@ 

    備考

    スクリプトに少なくとも1つのホットキーが設定されると、そのスクリプトは永続的なものとなり、終了させるにはExitではなくExitAppを使用する必要があります。

    バリアント(複製)ホットキー

    -

    A particular hotkey can be created more than once if each definition has different HotIf criteria. これらは、ホットキーバリアントと呼ばれるものです。事例:

    +

    A particular hotkey can be created more than once if each definition has different HotIf criteria. これらは、ホットキーバリアントと呼ばれるものです。例:

    HotIfWinActive "ahk_class Notepad"
     Hotkey "^!c", MyFuncForNotepad
     HotIfWinActive "ahk_class WordPadClass"
    diff --git a/target/docs/lib/Hotstring.htm b/target/docs/lib/Hotstring.htm
    index 64fbdfa2..41352332 100644
    --- a/target/docs/lib/Hotstring.htm
    +++ b/target/docs/lib/Hotstring.htm
    @@ -79,7 +79,7 @@ 

    Sub-functions

    EndChars

    ホットストリングレコグナイザーで終端文字として使用される文字のセットを取得または変更します。

    OldValue := Hotstring("EndChars" , NewValue)
    -

    事例:

    +

    例:

    prev_chars := Hotstring("EndChars", "-()[]{}':;`"/\,.?!`n`s`t")
     MsgBox "The previous value was: " prev_chars

    #Hotstring EndCharsも、この設定に影響します。

    @@ -99,7 +99,7 @@

    Reset

    エラー

    パラメータが不正な場合、またはメモリ確保に失敗した場合は、例外を投げます。

    -

    Replacementが省略され、Stringが有効であるが既存のホットストリングと一致しない場合、TargetErrorがスローされます。これは、ホットストリングの存在をテストするために利用することができます。事例:

    +

    Replacementが省略され、Stringが有効であるが既存のホットストリングと一致しない場合、TargetErrorがスローされます。これは、ホットストリングの存在をテストするために利用することができます。例:

    try
         Hotstring "::btw"
     catch TargetError
    @@ -113,7 +113,7 @@ 

    備考

    Once a script has at least one hotstring, it becomes persistent, meaning that ExitApp rather than Exit should be used to terminate it.

    バリアント(複製)ホットストリング

    -

    各定義が異なるHotIf基準、大文字小文字の区別(C vs. C0/C1)、または、単語の区別?)を持つ場合、特定のホットストリングを複数回作成することができます。これらはホットストリング・バリアントと呼ばれています。事例:

    +

    各定義が異なるHotIf基準、大文字小文字の区別(C vs. C0/C1)、または、単語の区別?)を持つ場合、特定のホットストリングを複数回作成することができます。これらはホットストリング・バリアントと呼ばれています。例:

    HotIfWinActive "ahk_group CarForums"
     Hotstring "::btw", "behind the wheel"
     HotIfWinActive "Inter-Office Chat"
    diff --git a/target/docs/lib/If.htm b/target/docs/lib/If.htm
    index e35be1e9..08f4e939 100644
    --- a/target/docs/lib/If.htm
    +++ b/target/docs/lib/If.htm
    @@ -22,7 +22,7 @@ 

    備考

    If文の式がtrueと評価された場合(空文字列や数値0以外の結果)、その下の行やブロックが実行されます。それ以外の場合、対応するElse文があれば、実行はその下の行またはブロックにジャンプします。

    複数の行を所有する場合は、それらの行を中括弧で囲む必要があります(ブロックを作成するため)。ただし、1つのIfに1行しか属さない場合は、中括弧は省略可能です。本ページ下部の例をご覧ください。

    if(expression)のように、式が開括弧で始まる場合、ifの後のスペースは任意です。

    -

    OTB(One True Brace)スタイルはオプションで使用することができます。事例:

    +

    OTB(One True Brace)スタイルはオプションで使用することができます。例:

    if (x < y) {
         ; ...
     }
    diff --git a/target/docs/lib/IniWrite.htm b/target/docs/lib/IniWrite.htm
    index 92cfa427..03672313 100644
    --- a/target/docs/lib/IniWrite.htm
    +++ b/target/docs/lib/IniWrite.htm
    @@ -60,7 +60,7 @@ 

    備考

    標準的なiniファイルは次のようなものです:

    [SectionName]
     Key=Value
    -

    新しいファイルは、ユニコード文字の全範囲を使用できるように、UTF-16のバイト順マークで作成されます。もしこれが望ましくない場合は、IniWriteを呼び出す前にファイルが存在することを確認してください。事例:

    +

    新しいファイルは、ユニコード文字の全範囲を使用できるように、UTF-16のバイト順マークで作成されます。もしこれが望ましくない場合は、IniWriteを呼び出す前にファイルが存在することを確認してください。例:

     ; ANSIエンコーディングでファイルを作成します。
     FileAppend "", "NonUnicode.ini", "CP0"
    diff --git a/target/docs/lib/InputHook.htm b/target/docs/lib/InputHook.htm
    index 92908392..45c806d6 100644
    --- a/target/docs/lib/InputHook.htm
    +++ b/target/docs/lib/InputHook.htm
    @@ -140,7 +140,7 @@ 

    備考

    When a key is specified by name, options are added either by VK or by SC. 2つの物理キーが同じVKを共有し、SCによって異なる場合(UpNumpadUpなど)、SCによって扱われます。一方、VK番号を使用する場合は、そのVKを生成するすべての物理キーに適用されます(これは、アクティブなキーボードレイアウトに依存するため、時間と共に変化する可能性があります)。

    VK番号でオプションを削除しても、SCで設定されていたオプションには影響しませんし、その逆も同様です。ただし、キー名でオプションが削除され、そのキー名がVKで扱われる場合、対応するSCについてもオプションが削除されます(スクリプトのキーボードレイアウトに準じます)。これにより、すべてのキーにオプションを適用した後に、キー名を指定して除外することができます。

    To prevent an option from affecting a key, the option must be removed from both the VK and the SC of that key, or sc000 if the key has no SC.

    -

    Unicode events, such as those sent by SendEvent "{U+221e}" or SendEvent "{Text}∞", are affected by options which have been set for either vkE7 or sc000. Any option applied to {All} is applied to both vkE7 and sc000, so to exclude Unicode events, remove the option from both. 事例:

    +

    Unicode events, such as those sent by SendEvent "{U+221e}" or SendEvent "{Text}∞", are affected by options which have been set for either vkE7 or sc000. Any option applied to {All} is applied to both vkE7 and sc000, so to exclude Unicode events, remove the option from both. 例:

    InputHookObj.KeyOpt("{All}", "+I")  ; Ignore text produced by any event
     InputHookObj.KeyOpt("{vkE7}{sc000}", "-I")  ; except Unicode events.
    diff --git a/target/docs/lib/KeyWait.htm b/target/docs/lib/KeyWait.htm index f3a722a8..b81b0c3c 100644 --- a/target/docs/lib/KeyWait.htm +++ b/target/docs/lib/KeyWait.htm @@ -43,7 +43,7 @@

    戻り値

    備考

    キーボードやマウスのボタンの物理的な状態は、キーボードやマウスのフックが設置されていない限り、通常は論理的な状態と同じであり、その場合、ユーザーが物理的にキーを押しているかどうかが正確に反映されます。スクリプトがフックを使用しているかどうかは、KeyHistory関数またはメニュー項目で確認できます。スクリプトにInstallKeybdHook関数とInstallMouseHook関数を追加することで、どちらかまたは両方のフックを強制的にインストールさせることができます。

    関数が待機状態にある間、ホットキーカスタムメニュー項目、またはタイマーによって新しいスレッドを起動することができます。

    -

    2つ以上のキーが離されるのを待つには、KeyWaitを連続して使用します。事例:

    +

    2つ以上のキーが離されるのを待つには、KeyWaitを連続して使用します。例:

    KeyWait "Control"  ; ControlとAltの両方が解除されるのを待つ。
     KeyWait "Alt"

    To wait for any one key among a set of keys to be pressed down, see InputHook example #4.

    diff --git a/target/docs/lib/ListView.htm b/target/docs/lib/ListView.htm index 94ce7c53..0b9e0071 100644 --- a/target/docs/lib/ListView.htm +++ b/target/docs/lib/ListView.htm @@ -320,7 +320,7 @@

    戻り値

    Type: Integer

    This method returns the number of rows or columns in the control. The value is always returned immediately because the control keeps track of these counts.

    備考

    -

    This method is often used in the top line of a Loop, in which case the method would get called only once (prior to the first iteration). 事例:

    +

    This method is often used in the top line of a Loop, in which case the method would get called only once (prior to the first iteration). 例:

    Loop LV.GetCount()
     {
         RetrievedText := LV.GetText(A_Index)
    @@ -541,7 +541,7 @@ 

    備考

    備考

    Gui.Submitは、ListViewコントロールには効果がありません。

    カラムがソートされた後(ユーザーがヘッダーをクリックするか、スクリプトがLV.ModifyCol(1, "Sort")を呼び出す)、その後に追加された行は、ソート順序に従わずにリストの一番下に表示されます。ただし、SortSortDescは例外で、新しく追加された行を正しい位置に移動させるスタイルです。

    -

    ListViewにフォーカスがある状態でユーザーがEnterを押したことを検出するには、デフォルトのボタンを使用します(必要に応じて非表示にすることができます)。事例:

    +

    ListViewにフォーカスがある状態でユーザーがEnterを押したことを検出するには、デフォルトのボタンを使用します(必要に応じて非表示にすることができます)。例:

    MyGui.Add("Button", "Hidden Default", "OK").OnEvent("Click", LV_Enter)
     ...
     LV_Enter(*) {
    diff --git a/target/docs/lib/Loop.htm b/target/docs/lib/Loop.htm
    index 53f894be..65b94924 100644
    --- a/target/docs/lib/Loop.htm
    +++ b/target/docs/lib/Loop.htm
    @@ -35,7 +35,7 @@ 

    備考

    組込変数A_Indexには、現在のループの繰り返し回数が格納されます。ループ本体が最初に実行されるときに1を含む。2回目には2が入り、以下同様です。内側ループが外側ループで囲まれている場合、内側ループが優先されます。A_Indexは、ファイルループレジストリループを含むすべての種類のループの内部で動作しますが、A_Indexはループの外部で0を含みます。

    A_Indexには、スクリプトによって任意の整数値を割り当てることができる。Countが指定されている場合、A_Indexを変更すると、実行される反復処理の回数に影響します。例えば、A_Index := 3とすると、ループ文は3回目の反復にあるかのように動作し(次の反復ではA_Indexは4になります)、A_Index--は現在の反復が合計にカウントされないようにします。

    ループの後には、Countがゼロの場合に実行されるElse文がオプションで付いていることがある。

    -

    OTB(One True Brace)スタイルはオプションで使用することができます。事例:

    +

    OTB(One True Brace)スタイルはオプションで使用することができます。例:

    Loop {
         ...
     }
    diff --git a/target/docs/lib/LoopFiles.htm b/target/docs/lib/LoopFiles.htm
    index 44c8cb21..3ed7b5e7 100644
    --- a/target/docs/lib/LoopFiles.htm
    +++ b/target/docs/lib/LoopFiles.htm
    @@ -116,7 +116,7 @@ 

    備考

    if A_LoopFileAttrib ~= "[HRS]"  ; H(Hidden)、R(Read-only)、S(System)のいずれかに該当するファイルをスキップします。~=演算子を参照。
         continue  ; このファイルをスキップして、次のファイルに移る。

    To retrieve files' relative paths instead of absolute paths during a recursive search, use SetWorkingDir to change to the base folder prior to the loop, and then omit the path from the loop (e.g. Loop Files, "*.*", "R"). これにより、A_LoopFilePathには、ベースフォルダからの相対的なファイルのパスが含まれることになります。

    -

    ファイルループは、自分の権限でファイルやフォルダを作成したり、名前を変更したりすると、それ自体が混乱することがあります。例えば、FileMoveなどでファイル名を変更した場合、そのようなファイルが2回見つかる可能性があります:旧名称ならば、新名称とします。これを回避するには、ファイルのリストを作成した後にのみファイル名を変更します。事例:

    +

    ファイルループは、自分の権限でファイルやフォルダを作成したり、名前を変更したりすると、それ自体が混乱することがあります。例えば、FileMoveなどでファイル名を変更した場合、そのようなファイルが2回見つかる可能性があります:旧名称ならば、新名称とします。これを回避するには、ファイルのリストを作成した後にのみファイル名を変更します。例:

    FileList := ""
     Loop Files, "*.jpg"
         FileList .= A_LoopFileName "`n"
    diff --git a/target/docs/lib/Map.htm b/target/docs/lib/Map.htm
    index e4c93c62..ff68f850 100644
    --- a/target/docs/lib/Map.htm
    +++ b/target/docs/lib/Map.htm
    @@ -16,7 +16,7 @@ 

    Mapオブジェクト

    Mapオブジェクトは、キーと呼ばれる1つの値の集合を、別の値の集合に関連付ける、またはマッピングします。キーとそのキーに対応する値をキー・バリュー・ペアと呼びます。マップには、任意の数のキーと値のペアを含めることができますが、各キーは一意でなければなりません。

    キーは、整数オブジェクト参照、ヌル文字で終端された文字列のいずれかを指定することができます。文字列キーの比較は大文字と小文字を区別し、オブジェクトの比較は参照/アドレスで行います。Floatキーは自動的に String に変換されます。

    -

    マップの最も単純な使用方法は、暗黙の__Itemプロパティによってキーと値のペアを取得または設定することであり、マップオブジェクトの後に続く括弧の間にキーを記述するだけです。事例:

    +

    マップの最も単純な使用方法は、暗黙の__Itemプロパティによってキーと値のペアを取得または設定することであり、マップオブジェクトの後に続く括弧の間にキーを記述するだけです。例:

    clrs := Map()
     clrs["Red"] := "ff0000"
     clrs["Green"] := "00ff00"
    diff --git a/target/docs/lib/Math.htm b/target/docs/lib/Math.htm
    index 6850112a..7a3f4c0c 100644
    --- a/target/docs/lib/Math.htm
    +++ b/target/docs/lib/Math.htm
    @@ -85,7 +85,7 @@ 

    Max

    Returns the highest number from a set of numbers.

    Number := Max(Number1 , Number2, ...)
    MsgBox Max(2.11, -2, 0) ; 2.11を返します。
    -

    You can also specify a variadic parameter to pass an array of numbers. 事例:

    +

    You can also specify a variadic parameter to pass an array of numbers. 例:

    Numbers := [1, 2, 3, 4]
     MsgBox Max(Numbers*) ; 4を返す。
     
    @@ -94,7 +94,7 @@

    Min

    Returns the lowest number from a set of numbers.

    Number := Min(Number1 , Number2, ...)
    MsgBox Min(2.11, -2, 0) ; 戻り値 -2
    -

    You can also specify a variadic parameter to pass an array of numbers. 事例:

    +

    You can also specify a variadic parameter to pass an array of numbers. 例:

    Numbers := [1, 2, 3, 4]
     MsgBox Min(Numbers*) ; 1を返します。
    diff --git a/target/docs/lib/MenuSelect.htm b/target/docs/lib/MenuSelect.htm index 07020e9f..fd5b1ad8 100644 --- a/target/docs/lib/MenuSelect.htm +++ b/target/docs/lib/MenuSelect.htm @@ -60,12 +60,12 @@

    備考

    メニュー名のパラメーターは、位置を指定することも可能です。この方法は、テキストを含まないメニューをサポートするために存在します(おそらく、実際のテキストではなく、テキストの画像を含むため)。ポジション1&は1番目のメニュー項目(例:ファイルメニュー)、ポジション2&は2番目のメニュー項目(例:編集メニュー)、といった具合に。メニューの区切り線は、メニューの位置を決定するためのメニュー項目としてカウントされます。

    システム メニュー

    -

    Menuは、 Alt+Spaceを押すか、ウィンドウのタイトルバーのアイコンをクリックすると表示されるウィンドウのシステムメニューの中の項目を選択するために"0&"を使用することができます。事例:

    +

    Menuは、 Alt+Spaceを押すか、ウィンドウのタイトルバーのアイコンをクリックすると表示されるウィンドウのシステムメニューの中の項目を選択するために"0&"を使用することができます。例:

    ; ウィンドウをアクティブにせずに、cmd.exeにコマンドを貼り付ける。
     A_Clipboard := "echo Hello, world!`r"
     MenuSelect "ahk_exe cmd.exe",, "0&", "Edit", "Paste"

    注意:システムメニューにカスタム項目があるウィンドウズでのみ使用します。

    -

    ウィンドウにカスタムシステムメニューがまだない場合、標準システムメニューのコピーが作成され、副作用としてターゲットウィンドウに割り当てられます。このコピーは、スクリプトが終了するときにシステムによって破棄され、他のスクリプトはアクセスできない状態になります。したがって、すべてのウィンドウに表示される標準的な項目には、0&を使用しないようにしてください。代わりに、WM_SYSCOMMANDメッセージを直接投稿してください。事例:

    +

    ウィンドウにカスタムシステムメニューがまだない場合、標準システムメニューのコピーが作成され、副作用としてターゲットウィンドウに割り当てられます。このコピーは、スクリプトが終了するときにシステムによって破棄され、他のスクリプトはアクセスできない状態になります。したがって、すべてのウィンドウに表示される標準的な項目には、0&を使用しないようにしてください。代わりに、WM_SYSCOMMANDメッセージを直接投稿してください。例:

    ; [WinMinimize "A"]のように、最小化のためのシステム音も再生します。
     WM_SYSCOMMAND := 0x0112
     SC_MINIMIZE := 0xF020
    diff --git a/target/docs/lib/MouseClickDrag.htm b/target/docs/lib/MouseClickDrag.htm
    index 4565751d..f86ccdba 100644
    --- a/target/docs/lib/MouseClickDrag.htm
    +++ b/target/docs/lib/MouseClickDrag.htm
    @@ -56,7 +56,7 @@ 

    パラメータ

    備考

    SendModeで設定された送信方式を使用します。

    -

    Dragging can also be done via the various Send functions, which is more flexible because the mode can be specified via the function name. 事例:

    +

    Dragging can also be done via the various Send functions, which is more flexible because the mode can be specified via the function name. 例:

    SendEvent "{Click 6 52 Down}{click 45 52 Up}"

    上記の方法のもう一つの利点は、MouseClickDragとは異なり、ユーザーがシステムのコントロールパネルでマウスの左右のボタンを入れ替えた場合に自動的に補正されることです。

    SendPlayモードは、他のモードに比べ、より幅広いゲームにおいてマウスイベントを正常に発生させることができます。ただし、WordPadやMetapadなどのRichEditコントロールでは、SendPlayによるドラッグが効かない場合があります(他のコントロールも可能性があります)。

    diff --git a/target/docs/lib/MsgBox.htm b/target/docs/lib/MsgBox.htm index 8ac7fbe3..91d12467 100644 --- a/target/docs/lib/MsgBox.htm +++ b/target/docs/lib/MsgBox.htm @@ -254,7 +254,7 @@

    エラー処理

    備考

    メッセージボックスは通常このように表示されます:

    MsgBox -

    ユーザーがどのボタンを押したかを判断するには、関数の戻り値を使用します。事例:

    +

    ユーザーがどのボタンを押したかを判断するには、関数の戻り値を使用します。例:

    Result := MsgBox("Would you like to continue?(press Yes or No)",, "YesNo")
     if Result = "Yes"
         MsgBox "You pressed Yes."
    diff --git a/target/docs/lib/Object.htm b/target/docs/lib/Object.htm
    index f7322b27..a7bcb34a 100644
    --- a/target/docs/lib/Object.htm
    +++ b/target/docs/lib/Object.htm
    @@ -179,7 +179,7 @@ 

    エラー処理

    プロパティゲッターを呼ばずに自分のプロパティを列挙したり、型に関係なくすべてのプロパティを列挙するには、forループやenumeratorに単一の変数のみを渡します。GetOwnPropDescは、値プロパティと動的プロパティを区別するために使用でき、同時に値またはゲッター/セッター/メソッドを取得することもできます。

    -

    なぜなら、プロパティの評価は、通常、オブジェクトに対応するゲッターや値があるかどうか(同じオブジェクトかベースオブジェクトのいずれか)に依存するからです。2つの変数が指定された場合の矛盾を避けるため、OwnPropsはCallアクセサー関数のみを持つ自身のプロパティをスキップする。事例:

    +

    なぜなら、プロパティの評価は、通常、オブジェクトに対応するゲッターや値があるかどうか(同じオブジェクトかベースオブジェクトのいずれか)に依存するからです。2つの変数が指定された場合の矛盾を避けるため、OwnPropsはCallアクセサー関数のみを持つ自身のプロパティをスキップする。例:

    • OwnPropsはゲッターが定義されていない場合、メソッドそのものを返すので、ゲッターを定義するとメソッドが返されなくなります。2変数モードでメソッドを取得するスクリプトは、いくつかのメソッドを見逃すことになります。
    • ゲッターがベースオブジェクトによって定義されている場合に、OwnPropsがメソッド自体を返すと、プロパティの通常の評価と矛盾することになります。
    • diff --git a/target/docs/lib/OnMessage.htm b/target/docs/lib/OnMessage.htm index 050c715d..9ed89af6 100644 --- a/target/docs/lib/OnMessage.htm +++ b/target/docs/lib/OnMessage.htm @@ -66,7 +66,7 @@

      使用方法

      Additional Information Available to the Callback

      In addition to the received parameters mentioned above, the callback may also consult the built-in variable A_EventInfo, which contains 0 if the message was sent via SendMessage. PostMessageで送信された場合、メッセージが投稿されたtick-count の時間が含まれます。

      -

      A callback's last found window starts off as the parent window to which the message was sent (even if it was sent to a control). ウィンドウが隠れていてもGUIウィンドウ(スクリプトのメインウィンドウなど)でない場合は、DetectHiddenWindowsをオンにしてから使用します。事例:

      +

      A callback's last found window starts off as the parent window to which the message was sent (even if it was sent to a control). ウィンドウが隠れていてもGUIウィンドウ(スクリプトのメインウィンドウなど)でない場合は、DetectHiddenWindowsをオンにしてから使用します。例:

      DetectHiddenWindows True
       MsgParentWindow := WinExist()  ; This stores the unique ID of the window to which the message was sent.
      diff --git a/target/docs/lib/Reload.htm b/target/docs/lib/Reload.htm index 14a6f40e..9ba928c6 100644 --- a/target/docs/lib/Reload.htm +++ b/target/docs/lib/Reload.htm @@ -28,7 +28,7 @@

      Reload

      Edit return

    以前のスクリプトのインスタンスは、#SingleInstanceと同じメカニズムで識別され、同じ制限があります。

    -

    スクリプトが複数のインスタンスを許可している場合、Reloadが正しいインスタンスを識別できないことがあります。最も簡単な方法は、新しいインスタンスを実行し、終了することです。事例:

    +

    スクリプトが複数のインスタンスを許可している場合、Reloadが正しいインスタンスを識別できないことがあります。最も簡単な方法は、新しいインスタンスを実行し、終了することです。例:

    if A_IsCompiled
         Run Format('"{1}" /force', A_ScriptFullPath)
     else
    diff --git a/target/docs/lib/Run.htm b/target/docs/lib/Run.htm
    index 2bdb85ad..1bee5cae 100644
    --- a/target/docs/lib/Run.htm
    +++ b/target/docs/lib/Run.htm
    @@ -64,7 +64,7 @@ 

    戻り値

    RunWaitはRunと異なり、Targetがクローズされるか終了するまで待機し、その時の戻り値はプログラムの終了コード(符号付き32ビット整数)となります。プログラムによっては、まだ実行中であるにもかかわらず、すぐに戻ってくるように見えるものがありますが、これは別のプロセスを生成するものです。

    エラー処理

    -

    Targetを起動できない場合、Try/Catch文によってエラーが捕捉されない限り、例外が発生し(つまり、エラーウィンドウが表示され)、現在のスレッドが終了する。事例:

    +

    Targetを起動できない場合、Try/Catch文によってエラーが捕捉されない限り、例外が発生し(つまり、エラーウィンドウが表示され)、現在のスレッドが終了する。例:

    try
         Run "NonExistingFile"
     catch
    @@ -89,7 +89,7 @@ 

    備考

    ComSpec(cmd.exe)を使ってプログラムを実行する場合(プログラムの入力や出力をリダイレクトする必要があるため)、実行ファイルのパスや名前にスペースが含まれている場合は、その文字列全体を外側の引用符で囲む必要があります。以下の例では、外側の引用符が黄色で強調表示されています:

    Run A_ComSpec ' /c ""C:\My Utility.exe" "param 1" "second param" >"C:\My File.txt""'

    Run "C:\My Documents\Test.txt"よりもRun 'C:\Windows\Notepad.exe "C:\My Documents\Test.txt"'のようにTargetが完全パスであればパフォーマンスは若干向上するかもしれません。

    -

    Special CLSIDs may be opened via Run. Most of them can be opened by using the shell: prefix. Some can be opened without it. 事例:

    +

    Special CLSIDs may be opened via Run. Most of them can be opened by using the shell: prefix. Some can be opened without it. 例:

    Run "shell:::{D20EA4E1-3957-11D2-A40B-0C5020524153}"  ; Windows Tools.
     Run "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}"  ; PC(従来のマイコンピュータまたはコンピュータ)
     Run "::{645FF040-5081-101B-9F08-00AA002F954E}"  ; ごみ箱
    diff --git a/target/docs/lib/Send.htm b/target/docs/lib/Send.htm index ecd9ead4..4dc1eb0a 100644 --- a/target/docs/lib/Send.htm +++ b/target/docs/lib/Send.htm @@ -490,11 +490,11 @@

    キー名

    鍵盤の繰り返しや長押し

    -

    キー操作のリピート:中括弧で囲んで、キーの名前と、それを繰り返す回数を指定します。事例:

    +

    キー操作のリピート:中括弧で囲んで、キーの名前と、それを繰り返す回数を指定します。例:

    Send "{DEL 4}"  ; Presses the Delete key 4 times.
     Send "{S 30}"   ; Sends 30 uppercase S characters.
     Send "+{TAB 4}"  ; Presses Shift-Tab 4 times.
    -

    キーを押したままにしたり離したりするには:キーの名前の後にDownまたはUpという単語を中括弧で囲みます。事例:

    +

    キーを押したままにしたり離したりするには:キーの名前の後にDownまたはUpという単語を中括弧で囲みます。例:

    Send "{b down}{b up}"
     Send "{TAB down}{TAB up}"
     Send "{Up down}"  ; Presses down the up-arrow key.
    diff --git a/target/docs/lib/SendMessage.htm b/target/docs/lib/SendMessage.htm
    index 818c1161..1c3bf37d 100644
    --- a/target/docs/lib/SendMessage.htm
    +++ b/target/docs/lib/SendMessage.htm
    @@ -72,7 +72,7 @@ 

    エラー処理

    備考

    誤ったウィンドウにメッセージを送信したり、無効なメッセージを送信したりすると、予期せぬ動作が発生したり、ターゲットアプリケーションがクラッシュしたりする可能性があるため、この関数は慎重に使用しなければなりません。これは、ほとんどのアプリケーションが、外部ソースからのある種のメッセージを期待するように設計されていないためです。

    SendMessageは、ターゲットウィンドウがメッセージを処理するのを、タイムアウト時間まで待ちます。一方、PostMessageは、確認や返信を待たずに、ターゲットウィンドウに関連するメッセージキューにメッセージを配置します。

    -

    文字列パラメータは、アドレスで渡す必要があります。事例:

    +

    文字列パラメータは、アドレスで渡す必要があります。例:

    ListVars
     WinWaitActive "ahk_class AutoHotkey"
     SendMessage 0x000C, 0, StrPtr("New Title")  ; 0X000CはWM_SETTEXTです。
    diff --git a/target/docs/lib/SendMode.htm b/target/docs/lib/SendMode.htm index c7e3e270..f611a3bc 100644 --- a/target/docs/lib/SendMode.htm +++ b/target/docs/lib/SendMode.htm @@ -45,7 +45,7 @@

    戻り値

    備考

    If SendMode is not used, the default mode is Input.

    -

    Since SendMode also changes the mode of Click, MouseMove, MouseClick, and MouseClickDrag, there may be times when you wish to use a different mode for a particular mouse event. 一番簡単なのは{クリック}で行う方法です。事例:

    +

    Since SendMode also changes the mode of Click, MouseMove, MouseClick, and MouseClickDrag, there may be times when you wish to use a different mode for a particular mouse event. 一番簡単なのは{クリック}で行う方法です。例:

    SendEvent "{Click 100 200}"  ; SendEvent uses the older, traditional method of clicking.

    スクリプト起動時にSendModeを使用した場合、キーボードとマウスのリマッピングにも影響します。特に、SendMode "Play"をリマッピングで使用する場合は、SendPlayリマッピングの制限を参照してください。

    組込変数A_SendModeには、現在の設定が格納されています。

    diff --git a/target/docs/lib/Sound.htm b/target/docs/lib/Sound.htm index f6fe8d42..12b2964f 100644 --- a/target/docs/lib/Sound.htm +++ b/target/docs/lib/Sound.htm @@ -27,7 +27,7 @@

    Sound関数

    Endpoint Devices

    -

    SoundGet関数とSoundSet関数が参照する「デバイス」は、オーディオエンドポイントデバイスである。1つのデバイスドライバや物理デバイスが、異なるタイプの出力や入力など、複数のエンドポイントを持つことはよくある。事例:

    +

    SoundGet関数とSoundSet関数が参照する「デバイス」は、オーディオエンドポイントデバイスである。1つのデバイスドライバや物理デバイスが、異なるタイプの出力や入力など、複数のエンドポイントを持つことはよくある。例:

    diff --git a/target/docs/lib/StrCompare.htm b/target/docs/lib/StrCompare.htm index ee5fcfbc..062df139 100644 --- a/target/docs/lib/StrCompare.htm +++ b/target/docs/lib/StrCompare.htm @@ -41,7 +41,7 @@

    戻り値

  • 正の整数, String1String2より大きい場合
  • 負の整数、String1String2より小さい場合
  • -

    2つの文字列間の特定の関係をチェックするには、結果を0と比較する。事例:

    +

    2つの文字列間の特定の関係をチェックするには、結果を0と比較する。例:

    a_less_than_b := StrCompare(a, b) < 0
     a_greater_than_or_equal_to_b := StrCompare(a, b) >= 0
    diff --git a/target/docs/lib/StrLower.htm b/target/docs/lib/StrLower.htm index 8d019257..1adb6093 100644 --- a/target/docs/lib/StrLower.htm +++ b/target/docs/lib/StrLower.htm @@ -34,7 +34,7 @@

    戻り値

    これらの関数は、指定された文字列を新しく変換したものを返す。

    備考

    -

    文字や文字列がすべて大文字か小文字かを検出するには、IsUpper関数、IsLower関数、RegExMatch関数を使用する。事例:

    +

    文字や文字列がすべて大文字か小文字かを検出するには、IsUpper関数、IsLower関数、RegExMatch関数を使用する。例:

    var := "abc"
     if isUpper(var)
         MsgBox "var is empty or contains only uppercase characters."
    diff --git a/target/docs/lib/StrSplit.htm b/target/docs/lib/StrSplit.htm
    index 927a6af3..0e39533d 100644
    --- a/target/docs/lib/StrSplit.htm
    +++ b/target/docs/lib/StrSplit.htm
    @@ -54,7 +54,7 @@ 

    備考

    スペースやタブなどの空白文字は、DelimitersまたはOmitCharsパラメータにそれらの文字が含まれていない限り保持されます。スペースやタブは、Trimを使うことで変数の両端から切り取ることができる。事例:Var := Trim(Var)

    標準的なCSV(カンマ区切り値)形式の文字列を分割するには、CSV処理が組み込まれている構文解析ループを使用する。

    フィールドを分割する前に別の順序で並べるには、ソート機能を使用します。

    -

    部分文字列を永久にメモリに保存する必要がない場合は、構文解析ループを使用することを検討する。特にStringが非常に大きい場合は、大量のメモリを節約できる。事例:

    +

    部分文字列を永久にメモリに保存する必要がない場合は、構文解析ループを使用することを検討する。特にStringが非常に大きい場合は、大量のメモリを節約できる。例:

    Colors := "red,green,blue"
     Loop Parse, Colors, ","
         MsgBox "Color number " A_Index " is " A_LoopField
    diff --git a/target/docs/lib/SysGetIPAddresses.htm b/target/docs/lib/SysGetIPAddresses.htm index 2eded577..0da5ef5c 100644 --- a/target/docs/lib/SysGetIPAddresses.htm +++ b/target/docs/lib/SysGetIPAddresses.htm @@ -26,7 +26,7 @@

    戻り値

    備考

    現在のところ、IPv4のみがサポートされている。

    -

    この関数は、コンピュータのネットワーク・アダプターのIPアドレスのみを返す。コンピューターがルーターを経由してインターネットに接続されている場合、これにはコンピューターのパブリック(インターネット)IPアドレスは含まれません。コンピュータのパブリックIPアドレスを調べるには、外部のウェブAPIを使用する。事例:

    +

    この関数は、コンピュータのネットワーク・アダプターのIPアドレスのみを返す。コンピューターがルーターを経由してインターネットに接続されている場合、これにはコンピューターのパブリック(インターネット)IPアドレスは含まれません。コンピュータのパブリックIPアドレスを調べるには、外部のウェブAPIを使用する。例:

    whr := ComObject("WinHttp.WinHttpRequest.5.1")
     whr.Open("GET", "https://api.ipify.org")
     whr.Send()
    diff --git a/target/docs/lib/Thread.htm b/target/docs/lib/Thread.htm
    index 22098784..d4bd536e 100644
    --- a/target/docs/lib/Thread.htm
    +++ b/target/docs/lib/Thread.htm
    @@ -37,7 +37,7 @@ 

    Priority

    スレッド「優先度」、レベル

    現在のスレッドの新しい優先度を示す -2147483648 から 2147483647 までの整数(または)をLevelに指定する。これは他のスレッドには影響しない。詳細はスレッドを参照。

    イベントをバッファリングする能力があるため、一般的には、このサブファンクションよりもクリティカルファンクションの方が優れている。

    -

    関連して、スクリプト全体のOSの優先度は、ProcessSetPriorityで変更できる。事例:

    +

    関連して、スクリプト全体のOSの優先度は、ProcessSetPriorityで変更できる。例:

    ProcessSetPriority "High"

    Interrupt

    diff --git a/target/docs/lib/Throw.htm b/target/docs/lib/Throw.htm index 5e50ad82..d19f89ef 100644 --- a/target/docs/lib/Throw.htm +++ b/target/docs/lib/Throw.htm @@ -20,7 +20,7 @@

    パラメータ

    Value
    -

    スローする値。通常はErrorオブジェクト。事例:

    +

    スローする値。通常はErrorオブジェクト。例:

    throw ValueError("Parameter #1 invalid", -1, theBadParam)

    あらゆる種類の値を投げることができるが、クラスを指定せずにCatchを使用した場合(またはCatchFinallyを指定せずにTryを使用した場合)、Errorクラスのインスタンスのみをキャッチする。

    Catchの中で実行されている間は、Valueを省略することで、キャッチした値を再スローすることができる(そのためだけに出力変数を指定する必要はない)。これはネストされたTry-Finally内でもサポートされるが、ネストされたTry-Catch内ではサポートされない。throwの行は、Catch文の本体に物理的に含まれる必要はない。

    diff --git a/target/docs/lib/TrayTip.htm b/target/docs/lib/TrayTip.htm index 611d14e9..1d82264c 100644 --- a/target/docs/lib/TrayTip.htm +++ b/target/docs/lib/TrayTip.htm @@ -101,9 +101,9 @@

    パラメータ

    Hiding the Traytip

    -

    To hide the traytip, omit all parameters (or at least the Text and Title parameters). 事例:

    +

    To hide the traytip, omit all parameters (or at least the Text and Title parameters). 例:

    TrayTip
    -

    To hide the traytip on Windows 10, temporarily remove the tray icon (which not always work, according to at least one report). 事例:

    +

    To hide the traytip on Windows 10, temporarily remove the tray icon (which not always work, according to at least one report). 例:

    TrayTip "#1", "This is TrayTip #1"
     Sleep 3000   ; Let it display for 3 seconds.
     HideTrayTip
    diff --git a/target/docs/lib/TreeView.htm b/target/docs/lib/TreeView.htm
    index 47bdbe4a..c54671b1 100644
    --- a/target/docs/lib/TreeView.htm
    +++ b/target/docs/lib/TreeView.htm
    @@ -355,7 +355,7 @@ 

    イベント

    OnNotifyを使用することで、追加の(ほとんど使用されない)通知を検出することができます。これらの通知については、Microsoft Docsで文書化されています。Microsoft Docsには、各通知コードの数値は掲載されていませんので、Windows SDKやインターネットで検索してご確認ください。

    備考

    -

    TreeViewにフォーカスがある状態でユーザーがEnterを押したことを検出するには、デフォルトのボタンを使用します(必要に応じて非表示にすることができます)。事例:

    +

    TreeViewにフォーカスがある状態でユーザーがEnterを押したことを検出するには、デフォルトのボタンを使用します(必要に応じて非表示にすることができます)。例:

    MyGui.Add("Button", "Hidden Default", "OK").OnEvent("Click", ButtonOK)
     ...
     ButtonOK(*) {
    diff --git a/target/docs/lib/Try.htm b/target/docs/lib/Try.htm
    index 600e66ea..8995666f 100644
    --- a/target/docs/lib/Try.htm
    +++ b/target/docs/lib/Try.htm
    @@ -29,7 +29,7 @@ 

    備考

  • 一致するCatch文またはFinally文がない場合、値は自動的に再度スローされる(前述のようにCatchまたはFinallyがまったくない場合を除く)。
  • 最後のCatchは、オプションで次のように続けることができます。 Else。例外がスローされることなく(ReturnBreakなどで制御が他に移ることなく)Try文が完了すると、Else文が実行される。Else文でスローされた例外は、関連するTry文では処理されませんが、それを囲んでいるTry文によって処理される場合があります。Finallyも存在できるが、Elseの後に置かなければならず、常に最後に実行される。

    -

    One True Brace(OTB)スタイルは、オプションでTryステートメントと一緒に使用することができます。事例:

    +

    One True Brace(OTB)スタイルは、オプションでTryステートメントと一緒に使用することができます。例:

    try {
         ...
     } catch Error as err {
    diff --git a/target/docs/lib/Until.htm b/target/docs/lib/Until.htm
    index 4ffd9dd4..057bdc90 100644
    --- a/target/docs/lib/Until.htm
    +++ b/target/docs/lib/Until.htm
    @@ -34,11 +34,11 @@ 

    備考

    if (Expression) break }
    -

    しかし、ループ・アンティル(Loop Until)の方が理解しやすい場合が多く、上記とは異なり、1行のアクションで使用することができる。事例:

    +

    しかし、ループ・アンティル(Loop Until)の方が理解しやすい場合が多く、上記とは異なり、1行のアクションで使用することができる。例:

    Loop
         x *= 2
     Until x > y
    -

    Untilは、どんなループやForでも使える。事例:

    +

    Untilは、どんなループやForでも使える。例:

    Loop Read, A_ScriptFullPath
         lines .= A_LoopReadLine . "`n"
     Until A_Index=5  ; Read the first five lines.
    diff --git a/target/docs/lib/VerCompare.htm b/target/docs/lib/VerCompare.htm
    index 44d5cc5f..e5c870ba 100644
    --- a/target/docs/lib/VerCompare.htm
    +++ b/target/docs/lib/VerCompare.htm
    @@ -37,7 +37,7 @@ 

    戻り値

  • 正の整数は、VersionAVersionBより大きい場合
  • 負の整数は、VersionAVersionBより小さい場合
  • -

    2つの文字列間の特定の関係をチェックするには、結果を0と比較する。事例:

    +

    2つの文字列間の特定の関係をチェックするには、結果を0と比較する。例:

    a_less_than_b := VerCompare(a, b) < 0
     a_greater_than_or_equal_to_b := VerCompare(a, b) >= 0
    diff --git a/target/docs/lib/WinWaitClose.htm b/target/docs/lib/WinWaitClose.htm index b4700dbc..f69717ec 100644 --- a/target/docs/lib/WinWaitClose.htm +++ b/target/docs/lib/WinWaitClose.htm @@ -43,7 +43,7 @@

    備考

    WinTitleピュアHWNDIntegerまたはHWNDプロパティを持つObjectとして)を指定した場合、隠しウィンドウはDetectHiddenWindowsを使用したときのみ検出されます。これは、WinWaitとWinWaitCloseにのみ適用されます。他のウィンドウ関数の場合、pure HWNDを指定すると、DetectHiddenWindowsに関係なく隠しウィンドウが検出されます。

    "A"はその時点でアクティブなウィンドウにマッチするので、WinWaitClose "A"は通常無期限に待つ。現在のアクティブ・ウィンドウが閉じるのを待つには、次の例のようにタイトルかユニークIDを指定する:

    WinWaitClose WinExist("A")
    -

    WinWaitCloseは、一致するウィンドウが見つかるたびに、最後に見つかったウィンドウを更新します。この用途のひとつは、ファンクションがタイムアウトした後にウィンドウを特定したり操作したりすることである。事例:

    +

    WinWaitCloseは、一致するウィンドウが見つかるたびに、最後に見つかったウィンドウを更新します。この用途のひとつは、ファンクションがタイムアウトした後にウィンドウを特定したり操作したりすることである。例:

     Gui("", "Test window " Random()).Show("w300 h50")  ; Show a test window.
     if !WinWaitClose("Test",, 5)  ; Wait 5 seconds for someone to close it.
    diff --git a/target/docs/lib/_DllLoad.htm b/target/docs/lib/_DllLoad.htm
    index 16b94599..aab0fed5 100644
    --- a/target/docs/lib/_DllLoad.htm
    +++ b/target/docs/lib/_DllLoad.htm
    @@ -32,7 +32,7 @@ 

    パラメータ

    備考

    このディレクティブによって一度ロードされたDLLやEXEは、システムの関数FreeLibraryを呼び出すことによってアンロードすることができません。スクリプトの終了時には、ロードされたすべてのファイルが自動的にアンロードされます。

    -

    ファイルパスの前に *iと1 つのスペースを付けると、プログラムはファイルの読み込みに失敗しても無視します。このオプションは、DLLやEXEが必須でないなど、障害があってもスクリプトが実行できる場合、またはスクリプトが障害を検出するように設計されている場合にのみ使用する必要があります。事例:

    +

    ファイルパスの前に *iと1 つのスペースを付けると、プログラムはファイルの読み込みに失敗しても無視します。このオプションは、DLLやEXEが必須でないなど、障害があってもスクリプトが実行できる場合、またはスクリプトが障害を検出するように設計されている場合にのみ使用する必要があります。例:

    #DllLoad "*i MyDLL"
     if !DllCall("GetModuleHandle", "str", "MyDLL")
         MsgBox "Failed to load MyDLL!"
    diff --git a/target/docs/lib/_ErrorStdOut.htm b/target/docs/lib/_ErrorStdOut.htm index d1b2564a..5586f647 100644 --- a/target/docs/lib/_ErrorStdOut.htm +++ b/target/docs/lib/_ErrorStdOut.htm @@ -30,10 +30,10 @@

    備考

    If this directive is unspecified in the script, any syntax error is displayed in a dialog.

    エラーは標準出力ではなく、標準エラーに書き込まれます。コマンドプロンプトやファンシーエディターでは、通常両方表示されます。

    これにより、TextPad、SciTE、Crimson、EditPlusなどの高級エディタは、シンタックスエラーが発生したときに問題のある行にジャンプすることができます。#ErrorStdOutディレクティブはすべてのスクリプトに追加する必要があるため、通常はAutoHotkeyスクリプトを起動する際にコマンドラインスイッチ /ErrorStdOutを使用するようにエディタを設定する方がよいでしょう(設定方法は以下をご覧ください)。

    -

    AutoHotkeyはコンソールプログラムではないので、コマンドプロンプトに直接エラーが表示されることはありません。これは、1)Ahk2Exe ConsoleAppディレクティブでスクリプトをコンパイルするか、2)パイプやリダイレクトでスクリプトの出力をキャプチャすることで回避することができます。事例:

    +

    AutoHotkeyはコンソールプログラムではないので、コマンドプロンプトに直接エラーが表示されることはありません。これは、1)Ahk2Exe ConsoleAppディレクティブでスクリプトをコンパイルするか、2)パイプやリダイレクトでスクリプトの出力をキャプチャすることで回避することができます。例:

    "C:\Program Files\AutoHotkey\AutoHotkey.exe" /ErrorStdOut "My Script.ahk" 2>&1 |more
     "C:\Program Files\AutoHotkey\AutoHotkey.exe" /ErrorStdOut "My Script.ahk" 2>"Syntax-Error Log.txt"
    -

    また、オペレーティングシステムに内蔵されたクリップコマンドを使用すれば、出力を直接クリップボードにパイプすることができます。事例:

    +

    また、オペレーティングシステムに内蔵されたクリップコマンドを使用すれば、出力を直接クリップボードにパイプすることができます。例:

    "C:\Program Files\AutoHotkey\AutoHotkey.exe" /ErrorStdOut "My Script.ahk" 2>&1 |clip

    注: 2>&1はstderrをstdoutにリダイレクトさせ、2>Filenameは、stderrのみをファイルにリダイレクトさせる。

    他のディレクティブと同様に、#ErrorStdOutは条件付きで実行することはできません。

    diff --git a/target/docs/lib/_HotIf.htm b/target/docs/lib/_HotIf.htm index f324d8bf..02d51a35 100644 --- a/target/docs/lib/_HotIf.htm +++ b/target/docs/lib/_HotIf.htm @@ -30,24 +30,24 @@

    パラメータ

    基本操作

    The #HotIf directive sets the expression which will be used by subsequently created hotkeys and hotstrings to determine whether they should activate. This expression is evaluated when the hotkey's key, mouse button or combination is pressed, when the hotstring's abbreviation is typed, or at other times when the program needs to know whether the hotkey or hotstring is active.

    -

    To make context-sensitive hotkeys and hotstrings, simply precede them with the #HotIf directive. 事例:

    +

    To make context-sensitive hotkeys and hotstrings, simply precede them with the #HotIf directive. 例:

    #HotIf WinActive("ahk_class Notepad") or WinActive(MyWindowTitle)
     #Space::MsgBox "You pressed Win+Spacebar in Notepad or " MyWindowTitle
     :X:btw::MsgBox "You typed btw in Notepad or " MyWindowTitle

    #HotIf指令は位置指定:#HotIfは、次の#HotIfディレクティブまで、スクリプト内で物理的にその下にあるすべてのホットキーとホットストリングに影響を及ぼします。

    注: if文とは異なり、中括弧は#HotIf指示文では効果がありません。

    The #HotIf directive only affects hotkeys and hotstrings created via the double-colon syntax, such as ^!c:: or ::btw::. For hotkeys and hotstrings created via the Hotkey or Hotstring function, use the HotIf function.

    -

    文脈依存性をオフにするには、#HotIfを無表現で指定します。事例:

    +

    文脈依存性をオフにするには、#HotIfを無表現で指定します。例:

    #HotIf

    他のディレクティブと同様に、#HotIfは条件付きで実行することはできません。

    マウスやキーボードのホットキーが#HotIfによって無効化されると、本来の機能を発揮します。つまり、そのようなホットキーがないかのように、アクティブウィンドウに通過します。There is one exception: Controller hotkeys: although #HotIf works, it never prevents other programs from seeing the press of a button.

    -

    #HotIfは、EnterSpaceなどの通常のキーの動作を変更するためにも使用できます。これは、特定のウィンドウがそのキーを無視したり、好ましくない動作をする場合に有効です。事例:

    +

    #HotIfは、EnterSpaceなどの通常のキーの動作を変更するためにも使用できます。これは、特定のウィンドウがそのキーを無視したり、好ましくない動作をする場合に有効です。例:

    #HotIf WinActive("Reminders ahk_class #32770")  ; Outlookの「リマインダー」ウィンドウ。
     Enter::Send "!o"  ; Enterキーを押すと、選択したリマインダーをスヌーズするのではなく、開くようにします。
     #HotIf

    Variants (Duplicates)

    -

    特定のホットキーホットストリングは、それぞれの定義が異なるHotIf基準であれば、スクリプト内で複数回定義することができます。These are known as hotkey variants or hotstring variants. 事例:

    +

    特定のホットキーホットストリングは、それぞれの定義が異なるHotIf基準であれば、スクリプト内で複数回定義することができます。These are known as hotkey variants or hotstring variants. 例:

    #HotIf WinActive("ahk_class Notepad")
     ^!c::MsgBox "You pressed Control+Alt+C in Notepad."
     #HotIf WinActive("ahk_class WordPadClass")
    @@ -57,7 +57,7 @@ 

    Variants (Duplicates)

    複数のバリアントが発射対象となる場合、スクリプトの先頭に最も近いものだけが発射されます。ただし、グローバルバリアント(HotIfの基準がないもの)については例外です:常に最も低い優先順位を持つので、他の variant が適格でない場合にのみ発火します(この例外はホットストリングには適用されません)。

    重複するホットキーを作成する場合、^!+#などの修飾記号の順番は関係ありません。例えば、^!c!^cと同じです。ただし、キーは一貫したスペルで表記する必要があります。例えば、Escはこの目的ではEscapeと同じではありません(ただし、ケースは重要ではありません)。また、ワイルドカード接頭辞(*)を持つホットキーは、ワイルドカードでないものと全く別物です。例えば、*F1F1は、それぞれ独自のバリアントセットを持っているでしょう。

    -

    A window group can be used to make a hotkey or hotstring execute for a group of windows. 事例:

    +

    A window group can be used to make a hotkey or hotstring execute for a group of windows. 例:

     GroupAdd "MyGroup", "ahk_class Notepad"
     GroupAdd "MyGroup", "ahk_class WordPadClass"
    @@ -91,7 +91,7 @@ 

    最適化

  • 空白と括弧は、式がプリコンパイルされるときに完全に処理されるため、この最適化に影響しません。
  • これらの条件を満たす式は、プログラムによって直接評価され、ListLinesには表示されません。

    -

    Before the Hotkey or Hotstring function is used to modify an existing hotkey or hotstring variant, typically the HotIf function must be used with the original expression text. ただし、所定の条件の組み合わせを持つ最初のユニークな表現は、その条件によって参照することも可能です。事例:

    +

    Before the Hotkey or Hotstring function is used to modify an existing hotkey or hotstring variant, typically the HotIf function must be used with the original expression text. ただし、所定の条件の組み合わせを持つ最初のユニークな表現は、その条件によって参照することも可能です。例:

     HotIfWinExist "ahk_class Notepad"
     Hotkey "#n", "Off"  ; ホットキーをオフにします。
    @@ -111,7 +111,7 @@ 

    総論

    また、#HotIfは、適切な場合、プレフィックスキーを本来の機能に戻します(プレフィックスキーは、a & bのようなホットキーのAです)。この現象は、指定したプリフィクスに対して有効なホットキーがない場合に発生します。

    ホットキーが#HotIfによって現在無効になっている場合、そのキーまたはマウスボタンは、KeyHistoryの「Type」列に「#」文字で表示されます。This can help debug a script.

    Alt-tabのホットキーは、#HotIfの影響を受けません:これらはすべてのウィンドウで有効です。

    -

    Last Found Windowは、#HotIfで設定することができます。事例:

    +

    Last Found Windowは、#HotIfで設定することができます。例:

    #HotIf WinExist("ahk_class Notepad")
     #n::WinActivate  ; WinExist()で見つかったウィンドウをアクティブにします。
    diff --git a/target/docs/lib/_Hotstring.htm b/target/docs/lib/_Hotstring.htm index f78468ee..757d7777 100644 --- a/target/docs/lib/_Hotstring.htm +++ b/target/docs/lib/_Hotstring.htm @@ -29,7 +29,7 @@

    パラメータ

    EndChars NewChars

    型:文字列

    -

    EndCharsの後に半角スペースを挟んで新しいエンディングキャラクターを指定します。事例:

    +

    EndCharsの後に半角スペースを挟んで新しいエンディングキャラクターを指定します。例:

    #Hotstring EndChars -()[]{}':;"/\,.?!`n`s`t

    新しいエンディングキャラクターは、EndCharsディレクティブの出現場所に関係なく、スクリプト全体に対してグローバルに有効であるため、EndCharsを2回以上指定する必要はありません。

    エンディングキャラクターの最大文字数は100文字です。この長さを超える文字は無視されます。

    diff --git a/target/docs/misc/CLSID-List.htm b/target/docs/misc/CLSID-List.htm index 7926b550..30f4a74b 100644 --- a/target/docs/misc/CLSID-List.htm +++ b/target/docs/misc/CLSID-List.htm @@ -21,9 +21,9 @@

    CLSIDリスト(Windowsクラス識別子)

    -

    オペレーティング・システム内の特定の特別なフォルダは、固有の文字列で識別される。これらの文字列のいくつかは、DirSelectで使うことができる。事例:

    +

    オペレーティング・システム内の特定の特別なフォルダは、固有の文字列で識別される。これらの文字列のいくつかは、DirSelectで使うことができる。例:

    DirSelect("::{20D04FE0-3AEA-1069-A2D8-08002B30309D}")  ; Select a folder within This PC (formerly My Computer or Computer).
    -

    To open a CLSID via Run, simply specify the CLSID as the first parameter. Most of the CLSIDs in the table below can be opened by using Run "shell:CLSID". Some can be opened without the shell: prefix. 事例:

    +

    To open a CLSID via Run, simply specify the CLSID as the first parameter. Most of the CLSIDs in the table below can be opened by using Run "shell:CLSID". Some can be opened without the shell: prefix. 例:

    Run "shell:::{D20EA4E1-3957-11D2-A40B-0C5020524153}"  ; Windows Tools.
     Run "::{21EC2020-3AEA-1069-A2DD-08002B30309D}"  ; All Control Panel Items.
     Run "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}"  ; PC(従来のマイコンピュータまたはコンピュータ)
    diff --git a/target/docs/misc/EscapeChar.htm b/target/docs/misc/EscapeChar.htm
    index 18a7f73c..122b4d69 100644
    --- a/target/docs/misc/EscapeChar.htm
    +++ b/target/docs/misc/EscapeChar.htm
    @@ -72,7 +72,7 @@ 

    エスケープシーケンス

    - +
    名前説明
    Speakers (Example HD Audio)本機の主なアナログ出力端子(サラウンド・サウンドの場合は複数の端子を使用)。
    `"`'しまシングルクオートマーク(')とダブルクオートマーク(")は、シングルクオートマークで囲まれた文字列がリテラルダブルクオートマークを含むことができ、その逆も可能であることを除いて、同じように機能します。従って、リテラル文字列の中に実際の引用符を含めるには、引用符をエスケープするか、文字列を反対のタイプの引用符で囲む。For example: Var := "The color `"red`" was found." or Var := 'The color "red" was found.'.シングルクオートマーク(')とダブルクオートマーク(")は、シングルクオートマークで囲まれた文字列がリテラルダブルクオートマークを含むことができ、その逆も可能であることを除いて、同じように機能します。従って、リテラル文字列の中に実際の引用符を含めるには、引用符をエスケープするか、文字列を反対のタイプの引用符で囲む。For example: Var := "The color `"red`" was found." or Var := 'The color "red" was found.'.
    diff --git a/target/docs/misc/Functor.htm b/target/docs/misc/Functor.htm index 59dda558..34ec7fda 100644 --- a/target/docs/misc/Functor.htm +++ b/target/docs/misc/Functor.htm @@ -92,7 +92,7 @@

    BoundFuncオブジェクト

  • Func.Bindメソッドを呼び出すことで、パラメータ値を関数にバインドする。
  • ObjBindMethod関数を呼び出すことで、パラメータ値とメソッド名をターゲット・オブジェクトにバインドする。
  • -

    BoundFuncオブジェクトは、以下の例のように呼び出すことができる。BoundFuncが呼び出されると、バインドされている関数やメソッドが呼び出され、バインドされているパラメータと呼び出し元のパラメータの組み合わせが渡される。未束縛のパラメータ位置は、呼び出し元のパラメータリストから左から右へと割り当てられる。事例:

    +

    BoundFuncオブジェクトは、以下の例のように呼び出すことができる。BoundFuncが呼び出されると、バインドされている関数やメソッドが呼び出され、バインドされているパラメータと呼び出し元のパラメータの組み合わせが渡される。未束縛のパラメータ位置は、呼び出し元のパラメータリストから左から右へと割り当てられる。例:

    fn := RealFn.Bind(1)  ; Bind first parameter only
     fn(2)      ; 「1, 2」と表示します
     fn.Call(3) ; 「1, 3」と表示します
    @@ -105,7 +105,7 @@ 

    BoundFuncオブジェクト

    RealFn(a, b, c?) { MsgBox a ", " b (IsSet(c) ? ", " c : "") }
    -

    ObjBindMethodは、メソッド自体への参照を取得できない場合でも、メソッドにバインドするために使用できます。事例:

    +

    ObjBindMethodは、メソッド自体への参照を取得できない場合でも、メソッドにバインドするために使用できます。例:

    Shell := ComObject("Shell.Application")
     RunBox := ObjBindMethod(Shell, "FileRun")
     ; Show the Run dialog.
    diff --git a/target/docs/misc/LongPaths.htm b/target/docs/misc/LongPaths.htm
    index 28dbf5c0..718b1f1e 100644
    --- a/target/docs/misc/LongPaths.htm
    +++ b/target/docs/misc/LongPaths.htm
    @@ -33,7 +33,7 @@ 

    ロング・パスのプレフィックス

  • コンポーネント/ディレクトリのセパレータを正規化し、/\に置き換え、冗長なセパレータを削除します。
  • コンポーネント(dir.\file)の末尾のピリオド1個や、末尾のスペースやピリオド(dir\filename . .)など、特定の文字をトリムする。
  • -

    パスは、プレフィックスを適用する前に、以下に定義する関数でGetFullPathNameに渡すことで、明示的に正規化することができます。事例:

    +

    パスは、プレフィックスを適用する前に、以下に定義する関数でGetFullPathNameに渡すことで、明示的に正規化することができます。例:

    MsgBox "\\?\" NormalizePath("..\file.ext")
    NormalizePath(path) {
         cc := DllCall("GetFullPathName", "str", path, "uint", 0, "ptr", 0, "ptr", 0, "uint")
    diff --git a/target/docs/misc/RegExCallout.htm b/target/docs/misc/RegExCallout.htm
    index 4913f674..cb1d1ffb 100644
    --- a/target/docs/misc/RegExCallout.htm
    +++ b/target/docs/misc/RegExCallout.htm
    @@ -57,7 +57,7 @@ 

    RegEx コールアウト関数

  • 関数が-1未満の値を返した場合、PCREのエラーコードとして扱われ、マッチングは放棄されます。これにより、RegExMatchとRegExReplaceは例外をスローします。例外オブジェクトのExtraプロパティにはエラー・コードが含まれます。
  • -

    事例:

    +

    例:

    Haystack := "The quick brown fox jumps over the lazy dog."
     RegExMatch(Haystack, "i)(The) (\w+)\b(?CCallout)")
     Callout(m, *) {
    diff --git a/target/docs/misc/Remap.htm b/target/docs/misc/Remap.htm
    index 69d71b92..8461a69a 100644
    --- a/target/docs/misc/Remap.htm
    +++ b/target/docs/misc/Remap.htm
    @@ -38,7 +38,7 @@ 

    キーボードとマウスのリマッピング

    ^a::b

    マウスリマッピング

    -

    キーボードの代わりにマウスをリマップするには、同じ方法を使います。事例:

    +

    キーボードの代わりにマウスをリマップするには、同じ方法を使います。例:

    @@ -96,7 +96,7 @@

    その他の便利なリマッピング

    これらの例を「Remap.ahk」のような新しいテキストファイルにコピーし、ファイルを起動することで試すことができる。

    キーとマウスボタンの名前の完全なリストは、キーリストを参照してください。

    備考

    -

    #HotIfディレクティブは、選択したリマッピングを指定したウィンドウでのみ(または指定した条件が満たされている間)有効にするために使用できます。事例:

    +

    #HotIfディレクティブは、選択したリマッピングを指定したウィンドウでのみ(または指定した条件が満たされている間)有効にするために使用できます。例:

    #HotIf WinActive("ahk_class Notepad")
     a::b  ; Makes the 'a' key send a 'b' key, but only in Notepad.
     #HotIf  ; This puts subsequent remappings and hotkeys in effect for all windows.
    @@ -107,12 +107,12 @@

    備考

  • デスティネーションキーまたはボタンは、オリジンキーを押し続けている間、押し続けられる。ただし、リマッピングに対応していないゲームもあります。その場合、キーボードとマウスはリマッピングされていないものとして動作します。
  • リマップされたキーは、押したまま自動リピートされます(マウスボタンにリマップされたキーを除く)。
  • -

    リマップキーは通常のホットキーをトリガーできますが、デフォルトではマウスホットキーやフックホットキーをトリガーすることはできません(どのホットキーが「フック」なのかはListHotkeysを使って調べてください)。例えば、a::bのリマッピングが有効な場合、Ctrl+Alt+Aを押すと、^!bがフックホットキーでない場合のみ^!bホットキーがトリガーされます。^!bがフックホットキーである場合、Ctrl+Alt+ACtrl+Alt+Bと同じ動作をさせたい場合は、^!aをホットキーとして定義できます。事例:

    +

    リマップキーは通常のホットキーをトリガーできますが、デフォルトではマウスホットキーやフックホットキーをトリガーすることはできません(どのホットキーが「フック」なのかはListHotkeysを使って調べてください)。例えば、a::bのリマッピングが有効な場合、Ctrl+Alt+Aを押すと、^!bがフックホットキーでない場合のみ^!bホットキーがトリガーされます。^!bがフックホットキーである場合、Ctrl+Alt+ACtrl+Alt+Bと同じ動作をさせたい場合は、^!aをホットキーとして定義できます。例:

    a::b
     ^!a::
     ^!b::ToolTip "You pressed " ThisHotkey
     
    -

    Alternatively, #InputLevel can be used to override the default behaviour. 事例:

    +

    Alternatively, #InputLevel can be used to override the default behaviour. 例:

    #InputLevel 1
     a::b
     
    diff --git a/target/docs/misc/RemapController.htm b/target/docs/misc/RemapController.htm
    index 71541f38..14e0d322 100644
    --- a/target/docs/misc/RemapController.htm
    +++ b/target/docs/misc/RemapController.htm
    @@ -47,12 +47,12 @@ 

    さまざまなアプローチ

    以下、最も単純なものから最も複雑なものまで、3つのアプローチを紹介する。最も複雑な方法は、(キーやマウスボタンを押し続ける必要があるゲームなど)最も幅広い状況で機能する。

    方法 #1

    -

    この方法は、単純なキー入力やマウスクリックを送信する。事例:

    +

    この方法は、単純なキー入力やマウスクリックを送信する。例:

    Joy1::Send "{Left}"  ; Have button #1 send a left-arrow keystroke.
     Joy2::Click  ; Have button #2 send a click of left mouse button.
     Joy3::Send "a{Esc}{Space}{Enter}"  ; Have button #3 send the letter "a" followed by Escape, Space, and Enter.
     Joy4::Send "Sincerely,{Enter}John Smith"  ; Have button #4 send a two-line signature.
    -

    To have a button perform more than one line, put them beneath the button name and enclose them in braces. 事例:

    +

    To have a button perform more than one line, put them beneath the button name and enclose them in braces. 例:

    Joy5::
     {
         Run "notepad"
    diff --git a/target/docs/misc/Styles.htm b/target/docs/misc/Styles.htm
    index 0328f458..63958753 100644
    --- a/target/docs/misc/Styles.htm
    +++ b/target/docs/misc/Styles.htm
    @@ -979,7 +979,7 @@ 

    MonthCalコントロールのスタイル

    diff --git a/target/docs/v2-changes.htm b/target/docs/v2-changes.htm index 8f7b15b0..f1c92fda 100644 --- a/target/docs/v2-changes.htm +++ b/target/docs/v2-changes.htm @@ -54,7 +54,7 @@

    目次

  • Modified Commands, Functions & Directives
  • 新機能のご紹介
  • 新しいディレクティブ
  • -
  • 組み込みの変数
  • +
  • 組込変数
  • 組込オブジェクト
  • @@ -276,7 +276,7 @@

    未分類(Uncategorized)

    */ を行末に置いて複数行のコメントを終了できるようになり、他の言語での /* */ の動作に関する共通の混乱点を解決しました。曖昧さが生じる恐れがあるため(例えば、*/で終わるホットストリングでは)、*/の前に/*がないものは無視されるようになりました(AHK_L revision 54での変更点を取り消します)。

    64ビット符号付き整数のサポート範囲外の整数定数や数値文字列は、最小/最大値で上限が設定されるのではなく、オーバーフロー/ラップアラウンドするようになりました。これは数学の演算子と一致しているので、9223372036854775807+1 == 9223372036854775808(ただしどちらも-9223372036854775808が出ます)。これにより、64ビット値に対するビット演算が容易になります。

    数値文字列の場合、数字の前にスペースとタブ以外の空白文字が許されるケースは少なくなっています。一般的なルールとして(v1、v2ともに)スペースとタブのみが許可されていますが、Cランタイムライブラリの規約により他の空白文字が許容される場合もあります。

    -

    Else can now be used with loops of any type and Catch. For loops の場合は、ループの反復回数が0回だった場合に実行されます。For CatchTry内で例外が発生しなかった場合に実行されます(エラーや値が発生した場合は、値のクラスに合致するCatchがなくても実行されません)。そのため、Elseを中括弧なしで使用する場合、以前のバージョンと解釈が異なる場合があります。事例:

    +

    Else can now be used with loops of any type and Catch. For loops の場合は、ループの反復回数が0回だった場合に実行されます。For CatchTry内で例外が発生しなかった場合に実行されます(エラーや値が発生した場合は、値のクラスに合致するCatchがなくても実行されません)。そのため、Elseを中括弧なしで使用する場合、以前のバージョンと解釈が異なる場合があります。例:

    if condition
     {
         while condition
    @@ -1202,7 +1202,7 @@ 

    新機能のご紹介

    WinGetClientPos([&OutX, &OutY, &OutWidth, &OutHeight, WinTitle, ...])ウィンドウのクライアント領域の位置とサイズを画面座標で取得します。

    新しいディレクティブ

    #DllLoad [FileOrDirName]:スクリプトの実行を開始する前にDLLまたはEXEファイルをロードします。

    -

    組み込みの変数

    +

    組込変数

    A_AhkPathは、スクリプトがコンパイルされている場合でも、常に現在の実行ファイル/インタプリタのパスを返します。以前は、ベースファイルとしてBINファイルを使用した場合、コンパイルされたスクリプトのパスを返していましたが、v2.0リリースではBINファイルを含まないようになりました。

    A_IsCompiledは、スクリプトがコンパイルされていない場合、""の代わりに0を返します。

    A_OSVersionは常にmajor.minor.buildという形式の文字列を返し、例えば Windows 7 SP1 では6.1.7601となります。A_OSTypeは、NT系のみ対応しているため、削除されました。

    @@ -1483,7 +1483,7 @@

    関数

    以前は検出されなかったいくつかのエラーに対して例外がスローされ、(以前はErrorLevelの設定によって)誤ってエラーとしてマークされていたいくつかの条件が修正されました。

    一部のエラーメッセージが変更されました。

    Catch

    -

    Catchの構文が変更され、特定のエラークラスをキャッチする一方、他のエラークラスはキャッチしない(コールスタックのさらに上の別のCatchに制御を移す、またはエラーを報告してスレッドを終了する)方法が提供されました。これまでは、すべての型のスローされた値をキャッチし、型をチェックして再スローする必要がありました。事例:

    +

    Catchの構文が変更され、特定のエラークラスをキャッチする一方、他のエラークラスはキャッチしない(コールスタックのさらに上の別のCatchに制御を移す、またはエラーを報告してスレッドを終了する)方法が提供されました。これまでは、すべての型のスローされた値をキャッチし、型をチェックして再スローする必要がありました。例:

    ; 古い(v1には「is」やErrorクラスがないため、古い v2.0-a のルールを使ってデモを行う)
     try
         SendMessage msg,,, "Control1", "The Window"
    
    MCS_MULTISELECT 0x2 -

    オプション名「Multi」。ユーザーが単一の日付に制限されるのではなく、日付の範囲を選択できるようにします。デフォルトでは、最大範囲は366日で、MCM_SETMAXSELCOUNTメッセージをコントロールに送信することで変更できる。事例:

    +

    オプション名「Multi」。ユーザーが単一の日付に制限されるのではなく、日付の範囲を選択できるようにします。デフォルトでは、最大範囲は366日で、MCM_SETMAXSELCOUNTメッセージをコントロールに送信することで変更できる。例:

    SendMessage 0x1004, 7, 0, "SysMonthCal321", MyGui ; 7 days. 0x1004 is MCM_SETMAXSELCOUNT.