2016-12-20 7 views
2

AutoHotKeyにあるツールチップの機能を模倣したいと思います。AutoHotKeyのツールチップUIを模倣するPython win32 API

AutoHotkeyをコード:

infoTooltip() { 
    MouseGetPos, xPos, yPos, winId 
    PixelGetColor, color, %xPos%, %yPos%, RGB 
    WinGetTitle, winTitle, ahk_id %winId% 
    ToolTip "%winTitle%"`n%xPos% %yPos% %color% 
} 

がループ内で呼び出されたときに、このように見えますし、周りのマウスに従います:グーグルでは見つかり Example of what I want

参考文献:

https://msdn.microsoft.com/en-us/library/windows/desktop/ms632680(v=vs.85).aspx

How to use Windows ToolTip Control without bounding to a tool

これまで

私のPythonコードの試み:

import win32con, win32gui 
from win32api import GetModuleHandle 
from commctrl import (TOOLTIPS_CLASS, TTS_ALWAYSTIP, TTS_NOPREFIX, TTM_ADDTOOL, TTM_SETMAXTIPWIDTH) 
class TooltipWindow: 
    def __init__(self): 
     win32gui.InitCommonControls() # Loads COMCTL32.DLL (Shell Common Controls Library) 
     self.hwnd = win32gui.CreateWindowEx(
      win32con.WS_EX_CLIENTEDGE | win32con.WS_EX_TOPMOST, 
      TOOLTIPS_CLASS, 
      "MyTooltipWindow", 
      win32con.WS_POPUP | TTS_ALWAYSTIP | TTS_NOPREFIX | win32con.WS_BORDER, 
      win32con.CW_USEDEFAULT, 
      win32con.CW_USEDEFAULT, 
      win32con.CW_USEDEFAULT, 
      win32con.CW_USEDEFAULT, 
      None, 
      None, 
      GetModuleHandle(None), 
      None 
     ) 
     win32gui.SendMessage(self.hwnd, TTM_ADDTOOL, None, ???) 

tooltip = TooltipWindow() 

私はLPARAM引数にTOOLINFO構造体を変換する方法は考えています。また、このコードの大半を盲目的にしようとすると、これが私の最初の本当のwin32guiプロジェクトです。

ご協力いただきありがとうございます。

答えて

0

代わりにDllインポートをお考えですか?より多くのauthotkey機能を使用する予定がある場合は、.dllの周りを騒がす価値があります。

import ctypes 
dll = ctypes.cdll.LoadLibrary("AutoHotkey.dll") 
dll.ahktextdll(u"") 
dll.ahkExec('MouseGetPos, xPos, yPos, winId' \ 
'\n PixelGetColor, color, %xPos%, %yPos%, RGB' \ 
'\n WinGetTitle, winTitle, ahk_id %winId%' \ 
'\n ToolTip "%winTitle%"`n%xPos% %yPos% %color%') 
+0

ctypesに精通していなかったので、このルートについて考えていない、アイデアのおかげで! ahktextdll関数がここでどのような目的を果たすのか尋ねてもいいですか? ここで私が見つけたのはdllですか? https://hotkeyit.github.io/v2/ – Ben

+0

#persistantモードでautohotkeyスクリプトを開始します。 – nelsontruran

関連する問題