![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_08.png?5a7ff87)
あるプログラムに対し、ショートカットを vbsで作成したいのですが、
リンク先の引数で不具合が発生します。
具体的には KeePassというアプリケーションで、
Database.kdeを開き、パスワードにpassを指定する、というものです。
"C:\...\KeePass.exe" "Database.kdb" -pw:"pass"
vbsのソースはこちらです
------------------------------------------------------------
Dim WshShell, fso, ShrCut
Set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set ShrCut = WshShell.CreateShortcut(WSHShell.CurrentDirectory & "\KeePass.lnk")
ShrCut.TargetPath = WSHShell.CurrentDirectory & "\KeePass.exe"" ""Database.kdb"" -pw:""pass"
ShrCut.WorkingDirectory = WSHShell.CurrentDirectory
ShrCut.IconLocation = WSHShell.CurrentDirectory & "\KeePass.exe"
ShrCut.Save
------------------------------------------------------------
ショートカット作成後に実行すると、"passを探しています と表示されますが、
ショートカットのプロパティを開き、リンク先をコピペで更新すると、動作します。
宜しくお願い致します。
No.3ベストアンサー
- 回答日時:
'MSDN Libraryには一回、目を通しておこうぜ♪頼むから。
'http://msdn.microsoft.com/library/ja/default.asp …
'返ってくるのは
'WshShortcut オブジェクト
'または
'WshURLShortcut オブジェクトオブジェクトなので
'これも引いてみる
'http://msdn.microsoft.com/library/ja/default.asp …
'TargetPathプロパティの説明。
'http://msdn.microsoft.com/library/ja/default.asp …
'【このプロパティに設定できるのはショートカットのリンク先パスのみです。】
'【ショートカットへの引数は Argument プロパティに設定します。】
'実際にはArgumentではなくArgumentsプロパティのようだが、
'それは先ほどのオブジェクトの説明を見て試行錯誤すればわかるでしょ?
Dim WshShell, fso, ShrCut
Set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
'カレントディレクトリに、ショートカットを作成
Set ShrCut = WshShell.CreateShortcut(WSHShell.CurrentDirectory & "\KeePass.lnk")
'リンク先のパスを記述 ("C:\...\KeePass.exe" "Database.kdb" -pw:"pass")
ShrCut.TargetPath = WSHShell.CurrentDirectory & "\KeePass.exe"
'【必要性を全く感じない】、と述べた上で
'お好みに応じてもしどうしても引用符でくくりたいなら
'ShrCut.Arguments = """Database.kdb"" -pw:""pass"""
'とでも変更してください。
ShrCut.Arguments = "Database.kdb -pw:pass"
'作業フォルダを記述 (カレントディレクトリ)
ShrCut.WorkingDirectory = WSHShell.CurrentDirectory
'ショートカットアイコンを指定
'自動的に引用符でくくられるらしい
ShrCut.IconLocation = WSHShell.CurrentDirectory & "\KeePass.exe"
'ショートカットを保存
ShrCut.Save
No.4
- 回答日時:
もとい、修正
'ショートカットアイコンを指定
'自動的に引用符でくくられるらしい
ではなく
'リンク先のパスを記述 ("C:\...\KeePass.exe" "Database.kdb" -pw:"pass")
'自動的に引用符でくくられるらしい
ShrCut.TargetPath = WSHShell.CurrentDirectory & "\KeePass.exe"
のつもりで書いていた。
なお、ソースコード見てわかるだろうが、Argumentsの方には引用符が自動的には付かないようなので注意
No.2
- 回答日時:
= WSHShell.CurrentDirectory & "\KeePass.exe"" ""Database.kdb"" -pw:""pass"
↓
= WSHShell.CurrentDirectory & "\KeePass.exe Database.kdb -pw:pass"
passが変数で無いとしたら・・これで動きそうなもんだが?
あるいは
= Chr(34) & WSHShell.CurrentDirectory & "\KeePass.exe Database.kdb -pw:pass" & Chr(34)
とか?
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_03.png?5a7ff87)
No.1
- 回答日時:
ShrCut.TargetPath = WSHShell.CurrentDirectory & "\KeePass.exe"" ""Database.kdb"" -pw:""pass"
ここを
ShrCut.TargetPath = WSHShell.CurrentDirectory & "\KeePass.exe ""Database.kdb "" -pw:pass"
に変更しましょう。
この回答への補足
試してみましたが、動作致しませんでした。
アドバイス、ありがとうございます。
アプリのパスと、Database.kdbと、pass(-pw:passではない)を
""で括りたいのですが、うまくいきませんね。
TargetPath全体を、自動的に""で括っているようですが、
それが関係しているのでしょうか? 考慮はしているのですが
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) VBSで作成した相対パスのショートカットが他者と共有できません。 1 2022/09/05 11:20
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Windows 10 Windows11の実行モジュールはどこにある 1 2022/05/31 07:33
- Visual Basic(VBA) Excel VBAについて、 フォルダ内のファイルを全て開きたい場合、 FSOを使えば、Dirは使わ 1 2023/01/27 13:18
- その他(プログラミング・Web制作) VBSでExcelファイル起動時、重複しても開くのを止めたい 1 2022/10/01 23:20
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAにてアプリをタスクマ...
-
バッチファイル 特定ウインドウ...
-
EXCELをバッチコマンドで...
-
c#でコマンドプロンプトを実行...
-
batファイルで立ち上げたaplを...
-
exe間での引き値の受け取り方法
-
[バッチファイル]InternetExplo...
-
VB.NETでDOSコマンドの複数実行
-
バッチファイル実行時に起動す...
-
Market Speed をVBAで制御した...
-
キー自動入力のサンプルコード...
-
xampp1.7.4のApacheが起動しない
-
VB.NETでコマンドプロンプトの操作
-
ショートカットの作成とコピー
-
指定したアプリケーションをモ...
-
Visual basic6.0からショートカ...
-
CreateProcessでEXEを起動させ...
-
バッチファイルにて複数のプロ...
-
cmd.exe無しでPython実行
-
Shiftキーを押しながら起動
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイル 特定ウインドウ...
-
stable diffusionのインストー...
-
ExcelVBAにてアプリをタスクマ...
-
EXCELをバッチコマンドで...
-
ショートカットの作成とコピー
-
バッチファイル実行時に起動す...
-
VB.NETでDOSコマンドの複数実行
-
プログラムを実行すると、なぜ...
-
exe間での引き値の受け取り方法
-
64bitのwindowsサーバーで32bit...
-
batファイルで立ち上げたaplを...
-
c#でコマンドプロンプトを実行...
-
UWSCについて
-
Shiftキーを押しながら起動
-
gccがコマンドプロンプト上で使...
-
C#でMediaPlayerを立ち上げた後
-
VB.NETでコマンドプロンプトの操作
-
指定したアプリケーションをモ...
-
バッチファイルでAPを終了さ...
-
相対パスのショートカットフォ...
おすすめ情報