显示/隐藏桌面/任务栏!(源码)(0分)

  • 主题发起人 主题发起人 wind2000
  • 开始时间 开始时间
W

wind2000

Unregistered / Unconfirmed
GUEST, unregistred user!
1.电脑用了一段时间后装的软件多了,桌面上也多了很多图标,有时候弄个好看的桌面,可是
被图标给挡住了,看了很不爽!
2.上班的时候上QQ聊天不大好,可是不聊又不行,那么多MM没人陪闷坏了她们可不好,可是信息
一来任务栏上的QQ头像就乱跳,一不小心被老板看到了可不妙,怎么办呢?
===================================================================================
简单写下下面这两段代码,编译后156K,用ASPACK压缩一下只有74K,真正的小巧实用!
1.在桌面上建立Desk.exe和Tray.exe的快捷方式(注意:起始位置要设成两个文件的存放目录)
2.将Desk.exe的快捷方式移到任务栏上
3.运行Desk.exe奇数次隐藏桌面图标,偶数次显示桌面图标
4.运行Tray.exe奇数次隐藏任务栏,偶数次显示任务栏
{源代码如下}
program Desk;
{=============================}
{========桌面隐藏/显示========}
{============彭 涵============}
{============v 0.1============}
{=============================}
uses
Windows,
IniFiles,
SysUtils;
{$R *.res}
var
hDesktop : THandle;
MyIni: TIniFile;
bShow: boolean;
begin
hDesktop := FindWindow('ProgMan', nil);
MyIni := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'Desk.ini');
with MyInido
begin
bShow := ReadBool('SETUP', 'DESKTOP_SHOW', False);
if bShow then
ShowWindow(hDesktop, SW_SHOW)
else
ShowWindow(hDesktop, SW_HIDE);
WriteBool('SETUP', 'DESKTOP_SHOW', not bShow);
UpdateFile;
Free;
end;
end.

program Tray;
{=============================}
{=======任务栏隐藏/显示=======}
{============彭 涵============}
{============v 0.1============}
{=============================}
uses
Windows,
IniFiles,
SysUtils;
{$R *.res}
var
hTray: THandle;
MyIni: TIniFile;
bShow: boolean;
begin
hTray := FindWindow('Shell_TrayWnd', nil);
MyIni := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'Desk.ini');
with MyInido
begin
bShow := ReadBool('SETUP', 'SHELLTRAY_SHOW', False);
if bShow then
ShowWindow(hTray, SW_SHOW)
else
ShowWindow(hTray, SW_HIDE);
WriteBool('SETUP', 'SHELLTRAY_SHOW', not bShow);
UpdateFile;
Free;
end;
end.
 
大哥,学了这两招不要上来耍啊,这东西我一年前就玩腻了。
其他的DFW在我还不知道Delphi的时候就会了。
 
to 阿高:
对不起,我不是耍给你看的,也不想耍给谁看,我想你会了不等于所有人都会了,你大可以
走过场,没人会说你什么,我贴上面这两段代码主要是给那些刚入门的人看的,还有一个目的
是给大家两个实用的工具。
 
教训的是,我会并不等于所有人都会,诚心接受教训了。
 
to 阿高:
很高兴你能有这种态度,前一段大富翁上一些人因为观点不合大打出手,我想双方各让一步
没什么大不了的,又不是什么世代仇敌,非得拼个你死我活,搞的大家都不愿上大富翁。
最近在大富翁越来越多的人开始公开自已的一些程序源代码和编程思路,我想这样对提高
大家的水平非常有帮助,就是你对某些内容已经懂的了,再温习一遍我想也没什么不可以的,
大家来这里都是为了提高Delphi水平,我们不能只管着象你这样的高手的需要,我想更需要的
是那些刚刚接触Delphi的人,对他们来说多看别人的代码会学的更快更好,这样就可以吸引更
多的人上在富翁,起到一个良性循环的作用。我上面的两小段代码只是想起个抛砖引玉的作用,
但愿能有效果!
还有,我想大家不要怕程序写的不好不敢贴出来,贴出来就有人给你指出哪里不好,为什么
不好,这样你不就学到东西了吗?所以厚一点脸皮,贴吧!:)
 
嗯,我又学到宝贵的东西了,谢谢。
我记得我初学Delphi时,第一次提出的问题是如何在程序中运行其他的程序。
我得到的答案是WinExeC('c:/aaa.exe',32)。那时真有如获至宝的感觉。
我也记得我的老师和我说过这么一个故事。
(这是一位在中国某医学院任职的美国教师的演讲)
在暴风雨后的一个早晨,一个男人来到海边散步。他一边沿海边走着,一边注意到,
在沙滩的浅水洼里,有许多被昨夜的暴风雨卷上岸来的小鱼。它们被困在浅水洼里,
回不了大海了,虽然近在咫尺。被困的小鱼,也许有几百条,甚至几千条。用不了多久,
浅水洼里的水就会被沙粒吸干,被太阳蒸干,这些小鱼都会干死的。
男人继续朝前走着。他忽然看见前面有一个小男孩,走得很慢,而且不停地在每一个
水洼旁弯下腰去--他在捡起水洼里的小鱼,并且用力把它们扔回大海。这个男人停下来,
注视着这个小男孩,看他拯救着小鱼们的生命。
终于,这个男人忍不住走过去:"孩子,这水洼里有几百几千条小鱼,你救不过来的。"
"我知道。"小男孩头也不抬地回答。
"哦?你为什么还在扔?谁在乎呢?"
"这条小鱼在乎!"男孩儿一边回答,一边拾起一条鱼扔进大海。
"这条在乎,这条也在乎!还有这一条、这一条、这一条......"
今天,你们在这里开始大学生活。你们每一个人,都将在这里学会如何去拯救生命。
虽然你们救不了全世界的人,救不了全中国的人,甚至救不了一个省一个市的人,但是,
你们还是可以救一些人,你们可以减轻他们的痛苦。因为你们的存在,他们的生活从此有
所不同--你们可以使他们的生活变得更加美好。这是你们能够并且一定会做得到的。
在这里,我希望你们勤奋、努力地学习,永远不要放弃!
记住:"这条小鱼在乎!这条小鱼在乎!还有这一条、这一条、这一条......"
wind2000又使我从新想起这文章了。
 
我也来贴几句。
//关机(win9x only)
ExitWindowsEx(EWX_SHUTDOWN,0);

//重启(win9x only)
ExitWindowsEx(EWX_REBOOT,0);

//隐藏桌面
var
hdesktop: thandle;
begin
hDesktop:=FindWindow('ProgMan',nil);
ShowWindow(hDesktop,SW_HIDE);
//或者ShowWindow(FindWindow('ProgMan',nil),SW_HIDE);
end;

//显示桌面
var
hdesktop: thandle;
begin
hDesktop:=FindWindow('ProgMan',nil);
ShowWindow(hDesktop,SW_SHOW);
//或者ShowWindow(FindWindow('ProgMan',nil),SW_SHOW);
end;

//隐藏任务栏
var
windhandle: thandle;
begin
WindHandle:=FindWindow('Shell_TrayWnd', nil);
ShowWindow(WindHandle, SW_HIDE);
//或者ShowWindow(FindWindow('Shell_TrayWnd', nil), SW_HIDE);
end;

//显示任务栏
var
windhandle: thandle;
begin
WindHandle:=FindWindow('Shell_TrayWnd', nil);
ShowWindow(WindHandle, SW_SHOW);
//或者ShowWindow(FindWindow('Shell_TrayWnd', nil), SW_SHOW);
end;

//使Ctrl+Alt+Del等组合键失效(win9x only)
var
temp: Integer;
begin
SystemParametersInfo(Spi_screensaverrunning,1,@temp,0);
end;

//恢复Ctrl+Alt+Del等组合键(win9x only)
var
temp: Integer;
begin
SystemParametersInfo(Spi_screensaverrunning,0,@temp,0);
end;

//发送电子邮件
ShellExecute(0,nil,PChar('mailto:1@1.com'),nil,nil,SW_SHOWNORMAL);
//打开网页
ShellExecute(0,nil,PChar('http://www.msn.com'),nil,nil,SW_MAXIMIZE);
//窗体透明,在Form.Create事件中加入这两句
frmMain.Brush.Style:=bsClear;
frmMain.BorderStyle:=BsNone;
我是大菜鸟,献丑了。
 
阿高很值得学习
学习,学习
 
接受答案了.
 
后退
顶部