よくある質問(FAQ)

よくある質問(FAQ)

Q1.注意することは?

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

1.必ずバックアップを取ること。

2.仮想マシン等で動作を確認する。

3.削除するファイルのパスを MsgBox関数や ConsoleWrite関数で確認する。

一時ファイル

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

返し値

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

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

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

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

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

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

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

Run、RunWaitの書き方:

Run(@ComSpec & ” /c ” & ‘コマンド’, “”, @SW_HIDE)

RunWait(@ComSpec & ” /c ” & ‘コマンド’, “”, @SW_HIDE)

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

@ComSpec は「C:\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 で作成したウィンドウのタイトルを入力します。

コードの説明:

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

WinExists、_Singleton 関数のどちらを使用しても構いません。

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.どのようにプログラムを書いていますか?

私はまず目的を決めます。

そして目的の動作をするようにプログラムを書き、とりあえず完成させます。

プログラムが完成したら最適化を行い、追加したい機能があれば追加していきます。

最後にすべての動作を確認して作業完了です。

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

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

Q10.ソースコードが長くてコピーが面倒です

簡単なコピー方法をご紹介します。

まずソースコードの先頭を選択(クリック)します。

次に「SHIFTキー」を押しながらソースコードの最後尾をクリックするとすべて選択されます。

この方法はソースコードに限らず、WEBページのテキスト、テキストエディタなどでも使用できるWindowsの便利な機能です。

現在のページのテキストでお試しください。

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

2022/09/26 現在使用しているAutoitのバージョンは 3.3.16.1 です。

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

Autoit で作成したプログラムは、Windows セキュリティ(Microsoft Defender、Windows Defender)で誤検知される場合があります。

特に x86(32ビット用)でコンパイルしたプログラムはほとんど検知されてしまいます。

x64(64ビット用)でコンパイルすれば、悪意のないコードならばほとんどの場合検知されませんが、「UPX で圧縮」を選択してコンパイルすると悪意のないコードでもセキュリティソフトで検知されてしまいます。

そのため、筆者の自作ソフトは、ほぼ x64(64ビット用)で作成しています。

また、レジストリなど、システム関連の設定を変更するプログラムは、不審なプログラムとして検知される場合があります。