登陆窗口的超级难问题,至今未解决 ( 积分: 100 )

W

wh7211

Unregistered / Unconfirmed
GUEST, unregistred user!
代码:
代码:
现在我做一个记费系统。登陆时有一个窗口,只有输入正确的用户名和密码才可以登陆。现在的问题是,如果他点任务栏上的图标,就会最小化登陆窗口,然后使用操作系统。而我想实现的是:登陆窗口只有正确登陆才消失,登陆不正确就始终显示在桌面上,不让他使用桌面和操作系统,就是象某些记费软件那样,登陆窗口显示时,桌面背景是暗的,类似于windows关机对话框。
很急的,各位帮帮忙。。。
 
W

wh7211

Unregistered / Unconfirmed
GUEST, unregistred user!
代码:
代码:
现在我做一个记费系统。登陆时有一个窗口,只有输入正确的用户名和密码才可以登陆。现在的问题是,如果他点任务栏上的图标,就会最小化登陆窗口,然后使用操作系统。而我想实现的是:登陆窗口只有正确登陆才消失,登陆不正确就始终显示在桌面上,不让他使用桌面和操作系统,就是象某些记费软件那样,登陆窗口显示时,桌面背景是暗的,类似于windows关机对话框。
很急的,各位帮帮忙。。。
 
U

utop

Unregistered / Unconfirmed
GUEST, unregistred user!
查查以前的帖子,这个问题应该被问过很多次。
基本思路是
1。隐藏任务栏
2。将应用程序窗口置于顶端
3。最难解决的部分,屏蔽操作系统快捷键,即Windows 键,ALT + TAB,CTRL + ALT + DEL 等
 
W

wh7211

Unregistered / Unconfirmed
GUEST, unregistred user!
可以说得详细点吗?
将应用程序窗口置于顶端就是窗口置顶吧?怎么置啊?
我要实现的是:只有我用delphi写的登陆窗口能用,其他的都不能用,包括桌面什么的都无法用,只有正确登陆才可以用,就象windows登陆框一样。
 
Z

zfg886

Unregistered / Unconfirmed
GUEST, unregistred user!
没去做过.也没去研究其它计费网管软件是如何工作的.
不过我想可以用HOOK 拦截所有键盘鼠标消息.不是发送到你这个窗口的消息统统过滤.正确登陆后才释放这个HOOK
我认为这个代码很容易简单的就可以实现.
 
W

wh7211

Unregistered / Unconfirmed
GUEST, unregistred user!
继续关注,问题继续。还有,如何使用hook呢?
 
Z

zfg886

Unregistered / Unconfirmed
GUEST, unregistred user!
钩子不知道用吗?
那得另外开帖了.
HOOK消息估计并且实现过滤,带参数声明等等,一共有50行代码应该足够了(包括调用EXE文件和DLL模块代码,但不包括窗体代码)
 
S

Siva

Unregistered / Unconfirmed
GUEST, unregistred user!
有个系统模态窗口设置,不退出不能执行其他应用程序操作,win32下可以设置
 

天空还下着沙

Unregistered / Unconfirmed
GUEST, unregistred user!
...禁用系統熱鍵不是很難吧。
 
Q

qiaojiaxiu

Unregistered / Unconfirmed
GUEST, unregistred user!
设置禁用系统图标
 
U

uiit

Unregistered / Unconfirmed
GUEST, unregistred user!
http://www.obsof.com/delphi_tips/sysmodal.html
应该对你有帮助
 

晶晶

Unregistered / Unconfirmed
GUEST, unregistred user!
只要使用clipcursor函数锁定鼠标,然后使用键盘低级钩子将键盘的系统键屏蔽就可以达到你的要求了。
低级键盘钩子使用方法你可以参照:
http://www.blogcn.com/user35/sundytu/blog/21389369.html
至于ClipCursor函数的使用你可以找这个函数,很简单的。
 

网中戏

Unregistered / Unconfirmed
GUEST, unregistred user!
将桌面和任务栏锁住.密码正确才打开
 
W

wh7211

Unregistered / Unconfirmed
GUEST, unregistred user!
Siva,有个系统模态窗口设置,不退出不能执行其他应用程序操作,win32下可以设置 .
请详细说说。
 
W

wh7211

Unregistered / Unconfirmed
GUEST, unregistred user!
to 晶晶
我试试吧,太难了吧,头有点大了。有没有简单的方法?
Siva, 时间:2005-12-24 8:29:47, ID:3307258
有个系统模态窗口设置,不退出不能执行其他应用程序操作,win32下可以设置
比如siva这个方法。
回答我的问题最好给段代码,我很菜的。呵呵。
 
W

wh7211

Unregistered / Unconfirmed
GUEST, unregistred user!
晶晶,我已经试验了,可以使用键盘低级钩子屏蔽win系统键,可是使用clipcursor函数锁定鼠标,怎么实现啊?能也给段代码吗?是不是把鼠标锁定到我的登陆窗体上啊?
 
Z

zfg886

Unregistered / Unconfirmed
GUEST, unregistred user!
function MouseProc(nCode: Integer;
wParam: WParam;
lParam:Longint): HResult;
stdcall;
begin


if PMsg(Msg)^.hwnd<> 你的程序窗口 then
//这里有可能会出错,我没试过.因为可能这个句柄是你窗口的子窗口的句柄,不过可以设法判断是不是子窗口.
pMsg(@wParam)^.message:=0;
//也可以依据鼠标位置来判断
{if pMsg(@wParam)^.pt 没在你的窗口范围内 then
//你可以先限制窗口的移动.
pMsg(@wParam)^.message:=0;
}
//同上也可以判断按键按下时的窗口输入焦点,如果焦点在你的窗口上,则对消息放行,如果不是,则修改消息.
Result := CallNextHookEx(HookHandle, nCode, wParam, Longint(@lParam));
end;

end.
 
Z

zfg886

Unregistered / Unconfirmed
GUEST, unregistred user!
这是钩子函数,如果需要进一步的完整HOOK代码,可以留个信箱,我有现成的.
 
W

wh7211

Unregistered / Unconfirmed
GUEST, unregistred user!
zfg886
请发到我的邮箱吧,最好有详细的代码说明啊.
wh7211@yahoo.com.cn
 
W

wh7211

Unregistered / Unconfirmed
GUEST, unregistred user!
晶晶
我可以锁定鼠标了,不过需要把代码写在按扭上,点击按扭才可以锁定.
现在,我要开机自动运行登陆窗口,我把代码加到formcreat事件中,可是不管用啊,没有锁定,请问要如何锁定?
 
顶部