C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: 二重起動を禁止


(過去ログ 102 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■61198 / inTopicNo.1)  二重起動を禁止
  
□投稿者/ TEPPEN (1回)-(2011/08/05(Fri) 10:42:45)

分類:[VB.NET/VB2005 以降] 

二重起動を禁止したいのですが、以下のものを何処に配置すれば良いですか?

'エントリポイント
<STAThread()> _
Shared Sub Main()
'二重起動をチェックする
If Diagnostics.Process.GetProcessesByName( _
Diagnostics.Process.GetCurrentProcess.ProcessName).Length > 1 Then
'すでに起動していると判断して終了
MessageBox.Show("多重起動はできません。")
Return
End If

Application.Run(New Form1())
End Sub

フォームから起動するので、
Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

*の部分に入れるのかと思いますが、ここでは実行していない様に思えます。

引用返信 編集キー/
■61201 / inTopicNo.2)  Re[1]: 二重起動を禁止
□投稿者/ shu (915回)-(2011/08/05(Fri) 10:59:20)
No61198 (TEPPEN さん) に返信
> 二重起動を禁止したいのですが、以下のものを何処に配置すれば良いですか?
>
> 'エントリポイント
> <STAThread()> _
> Shared Sub Main()
> '二重起動をチェックする
> If Diagnostics.Process.GetProcessesByName( _
> Diagnostics.Process.GetCurrentProcess.ProcessName).Length > 1 Then
> 'すでに起動していると判断して終了
> MessageBox.Show("多重起動はできません。")
> Return
> End If
>
> Application.Run(New Form1())
> End Sub
>
> フォームから起動するので、
> Public Class Form1
> *
> Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
>
> *の部分に入れるのかと思いますが、ここでは実行していない様に思えます。
>

Moduleを別に用意してそこに記述、起動はFormではなく、Module またはSub Mainからの指定にする。
アプリケーションフレームワーク設定が必要な場合はコード上での記述が必要です。


引用返信 編集キー/
■61202 / inTopicNo.3)  Re[1]: 二重起動を禁止
□投稿者/ 魔界の仮面弁士 (2289回)-(2011/08/05(Fri) 11:06:27)
No61198 (TEPPEN さん) に返信
> 二重起動を禁止したいのですが、
追加のコードを記述せずとも、プロジェクトのプロパティで[アプリケーション]タブを開き、
『単一インスタンスのアプリケーションを作成する』のチェックを入れるだけで OK です。

起動時チェックのコードも追加したい場合は、アプリケーションイベントの追加で
MyApplication の Startup イベントを併用する事も出来ます。


> *の部分に入れるのかと思いますが、ここでは実行していない様に思えます。
もしも Shared Sub Main を使うのであれば、場所はそこで OK ですが、
先の設定画面にてスタートアップを「Form1」から「Sub Main」に変更する必要があります。

また、スタートアップをフォーム以外にする場合には、同画面の
「アプリケーション フレームワークを有効にする」のチェックを
オフにする必要があります。

この場合、アプリケーションフレームワーク相当の機能を実装するために
追加のコードが必要になる事もあります。
(Application.EnableVisualStyles とか Application.SetCompatibleTextRenderingDefault とか)
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -