DOBON.NET DOBON.NETプログラミング掲示板過去ログ

実行ファイルの起動の違いにつきまして

環境/言語:[Windows XP 使用言語 VB 6.0]
分類:[VB6以前]

お世話になります。

概要
殆どの場合は問題なく実行ファイルは起動できます。しかし下記に限り起動できません。
デスクトップ上の歩数計リンクアイコンを手動でクリックしますと問題なく歩数計ソフトが起動されます。
しかしvb6ソフトから起動しますとresources.mdbが見つかりませんでしたとなります。
そこでvb6歩数計ソフトフォルダー内にresources.mdbファイルを追加しまうと歩数計ソフトが起動できました。
そこで歩数計リンク先にありますresources.mdbファイルを削除してもvb6ソフトから起動できました。

ご質問
1.デスクトップ上からリンクアイコンを手動でクリックする場合とvb6ソフトか  らリンクアイコンをクリックする場合に実行に違いがあるのでしょうか。
2.vb6ソフトフォルダー内にresources.mdbファイルを追加しなくても起動させる  方法はありませんでしょうか。ご授示していただけませと幸いです。
  よろしくお願いいたします。

参考
vb6ソフトからリンクアイコンをクリック
LNK=歩数計ソフトのリンク先

Private Sub Command1_Click()
Shell LNK, 1
End Sub
■No23561に返信(SKさんの記事)
> 歩数計リンクアイコンを手動でクリックしますと問題なく歩数計ソフトが起動されます。
> しかしvb6ソフトから起動しますとresources.mdbが見つかりませんでしたとなります。
歩数計ソフトの仕様がわからないので、想像で答えることしか
できませんが、恐らくはそのソフトが見ている mdb のパスというのは、
「exe のあるディレクトリ」ではなく「現在のディレクトリ」なのでしょう。

# あるいは、そのアプリがレジストリの
# HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
# の影響を受けている可能性もありますが…。


まずはショートカット ファイルのプロパティで、『作業フォルダ』のところを
別の場所に設定してみてください。その場合も、ダブルクリックで起動しますか?

それで起動しなくなるようならば、カレントディレクトリの差異が
原因と思われますので、
 (案1) 起動前に、ChDrive および ChDir ステートメントを呼び出しておく。
を試してみてください。

作業フォルダ(カレントディレクトリ)の影響を受けないようであれば、
Shell 関数で呼び出す代わりに、
 (案2) FolderItem.Verb メソッドでの起動を試みる。
 (案3) ShellExecute(Ex) API での起動を試みる。
なども試してみてください。
魔界の仮面弁士 様

ご返答くださいましてありがとうございました。
考えられます多くの詳細案をご提供してくださいましてお礼を申し上げます。
案につきまして試してみます。少し時間がかかると思いますが、ご報告いたします。
歩数計ソフトの仕様につきましてはWalking style HJ-710ITのソフトです。
http://www.healthcare.omron.co.jp/product/hj710it_1.html
魔界の仮面弁士 様

ご解答ありがとうございました。
お蔭様で(案3)で解決することができました。
>作業フォルダ(カレントディレクトリ)の影響を受けないようであれば、
>Shell 関数で呼び出す代わりに、
>(案3) ShellExecute(Ex) API での起動を試みる。

参考
lngRet = ShellExecute(0, "open", "BLCore.exe", vbNullString, "Z:\BI-LINK-STANDARD-EDITION-1.0", SW_SHOWNORMAL)

起動による違いがあることも知ることができました。
ご指導本当にありがとうございました。心より厚くお礼を申し上げます。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板