回答編集履歴

2

謝罪コメントが大きかったので修正

2018/09/05 01:40

投稿

n_takapyon
n_takapyon

スコア443

test CHANGED
@@ -4,13 +4,11 @@
4
4
 
5
5
 
6
6
 
7
- ------------------
8
-
9
7
  上記は今回の質問に対して不適切な解答で申し訳ありませんでした。
10
8
 
11
9
  下記に対応を考えてみたので参考になれば幸いです。
12
10
 
13
- ------------------
11
+
14
12
 
15
13
 
16
14
 

1

非アクティブなExcelプロセスを洗うプログラムを追記

2018/09/05 01:40

投稿

n_takapyon
n_takapyon

スコア443

test CHANGED
@@ -1,3 +1,47 @@
1
1
  taskkillでexcelをすべて終了させるには下記コマンドを叩いてみてください。
2
2
 
3
3
  taskkill /IM excel.exe
4
+
5
+
6
+
7
+ ------------------
8
+
9
+ 上記は今回の質問に対して不適切な解答で申し訳ありませんでした。
10
+
11
+ 下記に対応を考えてみたので参考になれば幸いです。
12
+
13
+ ------------------
14
+
15
+
16
+
17
+ アクティブなプロセスの定義として、メインウインドウが存在しているはずと仮定しました。
18
+
19
+ C#でメインウインドウの有無を直接判定できそうになかったのでタイトルの有無で判斷する事にしました。
20
+
21
+
22
+
23
+ 下記コードが参考になりますでしょうか
24
+
25
+
26
+
27
+ ```ここに言語を入力
28
+
29
+ //Excelの全プロセスを取得
30
+
31
+ var ps = System.Diagnostics.Process.GetProcessesByName("excel");
32
+
33
+ //取得したプロセスをforeachで舐める
34
+
35
+ foreach (System.Diagnostics.Process p in ps) {
36
+
37
+ //メインウインドウのタイトルが無いものを判定
38
+
39
+ if (p.MainWindowTitle.Length == 0) {
40
+
41
+ //非アクティブなExcelプロセスpに対してkillするコードを記述
42
+
43
+ }
44
+
45
+ }
46
+
47
+ ```