C语言基本语法详解之文件夹变形

首先,我们看看这两个图,如图1所示。

一秒前:

一秒后:

怎么样?文件夹变成回收站了!不信?双击进入试试,里面真的是回收站哦。神奇吧!看过本文,你不但能变文件夹为回收站,还可以将它变成各种稀奇古怪的东东!

首先要说明一下原理:在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;
}

时间: 2024-09-17 03:19:46

C语言基本语法详解之文件夹变形的相关文章

C语言函数语法详解_C 语言

1.概述         在C语言中,函数是来完成子程序或者某个模块的功能.有主程序或者其他函数调用,其他函数之间可以相互调用.同一函数可以被一个或多个函数任意次调用. 注意:     a.一个C程序有一个或多个程序模块组成,每一个程序模块作为一个源程序文件.一个源文件可以为多个C程序共用.     b.程序在编译时是以源文件为单位进行编译,而不是以函数为单位进行编译.一个源文件就是一个编译单元     c.C程序的执行是从main函数开始,也是在main函数中结束整个程序     d.所有函数

Android Kotlin开发实例(Hello World!)及语法详解

Android Kotlin开发实例及语法详解 前言 Kotlin是一种在 Java虚拟机上执行的静态型别编程语言,它主要是由俄罗斯圣彼得堡的JetBrains开发团队所发展出来的编程语言.该语言有几个优势 1. 简洁 它大大减少你需要写的样板代码的数量. 2. 安全 避免空指针异常等整个类的错误. 3. 通用 构建服务器端程序.Android 应用程序或者在浏览器中运行的前端程序. 4. 互操作性 通过 100% Java 互操作性,利用 JVM 既有框架和库. 配置 在我们的AndroidS

《C语言开发从入门到精通》一第2章 C语言开发工具详解2.1 用DOS开发C程序

第2章 C语言开发工具详解 C语言开发从入门到精通 古人云:工欲善其事,必先利其器.由第1章的内容我们了解到,C语言开发工作需要使用专门的开发工具,这样才能起到事半功倍的效果.在本章的内容中,将简要介绍常用的几种C语言开发工具,详细介绍它们的安装和使用方法,为读者步入本书后面知识的学习打下基础. 本章内容 用DOS开发C程序 在Windows环境下开发C程序 在Linux下开发C程序 技术解惑 安装Visual Studio 2010的几个常见问题 有没有轻量级的.可以复制和粘贴代码的工具 Wi

DOS批处理中%~dp0等扩充变量语法详解_DOS/BAT

有时候我们看到别人使用%~dp0 ~是扩展的意思,相当于把一个相对路径转换绝对路径 %0代指批处理文件自身 %1表示批处理文件命令行接收到的第一个参数,%2表示第二个,以此类推 %~d0 是指批处理所在的盘符,其中d代表drive %~p0 是指批处理所在的目录,其中p代表path %~dp0 是批处理所在的盘符加路径 cd %~dp0 就是进入批处理所在目录了 详细解释还可参考命令 call /? DOS批处理中%~dp0表示什么意思 (注: %0 就是该 batch 文件的文件名) 这句的意

Swift的开发环境搭建以及基本语法详解_Swift

Swift环境设置在编写Swift程序之前,需要先设置好Swift开发环境.Swift提供了一个Playground平台用于学习目的,我们同样也需要设置.需要提供给 Xcode 软件的 Swift 编码在 Playground 中.如果熟悉Swift概念,那么可以使用Xcode IDE来做ISO/OS X应用程序的开发. 首先,需要在苹果开发者网站上的注册帐户(本教程假设你有开发者帐号). 如果已登录苹果网站,请访问以下链接: Download for Apple Developers 这将列出

C语言fillpoly函数详解_C 语言

C语言中,fillpoly函数的功能是画一个多边形,今天我们就来学习学习. C语言fillpoly函数:填充一个多边形 函数名:fillpoly 功  能:画并填充一个多边形 头文件:#include <graphics.h> 原  型:fillpoly(int numpoints, int far *polypoints); 参数说明:numpoints 为多边形的边数:far *polypoints 为存储各顶点坐标的数组,每两个一组表示一个顶点的 X 和 Y 坐标. 实例代码: #inc

CSS标签语法:详解选择符中的关系选择符

文章简介:CSS标签语法:详解选择符中的关系选择符. 相信大家都对CSS选择符都不陌生,选择符包含:元素选择符.关系选择符.属性选择符.伪类选择符.伪对象选择符.在众多的选择符中,可以让我们根据自己的需要更加灵活性的选择合适的选择符来对样式进行编写,达到最大的质量和效率. 今天就为大家介绍下选择符中的关系选择符,"关系"这可是一等一的大事啊,我们得理清楚,这样做事情才能更加的有效率.不然在CSS中有你受的,哈哈.关系选择符有四个类别:包含选择符.子选择符.相邻选择符.兄弟选择符.接下来

SQL SERVER存储过程语法详解

SQL SERVER存储过程语法: Create PROC [ EDURE ] procedure_name [ ; number ] [ { @parameter data_type } [ VARYING ] [ = default ] [ OUTPUT ] ] [ ,...n ] [ WITH { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ] [ FOR REPLICATION ] AS sql_statement [ ...n ]

Java8初体验(二)Stream语法详解---符合人的思维模式,数据源--》stream--&gt;干什么事(具体怎么做,就交给Stream)--》聚合

感谢同事[天锦]的投稿.投稿请联系 tengfei@ifeve.com上篇文章Java8初体验(一)lambda表达式语法比较详细的介绍了lambda表达式的方方面面,细心的读者会发现那篇文章的例子中有很多Stream的例子.这些Stream的例子可能让你产生疑惑,本文将会详细讲解Stream的使用方法(不会涉及Stream的原理,因为这个系列的文章还是一个快速学习如何使用的). 1. Stream初体验 我们先来看看Java里面是怎么定义Stream的: A sequence of eleme