永发信息网

SendMessage和PostMessage的用法

答案:3  悬赏:40  手机版
解决时间 2021-03-20 16:56
c#winform中,我写的一个程序在运行时,系统会弹出一个对话框,问我是直接打开,还是保存,还是取消,我希望能通过代码选择打开,所以我用SendMessage和PostMessage往对话框传值,可是按网上的一些人的做法,始终没有任何反应,打开的快捷键是 O。sendkegs也不行,在win8中会卡住,而且必须前台。怎么办?给点代码或实际例子。

问题是对话框不是我写的,是系统弹得
最佳答案
先用FindWindowEx找到对话框中按钮的句柄,在用SendMessage
全部回答

sendmessage : 发送一个消息给操作系统,并且等待操作系统执行完这个消息。

postmessage  : 发送一个消息给操作系统,不等待操作系统执行完这个消息就立即返回执行下一条语句。

sendmessage  定义:

public shared sub sendmessage ( _ byref m as message _ )

 sendmessage  调用:

dim m as message

 messagewindow.sendmessage(m)

postmessage  定义:

public shared sub postmessage ( _ byref m as message _ )

postmessage  调用:

dim m as message

 messagewindow.postmessage(m)

它们的定义和调用格式是一样的,只是执行时的效果不一样,刚才我已经说过了。

参数的m含义:

是一个windows的消息结构体,用来描述传递的消息。

比如:

dim msg as microsoft.windowsce.forms.message = _ microsoft.windowsce.forms.message.create(msgwin.hwnd, _ msgwindow.wm_custommsg, new intptr(e.x), new intptr(e.y)) messagewindow.sendmessage(msg) msgwin.hwnd :表示消息的句柄。msgwindow.wm_custommsg :表示消息的id,就是一个唯一的消息的标识号,是一个整数。intptr(e.x) 和 new intptr(e.y) : 消息的两个附加参数,这要根据具体的消息而论了。
if (MessageBox.Show("您确定要还原数据库备份: " + openFileDialog1.FileName + "吗?", "重要操作", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk) == DialogResult.OK) {} else {}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么占很大容量的电影只有几分钟
时崎狂三声优是谁?
百度百科黒仁核桃能吃吗
摩托车电启动时启动开关是不是不能长时间按?
荆州到监利客车最晚什么时候的
一吨等于多少升柴油
阿尔祖在什么地方啊,我要过去处理事情
池杉与落叶杉的鉴别方法
三星手机如何设置微信内容不显示在提示拦
台式电脑主机完全不通电拿去维修店一切正常,
谁是美国人眼中的中国女神
其的部首是什么偏旁
思蜜儿妆品河下店地址在哪,我要去那里办事
爱车小松240-8刚到手,不晓得如何保养,液压
踝关节骨折的恢复期
推荐资讯
白皙瀑水乳小朋友可以用吗?
《盛宠世子妃》文 / 蔓妙游蓠,这本书的简介
慈溪所有尚在营业的羽毛球馆(越多越好)
南充市顺庆区舞凤街道办仁和社区居委会在什么
情之起,一往深,而至挚
求解,婚姻签,这是我早段时间从庙里求的签:
26岁入门学泰拳还可以参加比赛吗?
拜送子观音什么时候适合
冷兵器时代,秦国一个方阵到底有多少人
八面来风如一辙是什么意思
汉阳区武汉正宗北京片皮烤鸭(汉阳分店)地址在
10 10 10 10=5
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?