请问如何模拟按下 alt+上键头(其他方向键也可以)?这个问题应该很难!解决送100分。

biku 2005-03-04 01:52:58
请实验成功再告诉我。谢谢!
...全文
347 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainstormmaster 2005-03-09
  • 打赏
  • 举报
回复
我首先要弄清楚,你是在研究发送按键的方法还是研究如何使IE“后退”?
wxylvmnn 2005-03-08
  • 打赏
  • 举报
回复
Dim ReturnValue, I
ReturnValue = Shell("calc.exe", 1) ' 電卓を実行します。
AppActivate ReturnValue ' 電卓をアクティブにします。
For I = 1 To 20 ' ループ カウンタを設定します。
SendKeys I & "{+}", True ' 電卓にキー コードを転送して、
Next I ' I の値に 1 を加算します。
SendKeys "=", True ' 和を求めます。
SendKeys "%{F4}", False ' Alt + F4 キーを転送して電卓を終了します。
Stop
biku 2005-03-08
  • 打赏
  • 举报
回复
呵呵,谢谢楼上的代码。

不过,我都说了,是针对“IE”发送ALT+左箭头,你试试能成功吗?

biku 2005-03-07
  • 打赏
  • 举报
回复
这几天比较忙,等我有空的时候,做个简单的程序,试试看Sendkeys()。
谢谢大家的帮忙。
samwzhang 2005-03-05
  • 打赏
  • 举报
回复
如果你要控制外部程序,建议用钩子。至于钩子的例程,自己找找吧。
zglnew 2005-03-05
  • 打赏
  • 举报
回复
up
lghe44 2005-03-05
  • 打赏
  • 举报
回复
极力支持zpzpzp39941192(太阳),使用Sendkeys()实现
biku 2005-03-05
  • 打赏
  • 举报
回复
呵呵,先给“分全给我”30分。

“钩子发ALT+左键头的过程:
1、发ALT键按下;
2、发左键头点击;
3、发ALT弹起;
很Easy的东西嘛。”

对于其他程序确实挺EASY的,但对于IE(或资源管理器)就不是那么EASY了。你可以试试。


嗷嗷叫的老马 2005-03-05
  • 打赏
  • 举报
回复
///我想向IE发送这个快捷按键,但用keybd_event却发送不了(向别的程序发送ALT+左键头绝对成功。)。

也许问题在焦点上.

并不是IE里所有的焦点都是有这个热键的
samwzhang 2005-03-05
  • 打赏
  • 举报
回复
钩子发ALT+左键头的过程:
1、发ALT键按下;
2、发左键头点击;
3、发ALT弹起;
很Easy的东西嘛。
biku 2005-03-05
  • 打赏
  • 举报
回复
呵呵,谢谢您的意见,钩子我大概已经会了。不过

我们知道IE“后退”,“前进”的快捷方式是ALT+左键头(右键头)。我想向IE发送这个快捷按键,但用keybd_event却发送不了(向别的程序发送ALT+左键头绝对成功。)。

所以有了这个问题。
softbugg 2005-03-04
  • 打赏
  • 举报
回复
获取ie的handle, 用sendmessage
hhjjhjhj 2005-03-04
  • 打赏
  • 举报
回复
需要IE是活动窗口
biku 2005-03-04
  • 打赏
  • 举报
回复
那不就实现不了让IE“后退”吗?

一般情况下“ALT+左键头”就是IE中后退,如果用sendkeys来实现“ALT+左键头”从而让IE后退,好象不行啊!!!而我要的就是这个!!!
hhjjhjhj 2005-03-04
  • 打赏
  • 举报
回复
sendkeys是发送给系统的,光标在那就那。正象键盘输入一样。
zpzpzp39941192 2005-03-04
  • 打赏
  • 举报
回复
呵呵晚了一步 ~~~~
samwzhang(分全给我) 说的嗷嗷对~
我来喝点汤~~

语法
SendKeys string[, wait]
string 必需的。字符串表达式,指定要发送的按键消息。
Wait 可选的。指定等待方式的 值。如果为 False(缺省值),则控件在按键发送出去之后立刻返回到过程。如果为 True,则按键消息必须在控件返回到过程之前加以处理。

说明

每个按键由一个或多个字符表示。为了指定单一键盘字符,必须按字符本身的键。例如,为了表示字母 A,可以用 "A" 作为 string。为了表示多个字符,就必须在字符后面直接加上另一个字符。例如,要表示 A、B 及 C,可用 "ABC" 作为 string。

对 SendKeys 来说,加号 (+)、插入符 (^)、百分比符号 (%)、上划线 (~) 及圆括号 ( ) 都具有特殊意义。为了指定上述任何一个字符,要将它放在大括号 ({}) 当中。例如,要指定正号,可用 {+} 表示。方括号 ([ ]) 对 SendKeys 来说并不具有特殊意义,但必须将它们放在大括号中。在其它应用程序中,方括号有特殊意义,在出现动态数据交换 (DDE) 的时候,它可能具有重要意义。为了指定大括号字符,请使用 {{} 及 {}}。

为了在按下按键时指定那些不显示的字符,例如 ENTER 或 TAB 以及那些表示动作而非字符的按键,请使用下列代码:

按键 代码
BACKSPACE {BACKSPACE}, {BS}, 或 {BKSP}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
DEL or DELETE {DELETE} 或 {DEL}
DOWN ARROW {DOWN}
END {END}
ENTER {ENTER}或 ~
ESC {ESC}
HELP {HELP}
HOME {HOME}
INS or INSERT {INSERT} 或 {INS}
LEFT ARROW {LEFT}
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP}
PRINT SCREEN {PRTSC}
RIGHT ARROW {RIGHT}
SCROLL LOCK {SCROLLLOCK}
TAB {TAB}
UP ARROW {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}


为了指定那些与 SHIFT、CTRL 及 ALT 等按键结合的组合键,可在这些按键码的前面放置一个或多个代码,这些代码列举如下:

按键 代码
SHIFT +
CTRL ^
ALT %


为了说明在按下其它按键时应同时按下 SHIFT、CTRL、及 ALT 的任意组合键,请把那些按键的码放在括号当中。例如,为了说明按下 E 与 C 的时候同时按下 SHIFT 键,请使用 "+(EC)"。为了说明在按下 E 的时候同时按下 SHIFT 键,但接着按 C 而不按 SHIFT,则使用 "+EC"。

为了指定重复键,使用 {key number} 的形式。必须在 key 与 number 之间放置一个空格。例如,{LEFT 42} 意指 42 次按下 LEFT ARROW 键;{h 10} 则是指 10 次按下 H 键。

注意 不能用 SendKeys 将按键消息发送到这样一个应用程序,这个应用程序并没有被设计成在 Microsoft Windows 中运行。Sendkeys 也无法将 PRINT SCREEN 按键 {PRTSC} 发送到任何应用程序。




samwzhang 2005-03-04
  • 打赏
  • 举报
回复
SendKeys "%{DOWN}"
SendKeys "%{UP}"
SendKeys "%{LEFT}"
SendKeys "%{RIGHT}"

分全给偶吧。
biku 2005-03-04
  • 打赏
  • 举报
回复
sendkeys 能发送到以知句柄的窗口吗?比如IE中??
tqw708 2005-03-04
  • 打赏
  • 举报
回复
不用用API都可以

先判断是否按了ALT,再判断其他方向键的ASCLL码,就可以了
pojieying 2005-03-04
  • 打赏
  • 举报
回复
要钱不要分

QQ:419451334

/////////////////////////

有钱赚、要订做程序,非常欢迎。我是面向金钱编程的信仰者。
破解收取注册费的三分之一;反编译一百元起价,反汇编四百元起价;
//补:Delphi程序反编译六月前优惠;
加载更多回复(1)

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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