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

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

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

Re[3]: アプリを起動させないようにするには


(過去ログ 171 を表示中)

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

■98351 / inTopicNo.1)  アプリを起動させないようにするには
  
□投稿者/ あ (1回)-(2021/11/03(Wed) 18:45:32)

分類:[.NET 全般] 

Visual Studio 2022 RC VB.NET使用しております。

プロジェクト2つのアプリケーションを作りました。

Windows フォームアプリケーション Netfameworck 4.7.2→Windows.exe(シングルスタートアッププロジェクト指定)
Windows フォームアプリケーション Netfameworck 4.7.2→APP.exe(2つ目のアプリケーション)

↑この2つのアプリケーションを作成したのですが、「ビルド」→デバックフォルダ→
windows.exe(メイン)
app.exe(※)windows.exeのプロジェクトの参照に指定してます。


【やりたいこと】
・app.exeを直接ダブルクリックして起動させない
・windows.exeをクリックして起動後、app.exeが起動する。その後→windows.exeは非表示させてます。
多重起動禁止?など見つけたんですが・・・、app.exeを直接起動しないで
windows.exe→起動→非表示(windows.exe)→app.exe起動するようにしたい場合はどのようにできるのでしょうか?
教えてください。
引用返信 編集キー/
■98352 / inTopicNo.2)  Re[1]: アプリを起動させないようにするには
□投稿者/ Azulean (1207回)-(2021/11/03(Wed) 19:12:58)
No98351 (あ さん) に返信
> 【やりたいこと】
> ・app.exeを直接ダブルクリックして起動させない
> ・windows.exeをクリックして起動後、app.exeが起動する。その後→windows.exeは非表示させてます。
> 多重起動禁止?など見つけたんですが・・・、app.exeを直接起動しないで
> windows.exe→起動→非表示(windows.exe)→app.exe起動するようにしたい場合はどのようにできるのでしょうか?
> 教えてください。


案1
・app.exe はコマンドライン引数に「特定の文字列」がなければすぐに終了する
・windows.exe は app.exe を起動する際に「特定の文字列」を指定して起動する
参考: https://dobon.net/vb/dotnet/programing/commandline.html

お手軽に実現できるが、特定の文字列は調べようとすれば簡単にわかるので、どの程度を求めるかによる。


案2
・app.exe 起動時に Process.GetProcessesByName で windows.exe の存在を確認し、なければ終了する
参考: https://dobon.net/vb/dotnet/process/getprocessesbyname.html

これもお手軽にできるが、windows.exe 側と同じ名前の exe が存在したら誤認しうる。

案3
・windows.exe 起動時に特定の文字列で Mutex を作る
・app.exe 起動時にその特定の文字列で Mutex を **作れなければ**、起動し、そうでなければ終了する
参考: https://dobon.net/vb/dotnet/process/checkprevinstance.html

二重起動で用いるテクニックを応用し、windows.exe が起動する際に特定の文字列の Mutex を作る。
app.exe 側はその Mutex で二重起動のような判定を刷れば良い。
特定の文字列の Mutex が誰かと重なると微妙だが、プログラム書ける知識ないと届かない分、案1や案2よりはやや手堅くなる。

案4
・windows.exe 起動時にプロセス間通信を用意しておく
・app.exe がプロセス間通信で windows.exe と正常な通信ができたら起動する

かなり手堅いが、実装難易度は飛躍的に上がる。
名前付きパイプあたりが候補か?
引用返信 編集キー/
■98353 / inTopicNo.3)  Re[2]: アプリを起動させないようにするには
□投稿者/ Hongliang (1202回)-(2021/11/03(Wed) 19:47:29)
appの方をexeで作成する必要は何かあるんですよね?
// でなければdllでいいじゃんということになるので。
引用返信 編集キー/
■98359 / inTopicNo.4)  Re[3]: アプリを起動させないようにするには
□投稿者/ あ (2回)-(2021/11/04(Thu) 17:07:47)
>Azuleanさん
>Hongliang さん
回答ありがとうございました。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -