ホットストリング関数でグローバル変数を呼び出すにはどうすればよいですか。
これは機能します:
::hlw::
hlwvar = Hello World
sendInput %hlwvar%
return
これはしません:
hlwvar = Hello World
::hlw::
sendInput %hlwvar%
return
ホットストリング関数でグローバル変数を呼び出すにはどうすればよいですか。
これは機能します:
::hlw::
hlwvar = Hello World
sendInput %hlwvar%
return
これはしません:
hlwvar = Hello World
::hlw::
sendInput %hlwvar%
return
この回答は、「Joel T. 33 / M / Seattle、WA」からAardvarkを通じて得られました。とても便利だったので、ここに投稿します。
-
2番目のフォームは実際に機能するはずです。これらの4行だけを新しいスクリプトに貼り付けて実行し、確認してください。2番目の例では、「hlwvar = Hello World」がスクリプトの先頭にないため、実際には実行されていないことが問題である可能性があります。AHKが最初にスクリプトを実行するとき、スクリプトは上から開始し、「return」またはホットストリング/ホットキーの定義に遭遇するまで実行されます。したがって、常にグローバル変数とその他のグローバル設定をスクリプトの先頭で定義する必要があります。スクリプトの「初期化」がすべて完了したら、「return」で終了します。次に、すべてのホットストリング/ホットキー/関数をそのポイントの下に配置します。
私がやりたいことの1つは、すべてのグローバルなものを関数に入れることです。たとえば、Init(){global someglobalvar = myvalue return}次に、スクリプトの先頭にInit()を返します。
これにより、私のinitのものがどこにあるかを一目で識別したり、必要に応じてinitルーチンを別の場所に移動したりすることが非常に簡単になります。関数内で割り当てられたすべての変数をグローバルに使用できるようにする場合は、「global」キーワードを関数定義の最初のコマンドにする必要があることに注意してください。
クリスが言ったように、次の2つのコードは私にとってまったく同じように機能します。
:: hlw :: hlwvar = Hello World sendInput%hlwvar% 戻る
と
hlwvar = Hello World :: hlw :: sendInput%hlwvar% 戻る