回答編集履歴
1
誤字を修正
answer
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
かなり強引なやり方になりますが、AttachThreadInput で同期化し
|
1
|
+
かなり強引なやり方になりますが、AttachThreadInput でスレッドの入力キューを同期化して BringWindowToTop で最前面にもって来た後、該当ウィンドウをクリックするのが安定して実行できるようです。
|
2
2
|
[ウィンドウを確実にアクティブにする方法 (http://stakiran.hatenablog.com/entry/2017/09/15/213415)](http://stakiran.hatenablog.com/entry/2017/09/15/213415)
|
3
3
|
|
4
|
-
|
4
|
+
リンク先のサイトは独自モジュールを使用しているようですので、win32gui のみで書き換えてみました。本来は SendInput を使用するべきですが、win32gui に定義がないので mouse_event を使っています。マウス移動は SetCursorPos で代用しています。元サイトとは異なりエラー処理は省いています。
|
5
5
|
```python
|
6
6
|
import subprocess
|
7
7
|
import time
|
@@ -50,7 +50,7 @@
|
|
50
50
|
main()
|
51
51
|
```
|
52
52
|
|
53
|
-
他のやり方としては該当ウィンドウが最前面に来るまで Alt+Shift+Tab を連打する
|
53
|
+
他のやり方としては該当ウィンドウが最前面に来るまで Alt+Shift+Tab を連打するという手法も考えられます。こちらでは SendInput の代わりとして keyboard_event を使用しています。
|
54
54
|
```python
|
55
55
|
import subprocess
|
56
56
|
import time
|