• ベストアンサー

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

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

  • mashi
  • お礼率100% (9/9)

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

  • ベストアンサー
  • 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

  • スタートアップ タスクマネージャーだけが起動しない

    C:\Users\●\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup に Taskmgr.exe - ショートカット を入れてるのですが パソコンを立ち上げた時にタスクマネージャーは起動しません。 スタートアップに入っている他のファイルは起動します。 一覧のスタートアップの起動が終わり、 手動で Taskmgr.exe - ショートカット をダブルクリックすれば、タスクマネージャーは起動します。 なぜ自動では起動しないのでしょうか?

  • スタートアップが起動しない

    スタートアップフォルダにプログラムのショートカットを入れているのに、PCを起動したときにそのプログラムが起動しません。 C:\Documents and Settings\All Users\スタート メニュー\プログラム\スタートアップにはショートカットが置いてあり、 C:\Documents and Settings\(ユーザ名)\スタート メニュー\プログラム\スタートアップには何も置いてません。 ショートカットをダブルクリックするとちゃんと起動するので、ショートカットに問題はなさそうです。 どうか回答お願いします。

  • スタートアップがちゃんと起動しない

    スタートアップフォルダにショートカットを入れてあるのに ある日急にWindows起動時に起動しなくなりました。 プログラム>スタートアップで表示されるショートカットをダブルクリックしたらちゃんと起動するので、 ショートカットの問題ではないようです。 どんな些細なことでもいいので、こころあたりのある人は回答していただけないでしょうか?

  • 何故スタートアップでは立ち上がらないのでしょうか?

    win8.1です。 C:\Users\○○\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup に Taskmgr.exe - ショートカット を入れてるのですが PC起動時にタスクマネージャーが立ち上がりません。 しかしこのショートカットを手動でダブルクリックすると立ち上がります。 何故スタートアップでは立ち上がらないのでしょうか?

  • スタートアップにショートカットを送る

    exeファイルの右クリックメニューの「送る」に、そのファイルをスタートアップに登録する、つまりそのexeファイルのショートカットをスタートアップに送る方法はあるのでしょうか? 送るフォルダにスタートアップのショートカットを登録すると、そのexeファイルのコピーが送られてしまって、うまく機能しません。vistaの送るにはもともとデスクトップにショートカットを送る項目が存在しますが、そのプロパティを見てもどういう構造かがよくわかりませんでした。 わかる人がいれば教えてください。よろしくお願いします。

  • スタートアップが起動しない

    スタートアップに登録しているソフトが、コンピュータ起動時に立ち上がらなくなってしまいました。 どうか皆様のお知恵をお貸しください。 C:\Users\<ユーザー>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 以上のスタートアップのフォルダを確認してみましたが、ショートカットの内、[Update.Microsoft.com]以外のアイコンが白くなっていました。 そのフォルダに新しくショートカットを作ろうとしても、同じようにアイコンが表示されず、ダブルクリックしてもプログラムは起動しません。 ショートカットを他のフォルダにコピーや移動しようとしても「管理者のアクセス許可を提供する必要があります」「<ユーザ>からアクセス許可を得る必要があります」と出て、実行できません。 ショートカットのプロパティを見てみると、添付画像のように誰もアクセス許可を持っていない状態で、設定しようにも上手くいきませんでした。 セキュリティソフトも疑いましたが、windowsファイアウォール以外は動いていない状態です。 どのようにすれば、スタートアップを実行させる事ができるのでしょうか? また、何が原因なのでしょうか? どうかよろしくお願いします。

  • スタートアップでガジェットの起動ができない

    ガジェットの起動用にショートカットを作り アイコンをクリックすると起動しますが、 スタートアップに登録しても起動しません。 管理者として実行するように指定しています。 スタートアップで自動起動は無理ですか? リンク先は、"C:\Program Files\Windows Sidebar\sidebar.exe" /showGadgetsです

  • スタートアップからの起動が出来ません

    お世話になります。 タイトルの通りスタートアップに登録してあるプログラムが起動しません、スタート→プログラム→スタートアップは“なし”になっていますが、エクスプローラでスタートメニュー→プログラム→スタートアップを見るとショートカットが有ります。 窓の手・TweakUI辺りが影響しているのでしょうか? どなたか解決法があれば教えて下さい。 OSはMEです。

  • スタートアップの中身が起動しない

    以前までは、起動していたのですが、何かのはずみで起動しなくなりました。 具体的には、エクスプローラで見たDocuments and Settingsの中のallusersのスタートアップの中に登録されているショートカットです。 右下のアイコンに表れるはずりものが出ないので気づきました。 スタート→プログラムのスタートアップにも表示されていますし、それをクリックすると起動して、右下のアイコンに常駐します。 どうすれば、立ち上げ時に自動的に常駐するように出来るのでしょうか。 原因となった、何かのはずみですが、なんだか分らないです。

  • .exeファイルが起動できません.

    ・現象  .exeファイルを起動しようとすると,+Lhacaという圧縮解凍ソフトが起動し,起動しようとしたexeファイルのlzh圧縮したファイルをつくってしまいます.  どのexeファイルでも,同じ現象がおこります.  ダブルクリックで起動しても,スタートメニューから起動しても,ファイル名を指定して実行から起動しても,圧縮ファイルができてしまいます.  ただ,.xlsや.docのように,アプリケーションに関連付けられたファイルは開くことができます.  またエクスプローラは,左下のスタートボタンを右クリックすることで起動できます.  .exeファイルの関連付けが変更されたのでは?と考え,ここの質問を参考にし [スタート]-[ファイル名を指定し実行] から command を実行 次のコマンドを実行 C:\>assoc .exe=exefile C:\>ftype exefile="%1" %* を行ってみたのですが,状況は変わりませんでした.  エクスプローラのフォルダオプション,ファイルの種類タブから関連付けを見たのですが,exeは登録がありませんでした.  再起動もしてみたのですが,Windows起動時のスタートアップ等で,自動実行されるファイルの圧縮が行われるだけでした. なんとか元に戻したいと思いますので,何卒宜しくお願い致します.

専門家に質問してみよう