如何向一个窗体发送alt+enter键?

hjx398 2008-12-07 01:52:15
为什我这个样不成功呢?
int nnnn = 134974;// myProcess.MainWindowHandle.ToInt32();


//PostMessage(nnnn, WM_SYSKEYDOWN, 18, 0);

//PostMessage(nnnn, WM_SYSKEYDOWN, 13, 0);

//System.Threading.Thread.Sleep(50);

//PostMessage(nnnn, WM_SYSKEYUP, 13, 0);
//PostMessage(nnnn, WM_SYSKEYUP, 18, 0);
PostMessage(nnnn, WM_SYSKEYDOWN, VK_RETURN, 1 << 29);

...全文
389 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
猿敲月下码 2008-12-07
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 hjx398 的回复:]
SendMessage怎么发送组合键?
[/Quote]

SendMessage(this.Handle,WM_SETHOTKEY,0x45a, 0)

//WM_SETHOTKEY 是 0x32
//0x45a 高字节是contrl键 低字节是a b c d 所以5a是z的ascii 4是alt 也就是alt+z
wuyq11 2008-12-07
  • 打赏
  • 举报
回复
SendMessage
参考
http://www.cnblogs.com/buffer/articles/1259093.html
http://www.cnblogs.com/willen/archive/2008/11/21/1316523.html
hjx398 2008-12-07
  • 打赏
  • 举报
回复
SendMessage怎么发送组合键?
wulingyigu1 2008-12-07
  • 打赏
  • 举报
回复
SendMessage
net5i 2008-12-07
  • 打赏
  • 举报
回复 1
我觉得,搂主是想向跨进程发键盘消息的,并且目标应用程序不一定是活动的,

所以SendKeys应该不行的,只能调用WinAPI
周公 2008-12-07
  • 打赏
  • 举报
回复
若要指定在按键(如 Enter 或 Tab)时不显示的字符,以及表示操作而不表示字符的键,请使用下表中的代码:


代码

Backspace
{BACKSPACE}、{BS} 或 {BKSP}

Break
{BREAK}

Caps Lock
{CAPSLOCK}

Del 或 Delete
{DELETE} 或 {DEL}

向下键
{DOWN}

End
{END}

Enter
{ENTER} 或 ~

Esc
{ESC}

Help
{HELP}

Home
{HOME}

Ins 或 Insert
{INSERT} 或 {INS}

向左键
{LEFT}

Num Lock
{NUMLOCK}

Page Down
{PGDN}

Page Up
{PGUP}

Print Screen
{PRTSC}(保留供将来使用)

向右键
{RIGHT}

Scroll Lock
{SCROLLLOCK}

Tab
{TAB}

向上键
{UP}

F1
{F1}

F2
{F2}

F3
{F3}

F4
{F4}

F5
{F5}

F6
{F6}

F7
{F7}

F8
{F8}

F9
{F9}

F10
{F10}

F11
{F11}

F12
{F12}

F13
{F13}

F14
{F14}

F15
{F15}

F16
{F16}

数字键盘加号
{ADD}

数字键盘减号
{SUBTRACT}

数字键盘乘号
{MULTIPLY}

数字键盘除号
{DIVIDE}


若要指定与 Shift、Ctrl 和 Alt 键的任意组合一起使用的键,请在这些键代码之前加上以下一段或多段代码。


代码

Shift
+

Ctrl
^

Alt
%


若要指定在按一些键时应同时按住 Shift、Ctrl 和 Alt 键的任意组合,请将这些键的代码放在括号内。例如,若要指定按 E 和 C 时同时按住 Shift 键,请使用“+(EC)”。若要指定按 E 时应按住 Shift,之后按 C 时不按住 Shift,请使用“+EC”。

若要指定重复键,请使用格式 {key number}。键和数字之间必须放一空格。例如,{LEFT 42} 表示按向左键 42 次;{h 10} 表示按 H 10 次。

注意
因为没有可用来激活另一个应用程序的托管方法,所以可以在当前应用程序中使用此类,或使用本机 Windows 方法(如 FindWindow 和 SetForegroundWindow)来强制聚焦到其他应用程序上。
周公 2008-12-07
  • 打赏
  • 举报
回复
SendKeys 类提供将键击发送到应用程序的方法。
使用 SendKeys 将键击和组合键击发送到活动应用程序。此类无法实例化。若要发送一个键击给某个类并立即继续程序流,请使用 Send。若要等待键击启动的任何进程,请使用 SendWait。

每个键都由一个或多个字符表示。若要指定单个键盘字符,请使用该字符本身。例如,若要表示字母 A,请将字符串“A”传递给方法。若要表示多个字符,请将各个附加字符追加到它之前的字符的后面。若要表示字母 A、B 和 C,请将参数指定为“ABC”。

加号 (+)、插入符号 (^)、百分号 (%)、波浪号 (~) 以及圆括号 ( ) 对 SendKeys 具有特殊含义。若要指定这些字符中的某个字符,请将其放在大括号 ({}) 内。例如,若要指定加号,请使用“{+}”。若要指定大括号字符,请使用“{{}”和“{}}”。中括号 ([ ]) 对 SendKeys 没有特殊含义,但必须将它们放在大括号内。在其他应用程序中,中括号具有特殊含义,此含义可能会在发生动态数据交换 (DDE) 时起重要作用。
周公 2008-12-07
  • 打赏
  • 举报
回复
System.Windows.Forms.SendKyes.Send("%{enter}");
wangping_li 2008-12-07
  • 打赏
  • 举报
回复
就只有这一个函数?
net5i 2008-12-07
  • 打赏
  • 举报
回复
建议搂主使用SendMessage来发送

然后,关键是搂主的窗体中的窗口过程是不是有处理这个消息的模块

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧