如何能够在我的程序运行时无法激活其他任何程序?(95分)

  • 主题发起人 主题发起人 base3
  • 开始时间 开始时间
B

base3

Unregistered / Unconfirmed
GUEST, unregistred user!
就是使其它窗体标题无法变兰

试了好多办法了,如:
showwindow(handle,SW_RESTORE);
form1.Activate;
setfocus;
setforegroundwindow(handle);
还是不行呀,大虾救命则个!
 
目前没有好办法,参考一下 Crane的那个帖子,你会有一些收获!
 
就是那个他用钩子钩了一天的程序吗?:>
好象他也没有什么好的解决方法?
 
1。将form的BorderStyle设为bsnone,
2,程序启动时将其最大化
3。屏蔽alt + tab等系统按键,(用SystemParametersInfo)
 
呵呵,你的方法我已经用过了
虽然也可以达到效果,但是有一个问题是:
我的程序不允许最大化显示:(
 
干脆把桌面隐藏起来!这样别人就没法启动别的程序了。
关于隐藏的方法,有贴子说明的。
 
To Crab:
hehe ,和我想到一块去了
也是没有办法的办法
现在已经隐藏了taskbar和桌面图标,但是不知怎么对桌面
的其他应用程序进行隐藏?
总不能对用showwindow(findwindow(nil,nil),SW_HIDE)
这样的语句吧?
 
附加功能 将问题提前
 
你写过屏幕保护程序没有,很多地方有屏幕保护的例子,只要让系统以为
现在是屏幕保护状态,用户就只能使用你的程序,要退出这种状态只要取消屏幕保护
的状态。
 
如果你想系统只运行你的程序,别的都不能运行的的话,我倒有个办法肯定行。
把 System.ini 文件的 [boot] 下面把 shell=Explorer.exe 中的 Explorer.exe 换成
你的执行文件,保存,重启。
 
可以考虑处理事件,当目前窗口失去焦点时,还可以让你的窗体始终在前面!
当然可以用钩子去蓝切,捕获到其他程序有焦点时给他发送一个WM_QUIT不就搞顶了!
 
执行你的文件后鼠标固定在你的程序窗口内不让它外移------不知道行不行???
 
拦截系统消息,当拦截到切换程序的消息时就吞掉它。(不知道切换程序时系统发送什么消
息!)
 
拦截系统消息.
在消息有个参数是指明那个窗口的消息.
找到自己的窗口的handle能够改不难吧,
在Hook中判定If windows.handle==myselfwindow.handle then go on<后传递>.
if <> then cancel<既不向后传递>.
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部