在delphi中如何判断是否按下Ctrl键或Shift键?另外怎么在delphi中调用windows的应用程序?
解决方案 »
- 如何完成窗体主菜单下的子菜单与对应弹出窗体的衔接问题????-------十分急!!!!!!!!!!!
- 父子类之间的类型转换问题,很简单,但我搞不清楚 200502
- 救急:为什么MediaPlayer控件不能播放mp3??播放avi,wav,mid都可以的?如果要播放mp3有什么办法解决?在线等!
- 如何捕获maskedit的输入格式错误!
- 这个错怎么解决?
- 在sql中类型不匹配的问题
- DELPHI 7企业办与个人版的区别
- ReadFile
- 绘制背景后,使用DrawText绘制文字出错
- Delphi6中少了一个Dsgnintf.pas文件,导致很多控件都无法使用,用Delphi5的这个文件也不行,该怎么办?
- 如何在DLL中调用自己的函数??
- 请问怎么样识别一般文件和文件夹?
GetKeyState(nVirtualKeyCode);
来知道任何键的状态:
返回值是:
一个short integer, 在Delphi中可以认为是Word;
如果最高位是1,则表明键是处于按下的状态,
如果最低位是1,则表示处于激发状态,(例如大小写状态)常用的键的nVirtualKeyCode值是:
VK_SHIFT: 任何一个Shift键
VK_LSHIFT: 左边的那个
VK_RSHIFTVK_CONTROL: 任何一个Ctrl键
VK_LCONTROL
VK_RCONTROLVK_MENU: 任何一个Alt键
VK_LMENU
VK_RMENU
检查左边的那个Shift键盘有没有按下:
if ( ( integer(GetKeyState(VK_LSHIFT))
and integer($80)
)
<>0
) then
Begin
{ Haha, you are pressing the left Shift key, :) }
End
else
Begin
End;
Shift: TShiftState);
begin
if GetKeyState(vk_control) and (key = vk_Left) and
(PageControl1.TabIndex = 2) then
begin
PageControl1.TabIndex:= 1;
end; //end if
end;帮忙看看有问题吗?
谢谢