• ベストアンサー

EXEがスタートアップから起動したか?、それ以外か?の判断

下の例のような場合のEXEがスタートアップから起動したか?、それ以外か?の判断の仕組みをVBで作る方法を知りたいのですが出来るのでしょうか? 出来るのでしたら教えていただきたいのです。どうかよろしくお願いいたします。 例) ある、一つのEXEファイルがあります。 このEXEは、スタートアップにショートカットが存在ます。 よって、OSを起動すると、そのEXEは起動していますが、一旦、落として、EXEファイルをダブルクリックすれば、当然、EXEファイルは起動しますので、見た目ではわかりません。 このプログラムを作るときに、そのEXEがスタートアップから起動したか?、それ以外か?(例えば、エクスプローラから直接起動した等)を判断したい。

質問者が選んだベストアンサー

  • ベストアンサー
  • nihonrisu
  • ベストアンサー率25% (9/35)
回答No.1

素人の考えですが・・・ ショートカットを二種類用意してはいかがでしょうか。 1つは、スタートアップ登録起動用、2つめは、デスクトップ起動用と二種類用意します。スタートアップ登録用ショートカットは、デスクトップ以外の場所に隠しておきます。 今回の質問の環境では、 ショートカットのプロパティのリンク先を見ると、EXEファイル名が設定されますよね。そこで、リンク先の入力域に引数を設定してやります。 (0だったら、スタートアップ起動、1だったらデスクトップ等) VBのEXE内でコマンドラインのパラメタを取得して、スタートアップ起動か、デスクトップからの起動かをVBアプリ側で区別できますので、VBアプリで起動種別を表示させるなり、バージョン情報にこっそり表示するなりしてみて、見た目でも区別できるようにしてはいかがでしょうか。

mashi
質問者

お礼

これを機会にDOSのコマンドについてあまり詳しくないので 少し勉強してみる事にしました。目的は達成できそうです。ありがとうございました。

その他の回答 (1)

noname#9414
noname#9414
回答No.2

nihonrisu様のおっしゃる案を少々改良して 以下のようにしてはどうでしょうか。 スタートアップで起動するということは、 必ずショートカットを作成するので、そちらは 引数を渡すようにショートカットを書き、 通常のEXEファイルをダブルクリックした場合は 当然引数は渡せないのですから、引数なし。 これをプログラム側で、引数が0の時は、 スタートアップ、1の時はそれ以外のショート カット、ないときはEXEファイルを直接実行 したものと判断してはどうでしょうか。 それ以外には、カレントディレクトリで 判断する方法などもありますが、これは あまり実現的ではありません。簡単に変更 されてしまう可能性があるからです。 この方法でだめなときは補足してください。 ではでは☆

mashi
質問者

お礼

ご丁寧な回答ありがとうございました。 すごく参考になりました。

関連するQ&A