none
exeのスタートアップ登録時の遅延起動について RRS feed

  • 質問

  • VBなどでexeファイルを作成し、そのexeをスタートアップに登録し、OS起動時に自動に実行したいのですが、

    ネットワークに接続する前に、起動してしまう為、デバッグエラーが出てしまいます。

    exe上、ネットワーク上にあるサーバの設定を見に行っている為、このような事象が起きています。

    単純に、起動時間を遅らせるには、どうしたらいいでしょうか?。

    フォームロード時にsleepなどいれておくというのも考えましたが、それだとwindowsが固まった風になり、うまくいきません。

    フリーのツールなどで遅延起動できるものもあるようですが、不要なものはいれたくありません。何かいい方法はありますでしょうか?

    2016年7月20日 5:28

回答

  • 推測に過ぎませんが、固まるのは常駐系ソフトがウィンドウフックをかけるせいでデッドロックになっているとか…ですかね?
    Load イベントではなく、Timer クラスを使って Tick イベント待ちすれば回避できそうな気がしますが。
    • 回答としてマーク ke-wata_ 2016年10月26日 0:48
    2016年7月20日 13:31
    モデレータ

すべての返信

  • 「windowsが固まった風」とはどのような状態でしょうか? スタートアップに登録されたアプリケーションがsleepした程度ではWindowsは固まったりしないと思いますが?
    2016年7月20日 5:41
  • 一つのアイデアですが、スタートアップには、メインのexeを登録するのではなく、「ネットワークが有効になったとき、メインのexeを起動するプログラム」を登録してはいかがでしょうか?

    下記のサイトに、コンピュータがネットワークに接続されているか調べるためのサンプルプログラムが載っていました。

    http://dobon.net/vb/dotnet/internet/detectinternetconnect.html

    2016年7月20日 5:42
  • この様なケースであれば、Windowsのタスクスケジューラで管理(トリガをスタートアップ時に指定)しては如何でしょうか?

    ※ネットワークが有効な時のみ等の条件も可能ですし、再処理の指定も出来ます。

    2016年7月20日 11:52
  • 推測に過ぎませんが、固まるのは常駐系ソフトがウィンドウフックをかけるせいでデッドロックになっているとか…ですかね?
    Load イベントではなく、Timer クラスを使って Tick イベント待ちすれば回避できそうな気がしますが。
    • 回答としてマーク ke-wata_ 2016年10月26日 0:48
    2016年7月20日 13:31
    モデレータ