
このカテゴリでいいのか迷いましたが、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で質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Python でWindowsのショートカット(.lnk)のプロパティを参照したい 1 2023/02/01 15:09
- その他(プログラミング・Web制作) Windowsのメモ帳でジョークウイルスが作りたいです。 3 2022/06/04 12:17
- その他(プログラミング・Web制作) Windowsのメモ帳でジョークウイルスが作りたいです。 1 2022/06/04 11:30
- その他(IT・Webサービス) Windows Defender Scheuled Scanの表示方法を教えて下さい。 仕事でWin 1 2022/07/25 17:45
- その他(Microsoft Office) Office(Windows版,Word/Excel/PowerPoint等)にログインできません 4 2022/07/24 15:18
- Visual Basic(VBA) VBSで作成した相対パスのショートカットが他者と共有できません。 1 2022/09/05 11:20
- Windows 10 VirtualBox 7のゲストOSでの物理HDDパーティションのマウント方法 2 2023/05/04 13:01
- Windows 10 ショートカットのWindowsロゴキー + I。「I」は何の略? 2 2022/12/10 00:11
- Windows 10 (緊急)windowsのタスクバーやアプリ?が反応しない 3 2023/03/28 05:03
- Windows 10 プロファイルエラーについて 2 2022/12/16 09:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
指定したアプリケーションをモ...
-
バッチファイル 特定ウインドウ...
-
バッチファイル エクセル起動
-
ExcelVBAにてアプリをタスクマ...
-
winlogon.exeって?
-
cygwin上でのTeraPadの起動
-
EXCELをバッチコマンドで...
-
WSHで空白を含んだコマンドの指...
-
gccがコマンドプロンプト上で使...
-
UWSCについて
-
VBAでwindowsメールを起動させたい
-
Visual basic6.0からショートカ...
-
c#でコマンドプロンプトを実行...
-
RUNASコマンドを使って、自動的...
-
CreateShortCut 環境変数のまま...
-
大量のフォルダからひとつのフ...
-
win10の「フォト」で、「次へ」...
-
バッチでテキストファイルから...
-
バッチのforで文字を抽出したい
-
バッチ終了時にDOS窓を閉じるコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイル 特定ウインドウ...
-
ExcelVBAにてアプリをタスクマ...
-
EXCELをバッチコマンドで...
-
ショートカットの作成とコピー
-
batファイルで立ち上げたaplを...
-
VB.NETでDOSコマンドの複数実行
-
c#でコマンドプロンプトを実行...
-
UWSCについて
-
バッチファイルからftpを実行時...
-
VBAからキャッシュを削除する方...
-
Shiftキーを押しながら起動
-
バッチファイルでAPを終了さ...
-
64bitのwindowsサーバーで32bit...
-
ASPからのEXEファイル起動
-
stable diffusionのインストー...
-
バッチファイルでの時間差実行
-
exe間での引き値の受け取り方法
-
RUNASコマンドを使って、自動的...
-
バッチへ値を返す
-
複数の処理の終了を待ちたい
おすすめ情報