我使用C#向另一个程序发消息,不知道该怎么整,PostMessage如何引用以及PostMessage的四个参数具体定义。
千万别复制,我看所有的帖子都是复制的,统一的回答,让我脑袋疼。谢谢各位了。在线等
千万别复制,我看所有的帖子都是复制的,统一的回答,让我脑袋疼。谢谢各位了。在线等
解决方案 »
- winform treeview checkbox显示问题
- 关于创建 N 层数据应用程序的问题
- C# 如何实现程序每隔一段时间运行一下程序,需传参
- 跪求 从combobox往listview里添加数据
- 请前辈们推荐几本C#入门书,谢谢啦!
- xp下[shell32]读取mp3文件信息的tag
- 请教:方法未获取"1"的参数
- 在线等:如何让最大化的窗体能恢复到原来位置和密码文本框如何控制输入字符?
- 怎么让水晶报表支持多个Page?就是我有10个表格,怎么让一个report支持这么多表呢?一个page只支持一个表格啊.
- 如何在listview中加入textBox?
- 关于DataGridView如何取消setstyle的设置问题
- 请教:getbytes()得到的不是二进制的0101。
用C++的FindWindow找到句柄
HWND FindWindow(
LPCTSTR lpClassName,
LPCTSTR lpWindowName
);
再调用如下
Message msg = Message.Create(获取到的句柄,
MsgWindow.WM_CUSTOMMSG,
(IntPtr)e.X,
(IntPtr)e.Y);
MessageWindow.SendMessage(ref msg);
[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern int PostMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
public const int WM_CLOSE = 0x10;调用
PostMessage(Handle, WM_CLOSE, 0, 0);
还有就是消息内容的那个参数,我要传的是字符串。是否要进行转换、
public static extern IntPtr PostMessage(IntPtr hwnd, int wMsg, IntPtr wParam, string lParam);
hWnd:其窗口程序接收消息的窗口的句柄。可取有特定含义的两个值:
HWND.BROADCAST:消息被寄送到系统的所有顶层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口。消息不被寄送到子窗口。
NULL:此函数的操作和调用参数dwThread设置为当前线程的标识符PostThreadMessage函数一样。
Msg:指定被寄送的消息。
wParam:指定附加的消息特定的信息。
IParam:指定附加的消息特定的信息。