- PR -

Windowsアプリケーションの再起動

1
投稿者投稿内容
KG
会議室デビュー日: 2006/01/05
投稿数: 10
投稿日時: 2006-09-19 13:49
VB.NETでWindowsアプリケーションを作成しています。
(OSはWindowsXPです)

アプリケーションの画面に「再起動」ボタンをつけ、
そのアプリケーション自体を再起動させたいと思っています。
(そのアプリケーション自体を停止、再度起動)

アプリケーション上からこのような処理ができるのでしょうか?

もしできる場合、どのようにしたらよいでしょうか。
ご存知の方がいらっしゃいましたら、ご教授をお願いいたします。


[ メッセージ編集済み 編集者: KG 編集日時 2006-09-19 13:50 ]
ピカード
常連さん
会議室デビュー日: 2006/09/01
投稿数: 37
お住まい・勤務地: 関西
投稿日時: 2006-09-19 13:53
アプリケーションの再起動とは、アプリケーションの終了後の起動ですか?
停止とはどんな状態ですか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-09-19 14:30
引用:

KGさんの書き込み (2006-09-19 13:49) より:

アプリケーションの画面に「再起動」ボタンをつけ、そのアプリケーション自体を再起動させたいと思っています。
(そのアプリケーション自体を停止、再度起動)
アプリケーション上からこのような処理ができるのでしょうか?


停止というのが 'どこまでの意味なのか' わかりませんでしたが、別のプロセスとして起動したコトを確認した後、
今のアプリケーションを終了するという流れならば、以下のとおりになります。

コード:

    Dim p As System.Diagnostics.Process

    Try
        '/ 同じアプリケーションを起動
        p = System.Diagnostics.Process.Start(Application.ExecutablePath)

        '/ 起動を確認した後、現在のアプリケーションを終了させる
        If p.WaitForInputIdle() Then
            Me.Close()              ' メインフォームがあれば
            Application.Exit()      ' 念のため
        End If
    Finally
        If Not p Is Nothing Then
            Try
                p.Close()
            Finally
                p.Dispose()
            End Try
        End If
    End Try


こんなものでは済まないということであれば、詳細をお願いします。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
KG
会議室デビュー日: 2006/01/05
投稿数: 10
投稿日時: 2006-09-19 14:41
>ピガードさん
>じゃんぬねっとさん
素早いご返答ありがとうございます。
ご返答ありがとうございます。

一旦完全に終了させた後、再度同じアプリケーションを起動させます。
イメージ的には、Windowsの再起動のような感じです。

まず、じゃんぬねっとさんのサンプルコードで試してみます。
ありがとうございました。

ダッチ
大ベテラン
会議室デビュー日: 2005/10/31
投稿数: 113
投稿日時: 2006-09-19 21:08
引用:

KGさんの書き込み (2006-09-19 14:41) より:

一旦完全に終了させた後、再度同じアプリケーションを起動させます。
イメージ的には、Windowsの再起動のような感じです。


希望の動作とそぐわないかもしれませんが

コード:

Application.Restart


というものが .NET Framework 2.0 から使用できるようになっています。

# VB.NET って VB 2003 のことじゃないですよね
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-09-19 21:37
引用:

ダッチさんの書き込み (2006-09-19 21:08) より:
# VB.NET って VB 2003 のことじゃないですよね


むしろ、.NETなんて言葉は死語になっているのでVB2003以前の方が可能性としては濃厚と思われ。
.NET Framework2.0であれば、VB2005などと書くし(.NETなんて言葉がないので)

独り言。
1.1とか2.0とかって表記の方がわかりやすいよな。
C#は1.1とか2.0とか書いてある場合が多くてわかりやすい。
VBは7.1って表記になってわかりにきー。
1

スキルアップ/キャリアアップ(JOB@IT)