Autoit スクリプト ( EXE ) にファイルをドラッグで関連付けされたアプリのフォルダを開くを実現
記事の執筆に AI な類は使用しておりません。
【 目次 】
はじめに下準備
ShellExecute_File.au3 ソース
おまけ
ShellExecute_App.au3 ソース
_ProcessListProperties.au3 を作る
動画
おすすめリンク/関連記事
はじめに
Windows でファイルに関連付けされているアプリのフォルダを開くという場合がたまにあるのですが地味に開くのが面倒。
ファイルをドラッグするだけで関連付けされたアプリが
格納されているフォルダを開く
Autoit スクリプトを作ってみましたので置いておきます。
宜しければどうぞ。
おまけでアプリを最前列にし、Shiftキー を押したら
そのアプリが格納されているフォルダを開くという物も置いておきます。
【 目次へ戻る 】
下準備
このページで配布しているスクリプトは Autoit という命令で書かれているので、専用の環境が必要です。
環境は、ファイルをダウンロード、解凍し
.au3 という拡張子を関連付けするだけで使えます。
私の記事で宜しければ以下にて。
Autoit3 Windowsの操作を自動化
使用方法/日本語化 ( HELPファイル )
以下の項目を行います。
・ダウンロード、インストール
・関連付け
・EXEファイルを作る
配布されているソースは平文で丸見えなので
ウイルスなどを紛れさせる要素はなく ( ソースを見ればの意味です )
自分で実行形式を作るのでウイルスを混入される恐れもないです。
実行も .au3 をそのまま実行するなら関連付けをするだけ。
.au3 を実行ファイル形式にするにもソースの .au3 ファイルを
変換アプリへドラッグして指定し変換のボタンを押すだけの超簡単です。
是非、ご挑戦下さい。
*** ご注意 ***
ブログに書いてあることや
ブログで配布しているスクリプトを使用する場合は
自己責任にてお願いいたします。
このブログの管理者 気ままさん は
ブログに書いてあること、ブログで配布している
スクリプトを使用して発生した
すべての事柄において責任を負いません。
これに同意をいただけない方へのご使用は許可いたしかねます。
【 目次へ戻る 】
ShellExecute_File.au3 ソース
ここのソースを EXE に変換しその EXE へ何かのファイルをドラッグするだけで
関連付けされたアプリが格納されているフォルダを開く
Autoit スクリプトです。
ファイルをドラッグするのにこのソースへドラッグしても
意味はないので必ず EXE に変換しなくてはなりません。
-----
拡張子は .au3 で保存して下さい。
拡張子とは?が不明な人は以下のページの 関連付け の見出しに
AutoIt3_au3.zip ~ とあるのでダウンロードをし
関連付け.au3 という類があるのでメモ帳へドラッグし
中身の文章を全部消して使って下さい、ファイル名は自由へ変えて大丈夫です。
Autoit3 Windowsの操作を自動化
使用方法/日本語化 ( HELPファイル )
-----
以下、ソースです。
;ここから ----- #include <file.au3> #include <WinAPIShellEx.au3> $tit = "ShellExecute_File v1.00" ;https://kimama9.blog.fc2.com/blog-entry-1114.html ;テスト時 = 1 $test = 0 ;テスト用データの設置 If $test = 1 Then Dim $CmdLine[2] = ["1","r:\001.txt"] EndIf ;関連付けのフォルダを開く = 1 $open = 1 ;クリップボードへ結果を送らない = 0 / フォルダのみ = 1 / アプリ名のみ = 2 / フォルダ+アプリ名 = 3 $clip = 0 ;----- ;初期設定 $lod = 0 $name = "" Dim $szDrive, $szDir, $szFName, $szExt ;----- ;ドラッグされたファイルがない場合 If $CmdLine[0] = 0 Then msgbox("", $tit, "ドラッグしたファイルがどのアプリで関連付けされているかを確認し" & @CRLF & "アプリのフォルダを開く、EXE化して使用します") exit EndIf ;ドラッグしたファイルに対してアプリ名フルパスを取得 $name = _WinAPI_FindExecutable ('"' & $CmdLine[1] & '"') ;取得したフルパスを分離 _PathSplit($name, $szDrive, $szDir, $szFName, $szExt) ;フォルダを開く If $open = 1 Then ShellExecute('"' & $szDrive & $szDir &'"') ;クリップボードへ転送 If $clip = 1 Then ClipPut('"' & $szDrive & $szDir &'"') If $clip = 2 Then ClipPut('"' & $szDrive & $szDir & $szFName & $szExt & '"') If $clip = 3 Then ClipPut('"' & $szDrive & $szDir & '"' & @CRLF & '"' & $szDrive & $szDir & $szFName & $szExt & '"') ;クリップボード転送がONならツールチップを表示 If $clip > 0 Then $lod = 100 while 1 Sleep(10) If $clip = 1 Then ToolTip("クリップボードへ出力しました。" & @CRLF & '"' & $szDrive & $szDir &'"') If $clip = 2 Then ToolTip("クリップボードへ出力しました。" & @CRLF & '"' & $szDrive & $szDir & $szFName & $szExt & '"') If $clip = 3 Then ToolTip("クリップボードへ出力しました。" & @CRLF & '"' & $szDrive & $szDir & '"' & @CRLF & '"' & $szDrive & $szDir & $szFName & $szExt & '"') $lod = $lod - 1 If $lod < 1 Then ExitLoop WEnd EndIf ;msgbox("", "", $name & @CRLF & $szDrive & $szDir) exit ;ここまで -----
上をメモ帳などへコピーして拡張子 .au3 で保存し
下準備 でのリンク先にて書いてある
・EXEファイルを作る を行って EXE の実行形式にして下さい。
作ったらその作成したファイルに、例えばテキストファイルを
ドラッグするとメモ帳のアプリがあるフォルダが開きます。
何故こんな面倒なことを?配布すればいいのでは?ではありますが
ソースを提供し安心して使えるファイルを
自分で作るを目標として行っております。
いくら便利なアプリが公開されていても
安全なのか?と疑いながら使うは精神衛生上良くないからです。
その点、面倒ではありますが自分で作れば安心です。
【 目次へ戻る 】
ShellExecute_App.au3 ソース
こちらはアプリを最前列にし、Shiftキー を押したらそのアプリが格納されているフォルダを開くという類です。
上と似ていますが、起動したアプリからフォルダを開けるので
関連付けされたファイルがないけれどフォルダを開きたいの用途で活躍。
-----
注意としましてこのスクリプトは外部のファイルが必要です。
_ProcessListProperties.au3 を作る にて
_ProcessListProperties.au3 を作り
Autoit があるフォルダの Include へ
_ProcessListProperties.au3 のみコピーして下さい。
※Include フォルダは Autoit の下準備で解凍したファイル群にあります
-----
以下、ソースです。
メモ帳などへコピペし、拡張子 .au3 で保存して下さい。
拡張子とは?の場合は以下の項目に書いておきました。
ShellExecute_File.au3 ソース
;ここから ----- #include <Misc.au3> #include <Process.au3> #include <file.au3> #include <_ProcessListProperties.au3> ;_ProcessListProperties.au3 は以下のページより、1ページ目の先頭にある ;This is my custom error handler この文字から ( 先頭の ; も忘れずに ) ;EndFunc ;==>ProcessListProperties この文字までをメモ帳に貼り付けて ;_ProcessListProperties.au3 という名前にして autoit の Include フォルダへ放り込んでください ;以下のエラーが出る場合は _ProcessListProperties.au3 が存在していないか内容がおかしい、コピペミスです ;$avRET = _ProcessListProperties($Pid) ;$avRET = ^ ERROR ;Error: Unknown function name. ;https://www.autoitscript.com/forum/topic/70538-_processlistproperties/ $tit = "ShellExecute_App v1.00" ;https://kimama9.blog.fc2.com/blog-entry-1114.html ;関連付けのフォルダを開く = 1 $open = 1 ;クリップボードへ結果を送らない = 0 / フォルダのみ = 1 / アプリ名のみ = 2 / フォルダ+アプリ名 = 3 $clip = 0 ;----- ;初期化 $lod = 0 $Pid = "" $exe_name = "" Dim $szDrive, $szDir, $szFName, $szExt ;----- ;起動時、CTRL / Shift キーが押されていたら離されるまで待機 while 1 Sleep(10) $lod = 0 If _IsPressed("10") Then $lod = $lod + 1 If _IsPressed("11") Then $lod = $lod + 1 If $lod = 0 Then ExitLoop WEnd sleep(100) ;----- ;Shiftキーを押したら次へ進む様にツールチップ表示 while 1 Sleep(100) ToolTip("調べるアプリを最前列にして Shift キーを押してください" & @CRLF & "キャンセル:CTRL キー") If _IsPressed("10") Then ExitLoop If _IsPressed("11") Then exit WEnd ;アクティブアプリのPID値を取得 $Pid = WinGetProcess("[active]", "") ;PID値からアプリ名を取得 $exe_name = _ProcessGetName($Pid) ;検索していますのツールチップ表示 ToolTip("検索中:PID = " & $Pid & " / FileName = " & $exe_name) ;PID値からアプリのフルパスを取得 $avRET = _ProcessListProperties($Pid) ;ツールチップを消す ToolTip("") ;msgbox("", "", $avRET[1][5]) ;フルパスを分解 _PathSplit($avRET[1][5], $szDrive, $szDir, $szFName, $szExt) ;フォルダを開く If $open = 1 Then ShellExecute('"' & $szDrive & $szDir &'"') ;クリップボードへフルパスを送る If $clip = 1 Then ClipPut('"' & $szDrive & $szDir &'"') If $clip = 2 Then ClipPut('"' & $szDrive & $szDir & $szFName & $szExt & '"') If $clip = 3 Then ClipPut('"' & $szDrive & $szDir & '"' & @CRLF & '"' & $szDrive & $szDir & $szFName & $szExt & '"') ;クリップボードへ送った場合にツールチップを表示 If $clip > 0 Then $lod = 100 while 1 Sleep(10) If $clip = 1 Then ToolTip("クリップボードへ出力しました。" & @CRLF & '"' & $szDrive & $szDir &'"') If $clip = 2 Then ToolTip("クリップボードへ出力しました。" & @CRLF & '"' & $szDrive & $szDir & $szFName & $szExt & '"') If $clip = 3 Then ToolTip("クリップボードへ出力しました。" & @CRLF & '"' & $szDrive & $szDir & '"' & @CRLF & '"' & $szDrive & $szDir & $szFName & $szExt & '"') $lod = $lod - 1 If $lod < 1 Then ExitLoop WEnd EndIf exit ;ここまで -----
このファイルは特段 EXE に変換しなくても使えます。
実行するとツールチップが表示されますので
アプリを最前列にし、 Shiftキー を押すことで
最前列になっているアプリのフォルダが開きます。
_ProcessListProperties.au3 は私のスクリプトではありませんので
使用する場合は私の ShellExecute_App.au3 と
_ProcessListProperties.au3 のファイルを
一緒に配布するなどしないで下さい、必ず入手は別々にして下さい。
【 目次へ戻る 】
_ProcessListProperties.au3 を作る
ShellExecute_App.au3 ソース にて_ProcessListProperties.au3 が必要ですと書きましたが作成方法です。
1.
まず以下のページに飛びまして上部に
_ProcessListProperties() - AutoIt Example Scripts
AutoIt Forums
2.
Here is the function, with a running demo script:
がありますので、そこまで移動して下さい。
3.下へスクロールすると以下がありますので、ここからコピペの開始
; This is my custom error handler
4.以下があるのでこの行を含めてここまでをメモ帳へコピペします
EndFunc ;==>_ProcessListProperties
5.メモ帳へコピペ、貼り付けた物を拡張子 .au3 として保存します。
名前は _ProcessListProperties.au3 です。
先頭の _ アンダーバーを忘れないで下さい。
6.作ったら _ProcessListProperties.au3 を
Autoit があるフォルダの Include へ
_ProcessListProperties.au3 のみコピーして下さい。
※Include フォルダは Autoit の下準備で解凍したファイル群にあります
注意としてスクロールできるので全部をコピペしてしまう感がありますが
上の部分はデモが含まれているので除外します。
【 目次へ戻る 】
動画
不要かと思いましたが、必要かな?と思い動画を作成して見ましたので宜しければどうぞ。
ShellExecute_File.au3 v1.00
00:00:00 Autoit の Aut2Exe フォルダより Aut2exe_x64.exe を起動し
.au3 を EXE 実行形式へ変換します
00:00:29 ShellExecute_File.au3 をウィンドウへドラッグ
00:00:41 Convert ボタンで作成
00:01:01 テキストファイルを、作った EXE へドラッグすると
テキストファイルに関連付けられたアプリのフォルダが開く
00:01:20 同じく圧縮書庫を、作った EXE へドラッグすると
圧縮書庫に関連付けられたアプリのフォルダが開く
00:01:40 テキストファイルの関連付けを秀丸に変更してみて
同じ類をしてみて、同じくフォルダが開きます
通常この様な事はしませんが、一応動作するの意味合い
-----
ShellExecute_App.au3 v1.00
00:02:14 Autoit の Include フォルダを開き
_ProcessListProperties.au3 をコピーします
00:02:54 どれでもいいのでアプリを開きます、
00:03:01 ShellExecute_App.au3 を実行します
00:03:06 ツールチップにて Shift キーを押して下さいの表示になるので
先ほど開いたアプリを最前列にしてから Shift キー を押します
00:03:13 そのアプリの実行ファイルが格納されているフォルダが開きます
00:03:25 同じ動作を別のアプリで行います
お疲れ様でした。
-----
とまあ、こんな感じで関連付けされている
実行アプリのフォルダを素早く開こうでした。
Autoit スクリプトの環境を導入していない方からすると
面倒ではありますが、自分で作れば安心して使えるので
そこはお許しを…という。
それでは、皆様のパソコン作業が捗りますようにと
お祈りいたしまして、これにて終了です。
以上。
おすすめリンク/関連記事
・Amazon / 楽天市場 / Yahoo! でお買い物をする。関連リンク
・_ProcessListProperties() - AutoIt Example ScriptsAutoIt Forums
・Autoit3 Windowsの操作を自動化
使用方法/日本語化 ( HELPファイル )
・Autoit3 関連記事 | Page 1
- 関連記事
-
- Autoit スクリプト ( EXE ) にファイルをドラッグで関連付けされたアプリのフォルダを開くを実現 (2023/10/13)
- ファイル名に指定ファイル名が含まれていたら指定したアプリで開く Autoit スクリプト (2023/08/30)
- テンキーの長押しに任意のショートカットキーなどの機能を登録可能な Autoit スクリプト (2023/07/24)
- Win11 バッチファイルを管理/ウィンドウへファイルをドラッグでバッチを選択実行 Autoit スクリプト (2023/07/10)
- デスクトップにラインを引き左ダブルクリックで任意のフォルダを開く Autoit スクリプト (2023/05/12)
- キャプチャーするウィンドウの後ろに単色画面を出し余計な画面の映り込みを排除する Autoit スクリプト (2023/02/24)
- Everything search engine で拡張子ごとに開くアプリを指定する方法 (2023/02/15)
- 指定キー+マウスホイール上下で登録した作業を行う Autoit スクリプト (2023/01/23)
- ブラウザ上で文字を選択しホットキーで文字を検索 Autoit スクリプト Firefox Edge Vivaldi Chrome (2023/01/15)
- ブラウザでCTRL+Enterキー/指定キーを押し任意の検索サイトで検索をする Autoit スクリプト (2023/01/04)