MSN Messenger会話ウィンドウをすべて前面に
ああ、最近はWindows Live Messengerと呼ぶのか。
今日初めて知った。
一遍にアクティブにしようとすると、1/2くらいの確率で失敗する。
0.3秒のSleepを入れることで成功。
このsleepのおかげで、窓が多いとき、なんとなくサイバーな気分に浸れる。
activate_imwindows.py
# -*- coding: Shift-JIS -*- import clr import re import CommandPlugin import time from CommandPlugin import * clr.AddReferenceByPartialName("System") from System import IntPtr from _restore_window import RestoreWindow clr.AddReferenceByPartialName("System.Windows.Forms") from System.Windows.Forms import MessageBox class activate_imwindows(CommandPlugin.PythonCommand): def __init__(self): self.restore_win = RestoreWindow() def run(self, arg_list): # argumentで指定したデフォルトの引数は無視する arg_list.RemoveAt(0) # すべての会話ウィンドウを前面化 if WinAPI.FindWindow(None, " - 会話") != None: hit = self.FindWindow(" - 会話") for bhit in hit: self.restore_win.add(bhit.hwnd) WinAPI.WakeupWindow(bhit.hwnd) WinAPI.SetForegroundWindow(bhit.hwnd) time.sleep(0.3) def undo(self): self.restore_win.restore() return True def FindWindow(self, wintitle): hit = [0] del hit[0] regexp = re.compile(wintitle) for win in info.window_list: if regexp.search(win.windowTitle): hit.append(win) return hit