需要帮助的RegisterWindowMessage和SendMessage从c++到c#
Need help with RegisterWindowMessage and SendMessage from c++ to c#
我在c#中有以下代码:
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
static extern uint RegisterWindowMessage(string lpProcName);
[DllImport("user32.dll")]
private static extern IntPtr SendMessage(
IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);
,我需要将它从c++转换为c#:
UINT UWM_UART_CTRL_TRS = ::RegisterWindowMessage(_T("BT_UARTCTRL_TRANSFER"));
::SendMessage(HWND_BROADCAST, UWM_UART_CTRL_TRS, 0, 0);
:
UINT UWM_UART_CTRL_TRS = ::RegisterWindowMessage(_T("BT_UARTCTRL_TRANSFER"));
::SendMessage(HWND_BROADCAST, UWM_UART_CTRL_TRS, 1, 0);
Thanks in advance
应该非常直接。您需要将PInvoke定义更改为包含它们的类中的public
:
public class Win32Api
{
[DllImport("user32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
public static extern uint RegisterWindowMessage(string lpString);
[DllImport("user32.dll", SetLastError = true)]
public static extern IntPtr SendMessage(
IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
}
对于调用,它们看起来像这样:
uint UWM_UART_CTRL_TRS = Win32Api.RegisterWindowMessage("BT_UARTCTRL_TRANSFER");
Win32Api.SendMessage(HWND_BROADCAST, UWM_UART_CTRL_TRS, (IntPtr)0, (IntPtr)0);
:
uint UWM_UART_CTRL_TRS = Win32Api.RegisterWindowMessage("BT_UARTCTRL_TRANSFER");
Win32Api.SendMessage(HWND_BROADCAST, UWM_UART_CTRL_TRS, (IntPtr)1, (IntPtr)0);
相关文章:
- SendMessage 使用 RegisterWindowMessage API 失败
- 消息映射如何与 SendMessage() 方法交互?
- WinApi消息循环,Postmessage的工作原理与SendMessage类似
- Sendmessage在方法定义内部无法正常工作
- 如何在 c++ 中从 SendMessage() 接收信息
- C++SendMessage循环停止并结束
- 是否可以阻止从 SendMessage() 调用发送的消息
- 来自另一个线程的 SendMessage() 调用是否将消息发布到消息队列
- 使用Windows函数SendMessage会导致与MSVC发生链接错误,但与MinGW不发生链接错误
- win32api SendMessage在WM_CREATE之外无法工作
- 获取窗口图标:GetClassLong VS SendMessage
- 使用 SendMessage() 多线程
- SendMessage() 和 PostMessage() 正确用法
- 使用SendMessage将文本输入到属于另一个进程的编辑控件中
- 如何在ATL DLL中获取HWND(用于SendMessage或PostMessage)
- PostMessage(),SendMessage 在 ATL dll 中不起作用(事件处理)
- PostThreadMessage & SendMessage
- C++消息传递,就像Windows的::SendMessage / ::P ostMessage
- 为什么Sendmessage不起作用
- 需要帮助的RegisterWindowMessage和SendMessage从c++到c#