当前位置:主页>仓库管理软件> 列表

请教大虾...就自己的程序的窗口锁定后最小化和恢复问题.. 找局域网管理软件下载

记账软件版1楼: 就锁定我的程序,不锁定系统...即操作员操作一半时有事情离开,但此时不想让别人使用该软件,然后按个"F8"出个锁定密码窗口.然后最小化软件..回来后最大化后输入密码然后继续原来的窗口工作....但期间其他人仍能使用操作系统做其它事情..
..怎样锁定呢?因为软件有很多窗口,随时都可能按"F8"离开和恢复......请教各位了...(不能使用系统锁定,因为其他人还要继续使用电脑)...可举个例子吗?

2楼: 在APPLICATION的消息队列里监听F8
然后弹出一个模态窗口即可 如用友u8财务软件下载

3楼: 建议在基类窗体的F8-KeyPress事件中写事件就可以了,然后所有窗体继承基类窗体,就都具有了
基类窗体F8-KeyPress的事件处理!注意要把基类窗体的KeyPreview属性设置为True!

4楼: 键盘钩子钩本程序,再处理。

5楼: 可举个例子吗?
大概给两行代码看看...

6楼: kgm,的有道理,因为还要处理其它应用程序的F8,可以在其它帖子中找“键盘钩子钩本程序”的代码。。。

记账软件版7楼: 现在程序都作好了,有一百~几十个窗体.都用showmodel的...用窗体继承可能要改很多地方...有简单使用的方法吗?...其它方法正在试....

8楼: SetWindowsHookEx(WH_KEYBOARD, CallBackDelHook, HInstance , 0);
具体的看刘麻子的钩子系列例子。

9楼: 何必用钩子呢,因为用钩子无非是要在别的程序运行时(或说正拥有焦点时)使F8不影响
别的程序操作,那么反过来,就等于是说直接在本程序的KeyPress事件中截取"F8"就行了。
所以,只要在本程序获得焦点(即正处理)的时候处理F8-KeyPress事件就行了。
对于几十个窗体都用showmodel的情况,不用改写每个窗体KeyPress事件,你可以用全局
控制,交由Applation处理,写个判断处理方法,然后赋值给Application.OnMessage(方
法类型要一致)。

10楼: 使用 ◇[DELPHI]按键接受消息
OnCreate事件中处理:Application.OnMessage:=MyOnMessage;
procedure TForm1.MyOnMessage(var MSG:TMSG;var Handle:Boolean);
begin
if msg.message=256 then ... //ANY键
if msg.message=112 then ... //F1
if msg.message=113 then ... //F2
end;

if msg.message=256 then ... //ANY键 可以......但为什么 F1..F2....等按键无效呢?...

11楼: 按鍵事件
應用程序
獨立窗體
組合就可以了。

12楼: 谢谢各位...搞定了....修改上面的代码如下即可...但锁定窗口后无法最小化本程序..
if msg.message=WM_KEYDOWN then
begin
if msg.wParam=VK_F1 then
begin
//OK
end;

...但锁定程序窗口后无法最小化本程序..即任意最小化一个打开的窗口,就能把所有已经打开的程序窗口最小化.... 恢复时恢复原状.....我使用的是 showmodel ....请继续...明天结帐..... 如局域网管理软件下载

13楼: 问题2未解决......