qq2006中怎样取得发送消息窗口中的Richedit
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qq2006中怎样取得发送消息窗口中的Richedit相关的知识,希望对你有一定的参考价值。
参考技术A 分类: 电脑/网络 >> 软件问题描述:
学习编程中想让程序可以自动在QQ的发送消息框中自动发送消息,但在QQ2006中好象发送消息框中的RICHEDIT加密了,用这样的方法的不到了,请高手看下如下代码:
fLastWin := FindWindowEx(GetForegroundWindow, THandle(nil), '#32770', nil);
if fLastWin = 0 then Exit;
fButton := FindWindowEx(GetForegroundWindow, THandle(nil),nil,'发送(&S)');
if fButton=0 then Exit;(这个发送按扭也找不到,所以暂时没有用)
fLastWin := FindWindowEx(fLastWin, THandle(nil),'AfxWnd42',nil);
if fLastWin=0 then Exit;
label2 .Caption:=('以上条件成立');在这里时还可以提示成立
fLastWin := FindWindowEx(fLastWin, THandle(nil),'RICHEDIT',nil);
if fLastWin=0 then Exit;
label2 .Caption:=('以上条件成立');但在这里就不行了
SendMessage(RICHEDIT,EM_REPLACESEL,180,Integer(Pchar(Edit1.TEXT)));
请各位大侠指点小弟!多谢
解析:
以下是从网上找的一段代码,你可以试下,FindWindow用法说得有误,第一个参数应该是类名,第二个是窗口名,也即是标题。你自己改下吧。
var
Wnd: HWND;
begin
查找标题为123,类名是#32770的窗口
Wnd := FindWindow('123', '#32770');
if Wnd <> 0 then
begin
查找文本是'Edit1',类名是EDIT的子窗口
Wnd := FindWindowEx(Wnd, 0, 'Edit1', 'EDIT');
if Wnd <> 0 then SetWindowText(Wnd, PChar('Test');
end;
end;
你也可以用Spy++之类的察看目标EDIT的Identifier(ID)
var
Wnd: HWND;
const
ID: 123;
begin
查找标题为123,类名是#32770的窗口
Wnd := FindWindow('123', '#32770');
if Wnd <> 0 then
begin
Wnd := GetDlgItem(Wnd, ID);
if Wnd <> 0 then SetWindowText(Wnd, PChar('Test');
end;
end;
具体的查查MSDN吧
vc中应该如何向窗口发送组合键消息
已经有窗口句柄,只是用windows API
谢谢
比如说 Ctrl+‘s'
每个键都由一个或多个字符默示。若要指定单个键盘字符,请应用该字符本身。例如,若要默示字母 A,请将字符串“A”传递给办法。若要默示多个字符,请将各个附加字符追加到它之前的字符的后面。若要默示字母A、B和C,请将参数指定为“ABC”。
加号(+)、插入符号(^)、百分号(%)、波浪号(~)以及圆括号()对 SendKeys 具有特别含义。若要指定这些字符中的某个字符,请将其放在大括号 () 内。例如,若要指定加号,请应用“+”。若要指定大括号字符,请应用“”和“”。中括号 ([ ]) 对 SendKeys 没有特别含义,但必须将它们放在大括号内。在其他应用法度中,中括号具有特别含义,此含义可能会在产活泼态数据互换(DDE)时起首要感化。
若要指定在按键(如ENTER或TAB)时不显示的字符,以及默示操纵而不默示字符的键,请应用下表中的代码: 键 代码
BACKSPACE BACKSPACE、BS 或 BKSP
BREAK BREAK
CAPS LOCK CAPSLOCK
DEL 或 DELETE DELETE 或 DEL
DOWN ARROW(下箭头键) DOWNEND ENDENTER ENTER 或 ~ESC ESCHELP HELP
HOME HOME
INS 或 INSERT INSERT 或 INS
LEFT ARROW(左箭头键) LEFT
NUM LOCK NUMLOCK
PAGE DOWN PGDN
PAGE UP PGUP
PRINT SCREEN PRTSC(保存供将来应用)
RIGHT ARROW(右箭头键) RIGHT
SCROLL LOCK SCROLLLOCKTAB TABUP ARROW(上箭头键) UPF1 F1F2 F2F3 F3F4 F4F5 F5F6 F6F7 F7F8 F8F9 F9F10 F10F11 F11F12 F12F13 F13F14 F14F15 F15F16 F16数字键盘加号 ADD
数字键盘减号 SUBTRACT
数字键盘乘号 MULTIPLY
数字键盘除号 DIVIDE
若要指定与SHIFT、CTRL和ALT键的随便率性组合一路应用的键,请在这些键代码之前加上以下一段或多段代码。 键 代码SHIFT +CTRL ^ALT %若要指定在按一些键时应同时按住SHIFT、CTRL和ALT键的随便率性组合,请将这些键的代码放在括号内。例如,若要指定按E和C时同时按住SHIFT键,请应用“+(EC)”。若要指定按E时应按住SHIFT,之后按C时不按住 SHIFT,请应用“+EC”。
要指定反复的键,请应用 键数字 的情势。键和数字之间必须放一空格。例如,LEFT 42 默示按左箭头键 42 次;h 10 默示按H 10次。 参考技术A 详情请看参考资料,他说的是alt键
而ctrl键的虚拟键值为VK_CONTROL,换一下就行了。
参考资料:http://blog.csdn.net/pjl1119/article/details/6914902
本回答被提问者采纳以上是关于qq2006中怎样取得发送消息窗口中的Richedit的主要内容,如果未能解决你的问题,请参考以下文章