当前位置:主页>销售管理软件> 列表

在按下Ctrl输入‘123gjh’(密码)后触发一个事件。 找速达财务软件官网

进销存软件版1楼: 怎样实现:

在按下Ctrl输入‘123gjh’(密码)后触发一个事件。
就像delphi的一样,在delphi 的About界面下按Ctrl输入(。。。我忘了)就会出现制作名单。

2楼: 在onkey...这些事件里处理。 如医药进销存管理系统

3楼: 復活節彩蛋的問題

4楼: OnkeyPress事件里处理

5楼: private
{ Private declarations }
FPswd:String;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Shift=[ssCtrl] then
begin
if Key<>17 then //如果按下的是Ctrl鍵,則跳過
FPswd:=FPswd+Chr(key);
Caption:=FPswd;
if FPswd=''1234'' then
ShowMessage(''You got it'');
end;
end;

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=17 then //如果放開了Ctrl鍵,則清空密碼
FPswd:='''';
Caption:=FPswd;
end;

6楼: 好象要用到HOOK

进销存软件版7楼: GetKeyState这个API可以判断Ctrl键是否被按下,说明如下:


函数功能:该函数检取指定虚拟键的状态。该状态指定此键是UP状态,DOWN状态,还是被触发的(开关每次按下此键时进行切换)。

函数原型:SHORT GetKeyState(int nVirtKey);

函数:

nVrtKey:定义一虚拟键。若要求的虚拟键是字母或数字(A~Z,a~z或0~9),nVirtKey必须被置为相应字符的ASCII码值,对于其他的键,nVirtKey必须是一虚拟键码。若使用非英语键盘布局,则取值在ASCIIa~z和0~9的虚拟键被用于定义绝大多数的字符键。例如,对于德语键盘格式,值为ASCII0(OX4F)的虚拟键指的是"0"键,而VK_OEM_1指"带变音的0键"

返回值:返回值给出了给定虚拟键的状态,状态如下:

若高序位为1,则键处于DOWN状态,否则为UP状态。

若低序位为1,则键被触发。例如CAPS LOCK键,被找开时将被触发。若低序位置为0,则键被关闭,且不被触发。触发键在键盘上的指示灯,当键被触发时即亮,键不被触发时即灭。

备注:当给定线程从它的消息队列中读键消息时,该函数返回的键状态发生改变。该状态井不反映与硬件相关的中断级的状态。使用SetKeyboardState可获取这一信息。

欲检取所有虚拟键状态信息,可以使用SetKeyboardState函数。


应用程序可以使用虚拟键码常数VK_SHIFT,VK_CONTROL和VK_MENU作为nVirtKey参数的值。它给出shift,ctrl或alt键的值而不区分左右键,应用程序也可以使用如下的虚拟键码常数作nVirtKey的值来区分前述键的左键、右键的情形。

VK_LSHIFT,VK_RSHIFT;VK_LCONTROL,VK_RCONTROL;VK_LMENU,VK_RMENU

仅当应用程序调用GetKeyboardSlate,SetKeyboardState,GetAsyncKeystate;GetKeyState和MapVirtualKey函数时,才可用这些区分左右键的常数。

Windows CE:GetKeyState函数仅能用于检查如下虚拟键的DOWN状态。

VK_LSHIFT,VKRSHIFT,VK_LCONTROL;VK_RCONTROL;VK_LMENU,VK_RMENU

GetKeyState函数只能用于检查VK_CAPITAL虚拟键的触发状态。

速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.I及以上版本;头文件:winuser.h;库文件:user32.lib。

8楼: 和彩蛋原理一样啊!

9楼: BrainYang 说的能用,我测试过了,绝对没问题

10楼: BrainYang的能用,但可能有更好的方法

11楼: 但如果Form1上有个Edit,memo之类的怎么办?

12楼: 不好意思,把Form的KeyPreview設為True還不行。 如速达财务软件官网

13楼: 多人接受答案了。