🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

2648閲覧

〇○.exeの起動時/終了時フラグを渡す監視用.exeを1つ作成したい。

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

1クリップ

投稿2019/09/13 18:02

編集2019/09/15 23:18

追記:
確かにそうだと思います済みません。

Q71さんがおっしゃっている中の、特定のアプリの起動と終了を判断するものを作りたいです。
それに用いたい言語はC#です。ご教示お願いします。!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

episteme

2019/09/14 00:04

すまんが日本語で頼む。 要は「複数起動不可能なAppが作りたい」なのか?
y_waiwai

2019/09/14 00:06

で、しつもんはなんでしょうか。
Q71

2019/09/14 00:29

日本語でお願いします、その2。 他のアプリの起動を制限したい、ということですか? あるいは、特定のアプリが起動しているかどうかを確認したい? プログラムって、結局「プログラミング言語」というように、自分と機械とのコミュニケーションです。あなた自身が理解できていますか?それを他人に伝えられないなら、機械にも伝えられないと思いますよ。
退会済みユーザー

退会済みユーザー

2019/09/14 08:07

確かにそうだと思います申し訳ありません。 Q71さんがおっしゃっている中の、特定のアプリの起動と終了を判断するものを作りたいです。 それに用いたい言語はC#です。ご教示お願い致します。
y_waiwai

2019/09/14 08:28

作りたい、ということはわかったけど、しつもんはなあに?
退会済みユーザー

退会済みユーザー

2019/09/14 10:38 編集

正直私も全貌が掴めていないので申し訳ないのですが、似たような動きをするサンプルなどありましたら教えて頂きたいです。デバッグをして確認などして、理解していきたいです。  で、netで拾ったサンプルを動かしてみようかと思い試したのですが、どうやらこのままではビルドすらも通らないようで><; 以下を見てみると、インスタンスの実装がされているのですが、クラスの定義がどこにもなく、メンバ関数、メンバ変数もない状態です。 追加しようかと思ったのですが、C#初学者なので有識者の方にご教示頂きたいです。  using System; using System.Diagnostics; class Program { static void Main() { Process proc = new Process(); proc.StartInfo.FileName = @"C:\app.exe"; proc.Start(); proc.WaitForExit(); Console.WriteLine(proc.ExitCode.ToString()); } }
gentaro

2019/09/14 10:45

C++やVB.NETのタグは何の関係があるんですか?
YAmaGNZ

2019/09/14 12:08

もしかしてだけど、ただ同一アプリケーションの2重起動を防ぎたいってことですか?
退会済みユーザー

退会済みユーザー

2019/09/14 13:15

アプリ1の起動中はアプリ2をディセーブル状態にする処理を、ウィンドウクラス名とウィンドウタイトルが一致した場合に前述の処理が正しく行われるように書かれているのですが、C#の場合ウィンドウクラス名が更新のたびに変わってしまうので、どうにかしたいらしいのです。 詳しい方なら何となくわかるのかもしれませんが(笑)  そこで、だったら、アプリの起動と終了のみを監視するようなアプリを1つ作って呼出し側のプログラムに信号となる値を投げてやればいいんのではないかと考えたわけですが。実現する手段が分からずに悩んでいます。><;
gentaro

2019/09/15 03:55

C++やVB.NETのタグは何の関係があるんですか? (二度目) 無視する意味がわかんないし、無関係のタグを付けるのは普通に迷惑行為ですけど。
Zuishin

2019/09/15 23:50

回答しても試しすらしないし(笑) 言ったことは守らないし(笑) 質問編集して見直しすらしないし(笑)
guest

回答2

0

ベストアンサー

WMI で __InstanceCreationEvent__InstanceDeletionEvent イベントを監視してください。

【C#】あるプロセスの開始と終了のイベントを取得する

.NET Core の場合は、dotnet add package System.Management --version 4.5.0 であらかじめ System.Management を参照に追加しておいてください。

投稿2019/09/14 13:10

編集2019/09/14 13:12
Zuishin

総合スコア28669

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/09/14 13:35

済みません、時間があれば順を追って調べるべきなのですが、本当に無知なんです(笑) WMIとは、予め参照に追加その追加は何処からやるのか伺ってもいいでしょうか?
Zuishin

2019/09/14 13:40

Visual Studio を使っているのであれば、普通にソリューションエクスプローラーから追加してください。 .NET Core の場合はパッケージマネージャーでインストールする必要があります。 コマンドラインから行う場合は回答に書いたようにしてください。 場合分けして書かなくて済むよう、質問する際には環境を書いておいてください。
guest

0

起動中のプロセスの一覧が取得できますが、それでは足りない?
検査機キーワード:プロセス一覧 c#

追記
Visual Studio 2019 で、「コンソールアプリケーション(.NET Framework)」を選択して、program.cs の内容を次のようにする。

C#

1using System; 2using System.Diagnostics; 3 4namespace id211803 5{ 6 class Program 7 { 8 static void Main(string[] args) 9 { 10 foreach (var p in Process.GetProcesses()) 11 { 12 Console.WriteLine($"{p.ProcessName}"); 13 } 14 15 Console.ReadKey(); 16 } 17 } 18}

実行中のプロセス一覧が出る。`ProcessName` がプロセス名(大抵、実行したファイルの拡張子なし部分)なので、ファイル名がわかっているなら、これでとれるかと。その他のことは、Process クラスのリファレンスを見る。

投稿2019/09/14 09:48

編集2019/09/14 10:56
Q71

総合スコア995

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/09/14 11:22 編集

Visual Studio 2019ではなく2017で試してみたのですが、以下Errorが出てビルドが通らないです、.Netframeworkのverが違うのでしょうか? 2019でないとダメでしょうか? 重大度レベル コード Description プロジェクト File Line ソース 抑制状態 エラー CS0246 型または名前空間の名前 'System' が見つかりませんでした (using ディレクティ ブまたはアセンブリ参照が指定されていることを確認してください)。 ConsoleApp1 C:\Users\User\AppData\Local\Temp.NETCoreApp,Version=v1.0.AssemblyAttributes.cs 2 ビルド 該当なし
Q71

2019/09/14 11:30

そうだろうなと思ったので「コンソールアプリケーション(.NET Framework)」と書いたのですが。。。 プロジェクトとして、何を選びましたか?
Q71

2019/09/14 11:31

あ、「.NET Core」と書いてあるか。「.NET Framework」のプロジェクトを選択して下さい。
退会済みユーザー

退会済みユーザー

2019/09/16 07:43

返信遅くなり申し訳ございませんでした。ありがとうございます参考にしてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問