[英]How do I find out what the windows constants like WM_MOUSEMOVE and WM_MOUSEDOWN are if I'm using C#?
我正在編寫一些代碼,這些代碼對User32函數(例如SetWindowsHookEx等)使用一些非托管調用。
這要求我使用很多不確定其值的常量。 例如,如果我要將鈎子設置為低級鼠標鈎子,則需要知道WM_MOUSE_LL = 14。
我在哪里可以找到這些?
我需要知道WM_MOUSEMOVE,WM_MOUSEDOWN等。 當我處理互操作代碼時,找到這些代碼最簡單的方法是什么? 我是否可以將它們導入C#中以便對其進行定義?
它在您的機器上。 如果您有VS2008,請打開c:\\ program files \\ microsoft skds \\ windows \\ v6.0a \\ winuser.h並搜索消息標識符。 不,您不能在C#程序中使用此文件,它是用C編寫的。
有一個工具可以將這些SDK頭文件轉換為C#,然后下載P / Invoke Interop Assistant 。 單擊“ SigImp搜索”選項卡,然后鍵入要查找的標識符。 單擊生成以創建C#聲明。 可以使用消息標識符,但對於API函數卻很難看。 聲明是自動翻譯的,非常嘈雜,而且並非總是最佳的。 使用pinvoke.net上可用的內容仔細檢查生成的定義
您知道PInvoke.net嗎?
有時MSDN頁面會列出它們,但是我發現最好的方法是打開C ++程序,然后右鍵單擊常量並說到定義。
立即發現幾乎所有事物的另一種方法是使用Google代碼搜索 。 很多時候,您會在WINE頭文件中找到答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.