- ベストアンサー
フリーソフトをVBで起動させるには
フリーソフトをVBで立ち上げたいのですが、やり方がわかりません。コマンドボタンを押すと立ち上がるようにしたいです。ご存知の方ご教授お願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
>エラーが出てしまいます。 >他のパソコンでも使えるようにしたいので、出来れば相対パスがいいんですが…。 VBプロジェクトがあるフォルダと同じフォルダに vkey.bat という名前でバッチファイルを作ります。 バッチファイルの中は vkey.exe とだけ書いておきます。 そのvkey.batのプロパティを開き、プログラム・タブの 作業フォルダを「vkey.exeがあるフォルダ」に 実行時の大きさを「通常のウィンドゥ」に 「プログラムの終了時にウィンドゥを閉じる」のチェックを付けます。 あとは、実行するコードを Private Sub コマンド1_Click() Call Shell("vkey.bat") End Sub に変えます。 他のPCに持って行って使う時は、VBプロジェクト本体とvkey.batをコピーし、コピー先のvkey.batのプロパティを開き、プログラム・タブの 作業フォルダを「vkey.exeがあるフォルダ」に 実行時の大きさを「通常のウィンドゥ」に 「プログラムの終了時にウィンドゥを閉じる」のチェックを付けます(このプロパティの設定は、コピー先のPCすべてで行う必要があります) VBプロジェクト本体は、どのPCにコピーしても一切変更の必要はありませんし、vkey.exeがどこにあっても「vkey.batのプロパティの作業フォルダの場所」を正しく設定する事で、動作環境の違いを吸収できます。 この方法であれば、VBプロジェクト本体がDドライブのどこか、vkey.exeがCドライブどこか、と言う構成でもOKです。
その他の回答 (5)
- KenKen_SP
- ベストアンサー率62% (785/1258)
EXE の場所を起点とするなら、 Shell App.Path & "\..\test\test.exe", vbNormalFocus こんな感じで、一つ上のディレクトリーにあるテストフォルダのtest.exe を実行できますが、こういうことかな?
お礼
お礼が遅くなってすいません。何とか解決できました。ありがとうございました。
- investyou
- ベストアンサー率23% (13/56)
起動する*.vbpのあるところがカレントディレクトリになってる。 いま絶対パスを打ち込んで起動できるようになったわけですね? ChDirをつかえば、カレントディレクトリが変更できるよ。 その後にフリーソフトのVB(*.exe)をShellで叩けばいいと思います。 あ、ちなみVB6ね
お礼
お礼が遅くなってすいませんでした。参考にさせていただきました。
- teiou68k
- ベストアンサー率28% (202/721)
思いつき(^^;) カレントディレクトリが違うから? カレントかえてみたらどうなりますか?
補足
ご回答ありがとうございます。できました!もうひとつ質問なんですが、相対パスでは出来ないのでしょうか?他のパソコンでも使えるようにしたいので、出来れば相対パスがいいんですが…。ご存知ご教授よろしくお願いします。
- chie65536
- ベストアンサー率41% (2512/6032)
Private Sub コマンド1_Click() Call Shell("c:\windows\notepad.exe",vbNormalFocus) End Sub
補足
chie65536さん。素早いご回答ありがとうございました。サンプルコードを書いて頂いたのでたすかりました。KENKEN_SPさんへの補足にも書いたのですが、エラーが出てしまいます。どうにかエラーがでないようにしたいです。いい方法がありましたらご教授願います。
- KenKen_SP
- ベストアンサー率62% (785/1258)
こんにちは。KenKen_SP です。 簡単なのは Shell 関数です。引数にパスを渡すだけです。これを Click イベントに書いてください。 例) Shell("calc.exe")
補足
KenKen_SPさん。素早いご回答ありがとうございます。 さっそくやってみたのですが、エラーが出てしまいます。”キー定義ファイル(vkey.kdf)がありません”と出て、ファイルを開くダイアログが出てきます。それでvkey.kdfというファイルを開くと立ちあがるのですが、エラーを出ないようにするにはどうすればいいでしょうか? フリーソフトはvkeyというソフトキーボードを使っています。
お礼
お礼が遅くなってすいません。大いに参考にさせて頂き、解決することができました。ありがとうございました。