</head> <body> <h1>よくある質問(FAQ)</h1> <h2 id="toc">目次</h2> <p><strong><a href="#general-troubleshooting">一般的なトラブルシューティング</a></strong></p> <ul> <li><a href="#install">AutoHotkeyがインストールできないときは、どうすればよいですか?</a></li> <li><a href="#rightclick">.ahkファイルの右クリックコンテキストメニューオプションを復元するにはどうすればよいですか?</a></li> <li><a href="#vista">以前のバージョンでは動作していたのに、Windows<em>xxx</em>では私のスクリプトが動作しないのはなぜですか?</a></li> <li><a href="#uac">ユーザーアカウント制御(UAC)に起因する問題を回避するにはどうすればよいですか?</a></li> <li><a href="#DefaultScript">エラーで起動しないので、トレイアイコンからスクリプトを編集できません。どうすればよいですか?</a></li> <li><a href="#Debug">スクリプトのエラーを見つけて修正するにはどうすればよいですか?</a></li> <li><a href="#run">Run関数ででゲームやプログラムを起動できないのはなぜですか?</a></li> <li><a href="#nonascii">スクリプトの非ASCII文字が正しく表示されない、または送信できないのはなぜですか?</a></li> <li><a href="#games">特定のゲームでホットストリング、Send関数、Click関数が動作しないのはなぜですか?</a></li> <li><a href="#perf">ゲームなど、CPUに負荷がかかる場面でパフォーマンスを向上させるにはどうすればよいですか?</a></li> <li><a href="#Virus">アンチウイルスプログラムがAutoHotkeyやコンパイルされたスクリプトをマルウェアと判定しました。本当にウイルスなのでしょうか?</a></li> </ul> <p><strong><a href="#common-tasks">一般的な事項</a></strong></p> <ul> <li><a href="#Download">公式ビルドや旧バージョンはどこで入手できますか?</a></li> <li><a href="#USB">USBメモリからAHKを起動することはできますか?</a></li> <li><a href="#output">コマンドライン操作の出力はどのように取得できますか?</a></li> <li><a href="#close">他のスクリプトを閉じたり、一時停止したり、中断したり、再読み込みしたりするにはどうしたらよいですか?</a></li> <li><a href="#repeat">スクリプトを終了させることなく、繰り返し動作を停止させるにはどうすればよいですか?</a></li> <li><a href="#help">AutoHotkeyの関数のコンテキスト依存ヘルプを、どのエディターでも使えるようにするにはどうしたらよいですか?</a></li> <li><a href="#load">Webページの読み込みが終了したことを検知するにはどうすればよいですか?</a></li> <li><a href="#time">日付や時刻を比較したり、操作したりするにはどうすればよいですか?</a></li> <li><a href="#SendDate">現在の日付や時刻を送信したいのですが、どうすればよいですか?</a></li> <li><a href="#ControlSend">アクティブでない、または表示されていないウィンドウにテキストを送信するにはどうしたらよいですか?</a></li> <li><a href="#winamp">Winampがアクティブでないときでもコントロールできるようにするには?</a></li> <li><a href="#msgbox">MsgBoxのボタン名を変更するにはどうすればよいですか?</a></li> <li><a href="#DefaultEditor">コンテキストメニューやトレイアイコンからアクセスできるデフォルトのエディターを変更したいのですが?</a></li> <li><a href="#GuiSubmit">GUIコントロールの内容を保存したいのですが、どうすればよいですか?</a></li> <li><a href="#GDIPlus">AHKで何か描けますか?</a></li> <li><a href="#WinWaitAction">ウィンドウが表示されたり、閉じたり、[in]アクティブになったときに、アクションを開始するにはどうしたらよいですか?</a></li> </ul> <p><strong><a href="#hotkeys-hotstrings-and-remapping">ホットキー、ホットストリング、リマッピング</a></strong></p> <ul> <li><a href="#Startup">PCを起動するたびに、ホットキーやホットストリングを自動的に有効にするにはどうすればよいですか?</a></li> <li><a href="#HotMouse">マウスのボタンがホットキーとして機能しないので困っています。何かアドバイスはありますか?</a></li> <li><a href="#HotSymb">TabとSpaceをホットキーとして定義する方法は?</a></li> <li><a href="#Remap">キーやマウスのボタンを別のキーになるようにリマップするにはどうすればよいですか?</a></li> <li><a href="#DoublePress">キーやボタンの二度押しを検出するにはどうすればよいですか?</a></li> <li><a href="#HotContext">ホットキーやホットストリングを特定のプログラム専用にするにはどうすればよいですか?つまり、特定のウィンドウがアクティブなとき以外は、あるキーが通常通り動作するようにしたいのです。</a></li> <li><a href="#HotPrefix">プレフィックスキーが何もしないのではなく、本来の機能を発揮させるためにはどうしたらいいのでしょうか?</a></li> <li><a href="#HotOverride">Win+U(ユーティリティマネージャ)やWin+R(ファイル名を指定して実行)など、Windowsに内蔵されているショートカットキーを変更したり無効にしたりするには、どうしたらよいですか?</a></li> <li><a href="#HotRegex">Hotstringsでワイルドカードや正規表現を使用することはできますか?</a></li> <li><a href="#SpecialKey">キーボードレイアウトにないホットキーを使うにはどうしたらいいですか?</a></li> <li><a href="#HotZero">私のキーパッドには、特別な000キーがあります。ホットキーにすることは可能なのでしょうか?</a></li> </ul> <h2 id="general-troubleshooting">一般的なトラブルシューティング</h2> <h3 id="install">AutoHotkeyがインストールできないときは、どうすればよいですか?</h3> <p>AutoHotkeyを通常の方法でインストールできないときは、<a href="howto/Install.htm">AutoHotkeyのインストール方法</a>をご覧ください。</p> <h3 id="rightclick">.ahkファイルの右クリックコンテキストメニューオプションを復元するにはどうすればよいですか?</h3> <p>通常、AutoHotkeyがインストールされている場合、AutoHotkeyスクリプト(.ahk)ファイルを右クリックすると、以下のオプションが表示されるはずです:</p> <ul> <li>スクリプトを実行する</li> <li>コンパイルスクリプト(Ahk2Exeがインストールされている場合)</li> <li>スクリプトを編集する</li> <li>管理者として実行する</li> <li>UIアクセスで実行する(<a href="Program.htm#Installer_uiAccess">前提</a>条件を満たしている場合)</li> </ul> <p class="note"><strong>注:</strong>Windows 11では、これらのオプションの一部は通常サブメニューに追いやられ、「その他のオプションを表示」を選択することでアクセスすることができます。</p> <p>例えば、<em>Open With</em>を使用して.ahkファイルを開くためのデフォルトプログラムを変更した場合など、これらのオプションは現在のユーザーのプロファイルの設定によって上書きされることがあります。以下のレジストリキーを削除することで、改善されます:</p> <pre class="no-highlight">HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ahk\UserChoice</pre> <p>この<a href="misc/remove-userchoice.reg" download="remove-userchoice.reg">レジストリパッチ</a>を適用するか、AutoHotkeyのインストールディレクトリから<code>UX\reset-assoc.ahk</code>を実行すれば上記のレジストリキーを削除できます。</p> <p>また、AutoHotkeyを再インストールするか、AutoHotkeyのインストールディレクトリから<code>UX\install.ahk</code>を実行して、デフォルトレジストリ値を修復する必要がある場合もあります。</p> <h3 id="vista">以前のバージョンでは動作していたのに、Windows<em>xxx</em>では私のスクリプトが動作しないのはなぜですか?</h3> <p>以下のように、この問題には様々なバリエーションがあります:</p> <ul> <li>コンピュータやWindowsをアップグレードしたら、スクリプトが動かなくなった。</li> <li>管理者として動作するプログラムがアクティブな場合、ホットキー/ホットストリングが機能しない。</li> <li>自動化を拒否するウィンドウがあります(例:デバイスマネージャが送信を無視します)。</li> </ul> <p>オペレーティングシステムを変更した場合、他のものも変更されている可能性があり、スクリプトに影響を及ぼしている可能性があります。例えば、パソコンを新しくした場合、ドライバーやその他のソフトウェアが異なるものがインストールされていることがあります。また、AutoHotkeyの新しいバージョンにアップデートした場合は、以前使用していたバージョンを確認し、<a href="ChangeLog.htm">変更履歴</a>と <a href="Compat.htm">互換性ノート</a>を確認してください。</p> <p>また、次の質問も参考にしてください:</p> <h3 id="uac">ユーザーアカウント制御(UAC)に起因する問題を回避するにはどうすればよいですか?</h3> <p>デフォルトでは、<a href="https://en.wikipedia.org/wiki/User_Account_Control">ユーザーアカウント制御(UAC</a>)は、「昇格」プログラム(つまり、管理者として実行されているプログラム)が、非昇格プログラムによってセキュリティ制限を回避できるようにするため、自動化から保護します。ホットキーもブロックされるため、例えば、昇格していないプログラムが昇格したプログラム向けの入力を盗み見ることはできない。</p> <p>また、UACにより<a href="lib/Send.htm#SendPlayDetail">SendPlay</a>や <a href="lib/BlockInput.htm">BlockInput</a>が動作しない場合があります。</p> <p>一般的な回避策は以下の通りです:</p> <ul> <li><strong>推奨:</strong><a href="Program.htm#Installer_uiAccess">UIアクセスで実行します</a>。そのため、AutoHotkeyがProgram Filesの下にインストールされている必要があります。以下のように、いくつかの方法があります: <ul> <li>エクスプローラでスクリプトを右クリックし、「<em>UIアクセスで実行</em>」を選択します。</li> <li><code>Run '*UIAccess "Your script.ahk"'</code>のように、<em>UIAccess</em>シェル動詞をRunで使用します。</li> <li><a href="Scripts.htm#cmd">コマンドライン</a>は、<code>"AutoHotkey32_UIA.exe" "Your script.ahk"</code>(ただし、必要に応じてフルパスを含める) のように使用します。</li> <li><a href="Program.htm#launcher-config">起動設定</a>GUIの該当するボックスにチェックを入れて、デフォルトでUIアクセスでスクリプトを実行するように設定します。</li> </ul></li> <li>スクリプトを<a href="Variables.htm#IsAdmin">管理者権限</a>で実行します。この場合、スクリプトによって起動されるすべてのプログラムが管理者として実行され、スクリプトの起動時に承認プロンプトを受け入れるようユーザーに要求される場合があることに留意してください。</li> <li>ローカルセキュリティポリシー「すべての管理者を管理者承認モードで実行する」(推奨されません)を無効にします。</li> <li>UACを完全に無効化します。これは推奨されておらず、Windows 8以降では実現不可能です。</li> </ul> <h3 id="DefaultScript">エラーで起動しないので、トレイアイコンからスクリプトを編集できません。どうすればよいですか?</h3> <p><a href="Program.htm#tray-icon">トレイアイコン</a>を取り戻すには、スクリプトのエラーを修正する必要があります。This will require locating the script and opening it in an editor by some other means than the tray icon.</p> <p>If you are running an AutoHotkey executable file directly, the name of the script depends on the executable. For example, if you are running AutoHotkey32.exe, look for AutoHotkey32.ahk in the same directory. システム設定によっては、".ahk"の部分が隠されている場合がありますが、ファイルには次のようなアイコンが表示されます <img src="static/ahkfile16.png" alt="[H]"></p> <p>You can usually <a href="Program.htm#edit">edit a script file</a> by right clicking it and selecting <em>Edit Script</em>. それでもうまくいかない場合は、メモ帳などのエディターでファイルを開いてください。</p> <p>Normally, you should <a href="Program.htm#create">create a script file</a> (something.ahk) anywhere you like, and run that script file instead of running AutoHotkey.</p> <p><a href="Scripts.htm#defaultfile">コマンドラインパラメータ「スクリプトファイル名」</a>、<a href="Program.htm#portability">AutoHotkey.exeの移植性</a>についてもご覧ください。</p> <h3 id="Debug">スクリプトのエラーを見つけて修正するにはどうすればよいですか?</h3> <p>簡単なスクリプトについては、「<a href="Scripts.htm#debug">スクリプトのデバッグ</a>」を参照してください。変数の内容を表示するには、<a href="lib/MsgBox.htm">MsgBox</a>または<a href="lib/ToolTip.htm">ToolTip</a>を使用します。複雑なスクリプトについては、「<a href="Scripts.htm#idebug">インタラクティブ・デバッグ</a>」を参照してください。</p> <h3 id="run"><a href="lib/Run.htm">実行</a>機能でゲームやプログラムを起動できないのはなぜですか?</h3> <p>プログラムによっては、独自のディレクトリで起動する必要があります(疑わしい場合は、通常、そうするのが最善です)。事例:</p> <pre>Run A_ProgramFiles "\Some Application\App.exe", A_ProgramFiles "\Some Application"</pre> <p>起動しようとしているプログラムが<code>A_WinDir "\System32"</code>にあり、64ビットシステムでAutoHotkey 32ビットを使用している場合、<a href="https://learn.microsoft.com/windows/win32/winprog64/file-system-redirector">ファイルシステムリダイレクト</a>が干渉している可能性があります。これは、<code>A_WinDir "\SysNative"</code>を代わりに使用; 64ビットシステム上で動作する32ビットプログラムにのみ表示される仮想ディレクトリです。</p> <h3 id="nonascii">スクリプトの非ASCII文字が正しく表示されない、または送信できないのはなぜですか?</h3> <p>回答:スクリプトの文字コードをUTF-8、できればBOM付きで保存してください。</p> <p>非ASCII文字は、選択したエンコーディングによって異なる2値で表現されます。このような文字を正しく解釈するためには、テキストエディタとAutoHotkeyが、いわば<em>同じコードページ</em>にある必要があります。AutoHotkey v2は、すべてのスクリプトファイルのデフォルトをUTF-8に設定していますが、これは<a href="Scripts.htm#cp">/CPコマンドラインスイッチ</a>で上書きすることができます。</p> <p>It is recommended to save the script as UTF-8 with BOM (byte order mark) to ensure that editors (and maybe other applications) can determine with certainty that the file is indeed UTF-8. Without BOM, the editor has to guess the encoding of the file, which can sometimes be wrong.</p> <p>メモ帳でUTF-8として保存するには、「名前を付けて保存」ダイアログの「<em>エンコード</em>」ドロップダウンから、<em>UTF-8</em>または<em>UTF-8 with BOM</em>を選択します。Note that Notepad in Windows 10 v1903 and later defaults to <em>UTF-8</em> (without BOM).</p> <p>To read other UTF-8 files which lack a byte order mark (BOM), use <code><a href="lib/FileEncoding.htm">FileEncoding</a> "UTF-8-RAW"</code>, the <code>*P65001</code> option with <a href="lib/FileRead.htm">FileRead</a>, or <code>"UTF-8-RAW"</code> for the third parameter of <a href="lib/FileOpen.htm">FileOpen</a>. The <code>-RAW</code> suffix can be omitted, but in that case any newly created files will have a BOM.</p> <p>なお、標準のINI関数でアクセスしたINIファイルはUTF-8をサポートしていませんので、ANSIまたはUTF-16で保存する必要があります。</p> <h3 id="games">特定のゲームで<a href="Hotstrings.htm">ホットストリング</a>、<a href="lib/Send.htm">Send</a>関数、<a href="lib/Click.htm">Click</a>関数が動作しないのはなぜですか?</h3> <p>すべてのゲームでAHKがキーやクリックを送信したり、ピクセルカラーを受信したりできるわけではありません。</p> <p>しかし、いくつかの選択肢がありますので、以下に挙げるすべての解決策を試してみてください。これらすべてがダメな場合、AHKがあなたのゲームに取り組むことは不可能かもしれません。ゲームにはGameGuardやHackshieldといったハックやチート防止対策が施されていることがあります。その場合、AutoHotkeyはそのゲームでは動作しない可能性が高いです。</p> <ul> <li> <p><a href="lib/Send.htm#SendPlay">SendPlay</a>関数、<a href="lib/SendMode.htm">SendMode Play</a>、および/または、<a href="Hotstrings.htm">ホットストリングオプションSPを</a>使用して、SendPlayを使用します。</p> <pre>SendPlay "abc"</pre> <pre>SendMode "Play" Send "abc"</pre> <pre>:SP:btw::by the way <em>; または</em> #Hotstring SP ::btw::by the way</pre> <p class="note"><strong>注意:</strong>ユーザーアカウント制御が有効な場合、スクリプトが管理者として実行されていても、SendPlayが全く効果を発揮しない場合があります。</p> </li> <li> <p><a href="lib/SetKeyDelay.htm">SetKeyDelay</a>の増加。事例:</p> <pre>SetKeyDelay 0, 50 SetKeyDelay 0, 50, "Play"</pre> </li> <li> <p>他の送信モードに失敗した場合に有効な場合がある<a href="lib/ControlSend.htm">ControlSend</a>をお試しください:</p> <pre>ControlSend "abc",, <i>GameTitle</i></pre> </li> <li> <p>キーのダウン、アップのイベントを各種送信方法で試してみる:</p> <pre>Send "{<i>KEY</i> Down}{<i>KEY</i> Up}"</pre> </li> <li> <p><a href="lib/Sleep.htm">スリープ</a>を挟んだキーのダウンとアップのイベントを試してみてください:</p> <pre>Send "{<i>KEY</i> down}" Sleep 10 <em>; 様々なミリ秒を試してみてください。</em> Send "{<i>KEY</i> up}"</pre> </li> </ul> <h3 id="perf">ゲームなど、CPUに負荷がかかる場面でパフォーマンスを向上させるにはどうすればよいですか?</h3> <p>CPUに大きな負荷がかかっているときに、スクリプトの<a href="Hotkeys.htm">Hotkey</a>、<a href="lib/Click.htm">Click</a>、<a href="lib/Send.htm">Send</a>が通常より明らかに遅くなる場合は、スクリプトのプロセス優先度を上げると改善する場合があります。そのためには、スクリプトの先頭付近に以下の行を記述します:</p> <pre><a href="lib/ProcessSetPriority.htm">ProcessSetPriority</a> "High"</pre> <h3 id="Virus">アンチウイルスプログラムがAutoHotkeyやコンパイルされたスクリプトをマルウェアと判定しました。本当にウイルスなのでしょうか?</h3> <p>確かにそのファイルが感染している可能性はありますが、多くの場合、これらの警告はウイルス対策プログラムが勘違いしていることを意味する<em>偽陽性</em>です。よくある提案として、<a href="https://www.virustotal.com/">virustotal</a>や <a href="https://virusscan.jotti.org/">Jotti</a>などのオンラインサービスにファイルをアップロードして、他のアンチウイルスプログラムの意見を聞いてみるというものがあります。疑わしい場合は、ウイルス対策ソフトのベンダーにファイルを送信して確認してもらうとよいでしょう。ベンダーが誤検出であることを確認し、AutoHotkeyとうまく連携できるように製品を修正するかもしれないので、これは私たちや他のAutoHotkeyユーザーにとっても役立つかもしれません。</p> <p>UPX(AutoHotkey 1.0のデフォルト、1.1は不可)やMPRESS(AutoHotkey 1.1のオプション)など、圧縮されているコンパイル済みスクリプトでは、誤検出がより一般的になるかもしれません。AutoHotkeyのデフォルトインストールにはコンプレッサーが含まれていないため、コンパイルされたスクリプトはデフォルトで圧縮されません。</p> <h2 id="common-tasks">一般的な事項</h2> <h3 id="Download">公式ビルドや旧バージョンはどこで入手できますか?</h3> <p><a href="https://www.autohotkey.com/download/">AutoHotkeyのダウンロード</a>ページをご覧ください。</p> <h3 id="USB">USBメモリからAHKを起動することはできますか?</h3> <p><a href="Program.htm#portability">AutoHotkey.exeの移植性</a>を参照してください。</p> <h3 id="output">コマンドライン操作の出力はどのように取得できますか?</h3> <p>テストでは、ファイルキャッシュにより、一時ファイルが比較的小さな出力でも非常に高速に動作することが確認されています。実際、使用後すぐにファイルを削除すると、実際にはディスクに書き込まれないことが多い。事例:</p> <pre><a href="lib/Run.htm">RunWait</a> A_ComSpec ' /c dir &gt; C:\My Temp File.txt' VarToContainContents := FileRead("C:\My Temp File.txt") FileDelete "C:\My Temp File.txt"</pre> <p>一時ファイルの使用を避けるには(特に出力が大きい場合)、<a href="lib/Run.htm">Run</a>関数の例にあるように、<a href="lib/Run.htm#ExStdOut">Shell.Exec()</a>メソッドの使用を検討します。</p> <h3 id="close">他のスクリプトを閉じたり、一時停止したり、中断したり、再読み込みしたりするにはどうしたらよいですか?</h3> <p>まず、別のスクリプトを閉じる例を紹介します:</p> <pre>DetectHiddenWindows True <em>; スクリプトの隠されたメインウィンドウを検出できるようにします。</em> SetTitleMatchMode 2 <em>; 以下、ファイルのフルパスを指定する必要を回避することができます。</em> WinClose "ScriptFileName.ahk - AutoHotkey" <em>; スクリプト名の大文字小文字問題を回避するためアップデート</em></pre> <p>他のスクリプトを<a href="lib/Suspend.htm">中断</a>、<a href="lib/Pause.htm">一時停止</a>、<a href="lib/Reload.htm">再読み込み</a>するには、上記の最後の行を次のいずれかに置き換えてください:</p> <pre>PostMessage 0x0111, 65305,,, "ScriptFileName.ahk - AutoHotkey" <em>; サスペンド</em> PostMessage 0x0111, 65306,,, "ScriptFileName.ahk - AutoHotkey" <em>; ボーズ</em> PostMessage 0x0111, 65303,,, "ScriptFileName.ahk - AutoHotkey" <em>; リロード</em></pre> <h3 id="repeat">スクリプトを終了させることなく、繰り返し動作を停止させるにはどうすればよいですか?</h3> <p>キーを押すだけでスクリプト全体を一時停止または再開するには、この例のようにホットキーを「<a href="lib/Pause.htm">一時停止</a>」機能に割り当てます:</p> <pre>^!p::Pause <em>; Ctrl+Alt+P を押すと一時停止します。もう一度押すと再開します。</em></pre> <p><a href="lib/Loop.htm">ループ</a>内で繰り返されるアクションを停止するには、次のような動作例を考えてみましょう。このホットキーは、それ自体が繰り返されるアクションの開始と停止の両方を行います。In other words, pressing the hotkey once will start the loop. 同じホットキーをもう一度押すと停止します。</p> <pre>#MaxThreadsPerHotkey 3 #z:: <em><strong>; Win+Zのホットキー(このホットキーはお好みで変更してください)。</strong></em> { static KeepWinZRunning := false if KeepWinZRunning <em>; これは、下層の<a href="misc/Threads.htm">スレッドが</a>すでに下のループを実行していることを意味します。</em> { KeepWinZRunning := false <em>; そのスレッドのループを停止させる信号を送る。</em> return <em>; このスレッドを終了すると、その下にあるスレッドが再開され、上の行で行われた変更を見ることができます。</em> } <em>; それ以外の場合:</em> KeepWinZRunning := true Loop { <em><strong>; 次の4行は、繰り返したい動作です(お好みで更新してください):</strong></em> ToolTip "Press Win-Z again to stop this from flashing." Sleep 1000 ToolTip Sleep 1000 <em><strong>; しかし、以下の残りの部分は変更しないでください。</strong></em> if not KeepWinZRunning <em>; 再びWin-Zを押すことでループを止める合図をした。</em> break <em>; このループから抜け出そう。</em> } KeepWinZRunning := false <em>; 次にこのホットキーを押すときに備えて、リセットを行います。</em> } #MaxThreadsPerHotkey 1</pre> <h3 id="help">AutoHotkeyの関数のコンテキスト依存ヘルプを、どのエディターでも使えるようにするにはどうしたらよいですか?</h3> <p><a href="scripts/index.htm#ContextSensitiveHelp">このスクリプトを</a>作ったのはラジャットです。</p> <h3 id="load">Webページの読み込みが終了したことを検知するにはどうすればよいですか?</h3> <p>With Internet Explorer, perhaps the most reliable method is to use DllCall and COM as demonstrated at <a href="https://www.autohotkey.com/board/topic/17715-">this archived forum thread</a>. On a related note, the contents of the address bar and status bar can be retrieved as demonstrated at <a href="https://www.autohotkey.com/board/topic/17714-">this archived forum thread</a>.</p> <p><strong>古く、信頼性の低い方法:</strong>以下の例の手法は、ほとんどのページでMS Internet Explorerで動作します。他のブラウザでも同様の手法が使えるかもしれません:</p> <pre>Run "www.yahoo.com" MouseMove 0, 0 <em>; ステータスバーに "Done"の代わりにマウスホバーリンクが表示されないようにします。</em> WinWait "Yahoo!- " WinActivate if StatusBarWait("Done", 30) MsgBox "The page is done loading." else MsgBox "The wait timed out or the window was closed." </pre> <h3 id="time">日付や時刻を比較したり、操作したりするにはどうすればよいですか?</h3> <p><a href="lib/DateAdd.htm">DateAdd</a>関数は、<a href="lib/FileSetTime.htm#YYYYMMDD">YYYYMMDDHH24MISS</a>形式の時間文字列に、日、時間、分、秒の数量を追加または減算することができます。次の例は、指定した時間から7日間を差し引いたものです:</p> <pre>Result := DateAdd(VarContainingTimestamp, -7, "days")</pre> <p>2つの日付や時刻の間の時間量を求めるには、例を挙げた<a href="lib/DateDiff.htm">DateDiff</a>を参照してください。また、組み込み変数<a href="Variables.htm#Now">A_Now</a>には、現在のローカルタイムが格納されています。最後に、いくつかの組み込み<a href="Variables.htm#date">日付/時刻変数</a>と、カスタム日付/時刻文字列を作成するための<a href="lib/FormatTime.htm">FormatTime</a>関数があります。</p> <h3 id="SendDate">現在の日付や時刻を送信したいのですが、どうすればよいですか?</h3> <p><a href="Variables.htm#date">日付と時刻</a><a href="lib/FormatTime.htm">にはFormatTime</a>または<a href="Variables.htm#date">組み込み変数</a>を使用します。</p> <h3 id="ControlSend">アクティブでない、または表示されていないウィンドウにテキストを送信するにはどうしたらよいですか?</h3> <p><a href="lib/ControlSend.htm">ControlSend</a>を使用します。</p> <h3 id="winamp">Winampがアクティブでないときでもコントロールできるようにするには?</h3> <p><a href="misc/Winamp.htm">Winampの自動化</a>を参照してください。</p> <h3 id="msgbox"><a href="lib/MsgBox.htm">MsgBox</a>のボタン名を変更するにはどうすればよいですか?</h3> <p>以下はその<a href="scripts/index.htm#MsgBoxButtonNames">一例</a>です。</p> <h3 id="DefaultEditor">コンテキストメニューやトレイアイコンからアクセスできるデフォルトのエディターを変更したいのですが?</h3> <p><a href="lib/Edit.htm">Edit</a>のサンプルセクションには、デフォルトのエディタを変更するためのスクリプトがあります。</p> <h3 id="GuiSubmit">GUIコントロールの内容を保存したいのですが、どうすればよいですか?</h3> <p><a href="lib/Gui.htm#Submit">Gui.Submit</a>を使用します。事例:</p> <pre>MyGui := Gui() MyGui.Add("Text",, "Enter some Text and press Submit:") MyGui.Add("Edit", "vMyEdit") MyGui.Add("Button",, "Submit").OnEvent("Click", Submit) MyGui.Show Submit(*) { Saved := MyGui.Submit(false) MsgBox "Content of the edit control: " Saved.MyEdit }</pre> <h3 id="GDIPlus">AHKで何か描けますか?</h3> <p><a href="https://www.autohotkey.com/boards/viewtopic.php?t=6517">GDI+標準ライブラリ</a>by ticをご覧ください。Guiを使った初歩的な方法でも可能ですが、限定的な方法です。</p> <h3 id="WinWaitAction">ウィンドウが表示されたり、閉じたり、[in]アクティブになったときに、アクションを開始するにはどうしたらよいですか?</h3> <p><a href="lib/WinWait.htm">WinWait</a>、<a href="lib/WinWaitClose.htm">WinWaitClose</a>、<a href="lib/WinWaitActive.htm">WinWait[Not]Active</a>を使用してください。</p> <p>There are also user-created solutions such as <a href="https://www.autohotkey.com/boards/viewtopic.php?f=6&t=6463">OnWin.ahk</a> and <a href="https://www.autohotkey.com/board/topic/80644-how-to-hook-on-to-shell-to-receive-its-messages/">[How to] Hook on to Shell to receive its messages</a> on the archived forum.</p> <h2 id="hotkeys-hotstrings-and-remapping">ホットキー、ホットストリング、リマッピング</h2> <h3 id="Startup">PCを起動するたびに、ホットキーやホットストリングを自動的に有効にするにはどうすればよいですか?</h3> <p>PCを起動するたびにスクリプト(または任意のプログラム)が自動的に起動するようにするには、いくつかの方法があります。最も簡単なのは、スタートアップフォルダにスクリプトのショートカットを配置することです:</p> <ol> <li>スクリプトファイルを探し、選択し、<kbd>Ctrl</kbd>+<kbd>C</kbd>を押します。</li> <li><kbd>Win</kbd>+<kbd>R</kbd>を押して「ファイル名を指定して実行」ダイアログを開き、「<code>shell:startup</code>」と入力して「OK」または「<kbd>Enter</kbd>」をクリックします。これにより、現在のユーザーのスタートアップフォルダが開かれます。代わりに全ユーザーのフォルダを開くには、<code>shell:common startup</code>と入力します(ただし、この場合は管理者でないと進めません)。</li> <li>ウィンドウ内で右クリックし、「ショートカットの貼り付け」をクリックします。これで、スクリプトへのショートカットがスタートアップフォルダに入るはずです。</li> </ol> <h3 id="HotMouse">マウスのボタンがホットキーとして機能しないので困っています。何かアドバイスはありますか?</h3> <p>マウスの左右のボタンは普通に割り当てられるようにします(例えば、<code>#LButton::</code>は<kbd>Win</kbd>+LeftButtonのホットキーです)。同様に、中ボタンと<a href="KeyList.htm">マウスホイール</a>の回転は、ドライバがこれらのボタンを直接制御するマウスを除いて、普通に割り当てることができるはずです。</p> <p> 第4ボタン(XButton1)と第5ボタン(XButton2)は、マウスドライバーによってクリックがシステムから<a href="lib/KeyHistory.htm">見える</a>ようになっていれば、割り当て可能な場合があります。もし見えない場合、あるいはマウスに5つ以上のボタンがある場合、マウスに付属のソフトウェア(コントロールパネルやスタートメニューからアクセスできる場合もあります)を使って、これらのボタンを押すたびにキーストロークを送信するように設定してみてはいかがでしょうか?このようなキーストロークは、スクリプトのホットキーとして定義することができます。例えば、第4ボタンで<kbd>Ctrl</kbd>+<kbd>F1</kbd>を送信するように設定すると、スクリプトで<code>^F1::</code>を使って間接的にそのボタンをホットキーとして設定することができます。</p> <p>第4ボタンと第5ボタンが<a href="lib/KeyHistory.htm">見えない</a>5ボタンマウスをお使いの場合は、マウスドライバーをOSに付属のデフォルトドライバーに変更してみてください。これは、あなたの特定のマウスにそのようなドライバがあり、あなたのマウスのカスタムソフトウェアによって提供される機能なしで生きることができることを前提としています。</p> <h3 id="HotSymb">TabとSpaceをホットキーとして定義する方法は?</h3> <p>キーの文字ではなく、キーの名前(Tab、Space)を使用します。例えば、<code>#Space</code>は<kbd>Win</kbd>+<kbd>Space</kbd>、<code>^!Tab</code>は<kbd>Ctrl</kbd>+<kbd>Alt</kbd>+<kbd>Tab</kbd>です。</p> <h3 id="Remap">キーやマウスのボタンを別のキーになるようにリマップするにはどうすればよいですか?</h3> <p>これについては、<a href="misc/Remap.htm">リマッピング</a>のページで説明しています。</p> <h3 id="DoublePress">キーやボタンの二度押しを検出するにはどうすればよいですか?</h3> <p><a href="Variables.htm#h">ホットキー</a>には、以下のように<a href="Variables.htm#h">組み込み変数</a>を使用します:</p> <pre>~Ctrl:: { if (ThisHotkey = A_PriorHotkey &amp;&amp; A_TimeSincePriorHotkey &lt; 200) MsgBox "double-press" }</pre> <h3 id="HotContext"><a href="Hotkeys.htm">ホットキー</a>や <a href="Hotstrings.htm">ホットストリング</a>を特定のプログラム専用にするにはどうすればよいですか?つまり、特定のウィンドウがアクティブなとき以外は、あるキーが通常通り動作するようにしたいのです。</h3> <p>好ましいのは「<a href="lib/_HotIf.htm">#HotIf</a>」です。事例:</p> <pre>#HotIf WinActive("ahk_class Notepad") ^a::MsgBox "You pressed Control-A while Notepad is active." </pre> <h3 id="HotPrefix">プレフィックスキーが何もしないのではなく、本来の機能を発揮させるためにはどうしたらいいのでしょうか?</h3> <p>Numpad0をプレフィックスキーにする、次の例を考えてみましょう:</p> <pre>Numpad0 &amp; Numpad1::MsgBox "You pressed Numpad1 while holding down Numpad0."</pre> <p>さて、Numpad0が上記のようなホットキーの起動に使われなかったときは、いつでも本物のNumpad0のキーストロークを送るようにするには、以下のホットキーを追加してください:</p> <pre> $Numpad0::Send "{Numpad0}"</pre> <p>プレフィックス$は、無限ループに関する警告ダイアログを防ぐために必要です(ホットキーが「自分自身を送信」するため)。また、鍵が<strong>離された</strong>時点で上記の動作が発生します。</p> <h3 id="HotOverride">Win+U(ユーティリティマネージャ)やWin+R(ファイル名を指定して実行)など、Windowsに内蔵されているショートカットキーを変更したり無効にしたりするには、どうしたらよいですか?</h3> <p>以下はその<a href="misc/Override.htm">例</a>です。</p> <h3 id="HotRegex">Hotstringsでワイルドカードや正規表現を使用することはできますか?</h3> <p>polyetheneによる<a href="https://github.com/polyethene/AutoHotkey-Scripts/blob/master/Hotstrings.ahk">スクリプト</a>を使用します(例文が含まれています)。</p> <h3 id="SpecialKey">キーボードレイアウトにないホットキーを使うにはどうしたらいいですか?</h3> <p><a href="KeyList.htm#SpecialKeys">特殊キー</a>」を参照してください。</p> <h3 id="HotZero">私のキーパッドには、特別な000キーがあります。ホットキーにすることは可能なのでしょうか?</h3> <p>できます。この<a href="scripts/index.htm#Numpad000">スクリプトの例</a>では、<kbd>000</kbd>をイコールキーにします。<code>Send "="</code>行を任意の行に置き換えることで、動作を変更することができます。</p> </body> </html>