簡體   English   中英

如果我使用的是C#,如何找出WM_MOUSEMOVE和WM_MOUSEDOWN等Windows常數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM