下のコードで'メモ帳'という文字列を含むwindowを最前列に持って行ってくれます。
この'メモ帳'の部分を引数として渡せば、そのwindowを最前列に持って行く関数を作りたいです。
python
1import win32gui 2import ctypes 3 4def forground( hwnd, _): 5 name = win32gui.GetWindowText(hwnd) 6 if name.find('メモ帳') >= 0: 7 ctypes.windll.user32.SetForegroundWindow(hwnd) 8 return False # 列挙終了 9 10# ・pywintypes.error: (126, 'EnumWindows', '指定されたモジュールが見つかりません。')と表示される(が動作している) 11# ・最小化していると列挙対象にならない? 12 13win32gui.EnumWindows( forground, None) 14
ここで、'メモ帳'の部分を引数titleとして引き渡すのに、どうしたら良いか分かりません。下のようにいじって
python
1import win32gui 2import ctypes 3 4def forground( hwnd, _, title): 5 name = win32gui.GetWindowText(hwnd) 6 if name.find(title) >= 0: 7 ctypes.windll.user32.SetForegroundWindow(hwnd) 8 return False # 列挙終了 9 10# ・pywintypes.error: (126, 'EnumWindows', '指定されたモジュールが見つかりません。')と表示される(が動作している) 11# ・最小化していると列挙対象にならない? 12 13win32gui.EnumWindows( forground, None) 14
などとして
foreground('メモ帳')
と実行すると、win32gui.EnumWindows( forground, None)のところでエラーが起きます。
どういう風に関数化すれば良いのでしょうか……
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/10 09:37