
このカテゴリでいいのか迷いましたが、VBScript の CreateShortCut の質問です。
たとえばペイントのショートカットは "%SystemRoot%\System32\mspaint.exe" と設定されていますが、これを次の記述のように、普通に TargetPath を読み出すと "C:\WINDOWS\System32\mspaint.exe" となってしまいます。
MsgBox CreateObject("Wscript.Shell").CreateShortCut( "C:\~~\ペイント.lnk" ).TargetPath
これをショートカットに実際に設定されているとおりに(%SystemRoot% なら %SystemRoot%、C:\WINDOWS なら C:\WINDOWS として)読み出す方法は無いのでしょうか?
よろしくお願いします。

No.1ベストアンサー
- 回答日時:
言おうとしてる事がちょっと理解できません。
疲れてるのかな。。。
CreateShortCut メソッドで作成された ShortCut オブジェクトの TargetPath に設定するリンク先ファイル名のパスの記述方法ですよね?
下記コードの最終行 (A) とその前の行 (B)、2種類の書き方で試しましたが、(A) の場合は 「%SystemRoot%\System32\notepad.exe」 となり、(B) の場合は 「C:\Windows\System32\notepad.exe」 となりましたが?
Dim objShell
Set objShell = CreateObject("WScript.Shell")
Dim desktopPath
desktopPath = objShell.SpecialFolders("Desktop")
Dim lnkPath
lnkPath = desktopPath + "\メモ帳.lnk"
Dim objShortCut
Set objShortCut = objShell.CreateShortcut(lnkPath)
objShortCut.TargetPath = "%SystemRoot%\System32\notepad.exe" ' -- (A)
objShortCut.TargetPath = "C:\Windows\System32\notepad.exe" ' --(B)
説明不足でした。
ショートカットを作成するのではなく、既に存在しているショートカットファイルの設定内容を読み出した時の質問です。
私も Create ShortCut という名称が「へんだな」とは思っていたのですが、質問に書いたコードで既存ファイルの内容を読み出せています。Saveしないで終了すればタイムスタンプも変わりません。
今確認してみたら、マイクロソフトのドキュメントには作成する説明しかありませんでしたが、@ITには(次のページの最後に)読み出しでも使えるとの記述がありました。
http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh1 …
もしかしたらマイクロソフト(CreateShortCut作成者)としては、参照は想定外の使い方なのかも知れません。
既存のショートカットファイルの内容が環境変数で設定されていれば、その環境変数のままの設定値を知る方法は無いでしょうか?
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Shiftキーを押しながら起動
-
バッチファイル 特定ウインドウ...
-
c#でコマンドプロンプトを実行...
-
DOS窓の非表示について
-
大量のフォルダからひとつのフ...
-
コマンドプロンプトの「%1」と...
-
コマンドプロンプトのエラーに...
-
binファイルを解凍したいの...
-
win10の「フォト」で、「次へ」...
-
ファイル名を該当フォルダ内か...
-
#include <Windows.h>というヘ...
-
USBメモリから読み出しができな...
-
Windows System32 Security Hea...
-
これってパソコンの最適化が完...
-
自分で作成した重要ファイルを...
-
一括でフォルダと同じ名前にフ...
-
バッチでテキストファイルから...
-
DVD Flickを使用していてDVDを...
-
名前の変更ができない動画ファイル
-
make test って何をするための...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイル 特定ウインドウ...
-
EXCELをバッチコマンドで...
-
ExcelVBAにてアプリをタスクマ...
-
UWSCについて
-
batファイルで立ち上げたaplを...
-
VB.NETでDOSコマンドの複数実行
-
c#でコマンドプロンプトを実行...
-
Shiftキーを押しながら起動
-
バッチへ値を返す
-
gccがコマンドプロンプト上で使...
-
CreateProcessの制御について
-
64bitのwindowsサーバーで32bit...
-
stable diffusionのインストー...
-
プログラムを実行すると、なぜ...
-
VB.NETでコマンドプロンプトの操作
-
Visual basic6.0からショートカ...
-
バッチファイルからftpを実行時...
-
ASPからのEXEファイル起動
-
パスの件
-
VBSでコマンドプロンプトのカレ...
おすすめ情報