よくある質問(FAQ)

目次

よくある質問(FAQ)

Q1.注意することは?

ファイルの削除やレジストリの追加、削除をする場合

  • 必ずバックアップを取ること。
  • 仮想マシン等で動作を確認する。
  • 削除するファイルのパスを MsgBox 関数や ConsoleWrite 関数で確認する。

一時ファイル

一時ファイルを保存する場合、一部の PC では指定したフォルダーに正しくアクセスできないことがあるので注意が必要です。

返し値

ほとんどの関数には返し値があります。

プログラムを書く際には、必ず条件付き命令文ifなどを使用して返し値の確認コードを記述しましょう。

確認コードを記述することにより、どこでエラーが起きているかがすぐに判断できます。

例えば Run 関数には次の返し値があります。

  • 成功: 実行したプロセスの PID(プロセス識別値)。
  • 失敗: 0 を返し@errorに非ゼロを設定します。

Q2.DOSコマンドを実行するには?

Run、RunWait、_RunDos 関数を使用します。

Run、RunWaitの書き方:

Run(@ComSpec & " /c " & 'コマンド', "", @SW_HIDE)

RunWait(@ComSpec & " /c " & 'コマンド', "", @SW_HIDE)

頭に@の付くものはマクロと呼びます。

@ComSpecC:\Windows\System32\CMD.exeを意味します。

Q3.プログラムを 1つしか起動できないようにするには?

ウィンドウが存在するかを判断し、存在すれば終了するというようにすればプログラムは 1つしか起動できません。

WinExists 関数

$Ver = "test"

If WinExists($Ver) Then Exit

頭に$の付くものは変数です。

コードの説明:

変数 $Ver に文字列「test」代入します。

もしも ウィンドウタイトル「test」が存在すれば スクリプトを終了します。

_Singleton 関数

#include<Misc.au3>

_Singleton("test"); 「test」には Autoit で作成したウィンドウのタイトルを入力します。

コードの説明:

既に他にインスタンスが存在する場合、スクリプトを終了します。

Q4.外部のアプリケーションを実行するには?

Autoit の基礎 – プログラムの実行と終了、スクリプトの一時停止

Q5.注釈(コメント)を付けるには?

1.「;」セミコロンを使用します。

;これはコメントです。

ShellExecute("Notepad.exe");ノートパッドを開く

2.#cs と #ce で囲むとブロックコメントを書くことができます。

#cs

この部分はコメントになります。

#ce

Q6.レジストリを編集するには?

Autoit の基礎 – レジストリの読み取り、書き込みと削除

Q7.レジストリを即時反映するには?

次のコードを実行します。※このコードはすべてに対して反映できるものではありませんので、PC のログオフや再起動などが必要になる場合があります。

DllCall("user32.dll","int","SendMessageTimeout","hwnd",65535,"int",26,"int",0,"int",0,"int",0,"int",1000,"str","dwResult")

Q8.どのようにプログラムを書いていますか?

  1. 私はまず目的を決めます。
  2. そして目的の動作をするようにプログラムを書き、とりあえず完成させます。
  3. プログラムが完成したら最適化を行い、追加したい機能があれば追加していきます。
  4. 最後にすべての動作を確認して作業完了です。

Q9.最適化とは何ですか?

不要なコードの削除、短縮を行い、なるべくファイルサイズが大きくならないように編集し、さらにすべての動作を確認して不具合があれば修正をします。

Q10.使用している Autoit のバージョンは?

現在(2025/12/26)使用している Autoit のバージョンは 3.3.18.0 です。

Q11.セキュリティソフトで検知されてしまう

AutoIt で作成したプログラムは、 Windows セキュリティ(Microsoft Defender、 Windows Defender)で誤検知される場合があります。
特に x86 (32 ビット用)でコンパイルしたプログラムはほとんど検知されてしまいます。
x64 (64 ビット用)でコンパイルすれば、悪意のないコードならばほとんどの場合検知されませんが、「UPX で圧縮」を選択してコンパイルすると悪意のないコードでもセキュリティソフトで検知されてしまいます。
そのため、筆者の自作ソフトは、ほぼ x64 (64 ビット用)で作成し、「UPX で圧縮」を選択せずにコンパイルしています。
また、レジストリなど、システム関連の設定を変更するプログラムは、不審なプログラムとして検知される場合があります。
さらに、脅威名の末尾が「!ml」(例: Trojan:Win32/Wacatac.B!ml など)となっている検知は、 AI (機械学習)による予測検知です。確実な脅威ではなく、自動化ツールの挙動に対するセキュリティソフトの過剰反応(誤検知)ですので、安心してご利用ください。

目次