怎么样用鼠标设定可以隐藏一个或数个程序(200分)

  • 主题发起人 主题发起人 mandy
  • 开始时间 开始时间
M

mandy

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在帝国运行的时候连按三次左右两键就可以将其隐藏,任务栏上并不会显示出来,而且

用ALT+TAB也没有显示,再连按三次又可自动回到帝国中去,能否提供完整的源代码?谢谢。
 
截获鼠标3击事件,然后用函数隐藏程序即可。具体函数我得查查书,忘了。
 
zzqw0117你在放什么屁?看清楚要求再回答。说了等于没说一样,给点诚意行不行。
 
mandy好大的脾气!?
 
大家帮个忙啦,好不好?
 
你若不对zqw0117, 抱歉,估计的问题就要石化了! ;[:D]
 
to mandy:zqw0117也算是回答问题了呀,你怎么可以那样对他呢?(声明:我不认识他)
  你不会是怕正在玩游戏被老板抓住才想这么做的吧?
 
全中,这样子也造福广大的人民群众嘛。你们教我呀。

(提供完整的源代码)这是基本的要求呀。
 
按鼠标键的话,目前还没想到。按键盘的键简单一点,比如 F12 键啦
RegisterHotKey可以注册一个热键,每次按那个热键都会得到一个WM_HOTKEY 消息
至于“帝国”我没玩过,我的机也没有游戏。你可以用delphi带的WinSight32查它的窗口类型
查到以后,将来可以用FindWindow找到他的窗口
用ShowWindow带SW_HIDE参数隐藏主窗口,那么用ALT_TAB也不能显示了
显示出来的话也是用ShowWindow,带SW_SHOW参数
完整的源代码,一下子写不出来
 
┬┴┬┌─ ●─┬─  │─┼─┐ ●├─┤○
┴┬┴├┬ ┌─┼─ │◎ │ │ ○└┬┘●
─┼─││ │ │  ││─┴─┴ ──┼──
●│○││ ┴─┼─  │○  ● / │ ;\

下面的代码可以实现从“关闭程序窗口”中隐藏程序自身(WinNT下无效):
首先声明:
type
; THideApp = Function (dwProcessID, dwType: DWord) : DWord; stdcall;

使用如下:

; DllHandle:=LoadLibrary('KERNEL32.DLL');//导入Dll文件
; try
; ; if DllHandle <> 0 then //调入成功
; ; ; begin
; ; ; ; @HideApp:=GetProcAddress(DllHandle,'RegisterServiceProcess');
; ; ; ; if @HideApp<>nil then
; ; ; ; ; begin
; ; ; ; ; ; HideApp(GetCurrentProcessId,1);
; ; ; ; ; end;
; ; ; end;
; finally
; ; FreeLibrary(DllHandle);
; end;

在OnCreate事件中添加下列代码可以不在任务栏上显示程序按钮:
SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
//程序不出现在任务栏

---------------------------

昨天是想不起来具体的方法,我刚刚查过书了。
 
另外,调用ShowWindow(Application.Handle,SW_HIDE)函数可以把窗口Hide起来。
 
:zqw0117
; ;别这么害怕,我觉得你说的已经够详细了,是它的错
 
奶奶个胸,好,等我今天晚上测试一下,通过的话明天就送分。
 
刚才看错了,不好意思。我的意思是我自己写一个程序,然后运行这个程序的时候

可以检测如果我连续同时按了鼠标的两个键N次后,可以自动切换回WIN且“帝国时

代”,并且帝国并不显示在任务栏、关闭程序对话框和ALT+TAB的切换栏里面,大

家能帮我吗?
 
最大的问题不在于隐藏,而是“按了鼠标的两个键N次后”
这个要利用TIMER,要有技巧,因为N不可能为2,1,这两个太常用到,
不能太快,不能太慢。
 
晕,捕捉按键怎么会复杂???
比如,对于一Button, 你可以在他的点击事件里处理啊,
用个数组,可以精确纪录下你索要的几次时间啊,用Timer,土不土啊??
精确度呢??利用api函数,记下最近n(比如10)次的精确时间,然后判断
时间是否在需要的就行了??
 
给你一个设计流程,新建一个程序,然后让程序去启动“帝国时代”,方法
是使用ShellExecute函数,该函数成功返回的是启动的程序的Handle,然后
捕捉鼠标或键盘事件,调用ShowWindow(Handle,SW_HIDE)或
ShowWindow(Handle,SW_SHOW)函数隐藏程序(注意这里的Handle是
ShellExecute返回的程序句柄)或显示程序。流程就这样,其它的可以参考
我前面讲到的。另外,过节吗,我不计较什么,你试试看,希望我的帮的上
你。
 
补充一句,分我可计较:-D
[:D]
 

Similar threads

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