一秒前:
一秒后:
怎么样?文件夹变成回收站了!不信?双击进入试试,里面真的是回收站哦。神奇吧!看过本文,你不但能变文件夹为回收站,还可以将它变成各种稀奇古怪的东东!
首先要说明一下原理:在Windows资源管理器中,Desktop.ini和Folder.htt中定义了文件夹的属性,在Windows 9X下,我们可以在文件夹中建一个Desktop.ini,并在其中输入如下代码:
[.ShellClassInfo]
Clisd={645FF040-5081-101B-9F08-00AA002F954E}
这样文件夹就变成了回收站,但是在Windows XP/2003中就失效了。没关系,另有办法:我们对着文件夹按下F2,改成“×××.{645FF040-5081-101B-9F08-00AA002F954E}”(不要引号),也变形了吧?!这其实也改变了文件夹的属性,效果是一样的。通过资料知道,这其实是运用了微软的Active Desktop技术。下面我们看看如何利用编程实现它。
系统环境:Windows Server 2003 Enterprice Eidtion
开发工具:VC++ 6.0
本程序是用SDK写的,这篇文章也是给像我这样的菜菜看的,现在很多学编程的菜菜们都爱用VB之类的RAD工具或是一头钻进MFC,以至于编了N年还不知道什么是Windows消息循环,把十分平常的API函数调用(如SendMessage,FindWindows之类)奉之为“技巧”。我没有鄙视的意思,也不是说号召大家以后都这样编程,毕竟用SDK开发太慢了,我只是觉得要想在Windows编程得到较大进步,学习Win32下的SDK编程是不应该省略的,若只会Click处理事件,而不知道其中IDE到底干了什么,那就会阻碍你的进步了!
下面简略说明一下程序流程:
WinMain函数,程序的入口:
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE ,hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { if (-1 == DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, Main_Proc)) { MessageBox(NULL, "加载对话框出错!" , "", MB_OK); // MessageBox函数,弹出一个预定义消息框,第一个参数是窗体句柄,第2个参数是消息正文,第三个参数是标题,最后是消息框类型,这里是指有一个确定按钮的消息框. } return 0; } |