怎样知道每个键的的虚拟键值?在keybd_event中,C对应的键值是41吗(不是ASCII码!)?其他键的键值又是多少呢? (100分)

  • 主题发起人 主题发起人 lcl800
  • 开始时间 开始时间
L

lcl800

Unregistered / Unconfirmed
GUEST, unregistred user!
1 怎样知道每个键的的虚拟键值?在keybd_event中,C对应的键值是41吗(不是ASCII码!)?
其他键的键值又是多少呢?
2 如何使用olecontainer控件,从一个olecontainer中选择一段文字复制到另一个控件?
如何显示数据库的ole、graphic、binary字段?
3 如何使用olecontainer控件?
 
System包里,
问题2不会。
 
1.使用stream可以显示这些字段。graphic直接使用dbimage就 可以显示。
ole类型,如果存放的是文件,而且文件格式各异的话,使用olecontainer
来显示,
2.olecontainer.createobjectfromfile(filename,false);//就可以。
 
1.
给你一段代码自己看键值:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Label1.Caption := IntToStr(Key);
end;
 
to dfan2000:

我需要用kebd_event模拟ctrl+a(全选) ctrl+c ctrl+v, 这样,我就可以
从一个olecontainer控件中自动复制内容到另一个控件,但是,你提供的方法是求得
键的ASCII值,结果不对,不能完成指定任务。
在以前的讨论中,a 的值是41,用你的方法求得的值是65,在程序当中不能完成,我按照
顺推的方法求得c的值是43,v的值是62,但结果不对。
从一个olecontainer控件中自动复制内容到另一个olecontainer控件程序
Olecontainer2.doverb(ovOpen);//打开文件
keybd_event(VK_CONTROL ,0,0,0);//按住ctrl键不放
keybd_event($41,0,0,0); //ctrl_a
keybd_event($43,0,0,0); //ctrl_c
Olecontainer1.doverb(ovOpen);//打开另一个olecontainer1
keybd_event(VK_CONTROL ,0,0,0);
keybd_event($59,0,0,0); //ctrl_V 程序错误,手工操作正确
keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0);//释放ctrl被按下的状态


 
$41是‘A’
‘C’应该是$43
 
to snappy:
$41是‘A’,‘C’应该是$43,你是如何知道的?通过什么资料可以查到?

 
delphi光盘里有一个sndkey32.pas,查找考到lib目录下。
use sndkey32;
procedure TForm1.Button1Click(Sender: TObject);
begin
richedit1.SetFocus;
sendkeys('^a',true);
sendkeys('^c',true);
sendkeys('^v',true);
end;

对当前活动窗口有效,可以先setforegroundwindow。
 
he VkKeyScan function translates a character to the corresponding virtual-key code and shift state for the current keyboard.

SHORT VkKeyScan(

TCHAR ch // character to translate
);


Parameters

ch

Specifies the character to be translated into a virtual-key code.
 
to xiao_min:
什么意思,不懂
 
不是要虚拟键值么?VkKeyScan就是做这个的呀。。
 
麻烦你说详细一点
 
先写:VK_F1,
然后:按住Ctrl + 鼠标左鍵
然后:自己看吧
 
bubble-35,dfan2000-15,
hbezwwl-10,rainxy2002-10,snappy-10,xiao_min-20,
 
后退
顶部