私の AutoIt スクリプトは、コマンド ライン経由で使用している限り機能しました。$CmdLine[1]
そこで、パスを引数として使用して渡すことができました。ここで、スクリプトを新しいメソッドに変換して、コマンド ライン引数を回避しようとしています。
Explorer ウィンドウを開き、ファイルを選択しますC:\test.txt
。その後、CTRL+ WIN+Cで AutoIt 関数をトリガーします。スクリプトは、アクティブなエクスプローラー ウィンドウで選択されているファイルを調べ、パスを取得して変数C:\test.txt
に割り当てます。$file
これは、私が立ち往生している進行中の作業です。
5 行$CmdLine[1]
目は、わからない秘密の関数に変更する必要があります。
;Assign key combination "CTRL-WIN-C" to function "copyUNC"
HotKeySet("^#c", "CopyUNC")
;function to copy UNC path of selected Windows Explorer file/folder to clipboard
func CopyUNC()
$file = FileGetLongName($CmdLine[1]) ;THIS LINE NEEDS TO BE CHANGED
$drive = StringLeft($file, 2)
$UNCdrive = DriveMapGet($drive)
If $UNCdrive = "" Then
$UNCfile = $file
else
$UNCfile = $UNCdrive & StringTrimLeft($file, 2)
endif
ClipPut($UNCfile)
endfunc
;necessary loop so AutoIt script stays active and in Tray
While 1
Sleep(100)
WEnd
Q: Windows エクスプローラーからAutoIt v3.3.8.1に選択したファイル/フォルダーのパスを取得するにはどうすればよいですか?
注 #1:引数を渡すためにレジストリと右クリックのトリックを使用したくありません
。 注 #2:複数のファイルが選択されている場合は、最初のファイルを渡すだけです。物事を過度に複雑にしないでください