2014年11月10日月曜日

UNC変換

社内メールで「サーバーに上げたから、Y:\foo\baaを見てね」とか来るけど、あなたのYドライブのマウント先は私のYドライブのマウント先ではないのだよ!

先にUNC(絶対パスみたいなもの)に変換してから送ってほしいけど面倒なんだよね。
AutoItにはUNC変換APIがあるから作ってみる。

YドライブとかのファイルとかをD&DするとクリップボードにUNCパスがコピーされます。
結果表示はトレイチップにしてますがお好みで。



#Include <winnet.au3>

; コマンドライン引数がない場合終了
If $arg[0] = 0 Then Exit

; 第一引数のみ取得する
$sLocalPath = $arg[1]

; UNCに変換
$retval = _WinNet_GetUniversalName($sLocalPath)
$UNCName = $retval[0]
$NetworkName = $retval[1]
$RemainPath = $retval[2]

; UNC変換されたかどうか確認
if $UNCName == 0 Then
   $path = $sLocalPath
Else
   $path = $UNCName
EndIf

; 結果表示
;MsgBox(0, "UNCName", $path)
TrayTip(@ScriptName, $path, 1, 1)

; クリップボードに入れる
ClipPut ($path)
; トレイチップが一定時間表示し続けるように
Sleep(3000)