C語言基本語法詳解:文件夾變形大法

字號:

各位觀眾,今天我們講的是文件夾的變形大法。
    首先,我們看看這兩個圖,如圖1所示。
    一秒前:
    一秒后:
    怎么樣?文件夾變成回收站了!不信?雙擊進(jìn)入試試,里面真的是回收站哦。神奇吧!看過本文,你不但能變文件夾為回收站,還可以將它變成各種稀奇古怪的東東!
    首先要說明一下原理:在Windows資源管理器中,Desktop.ini和Folder.htt中定義了文件夾的屬性,在Windows 9X下,我們可以在文件夾中建一個Desktop.ini,并在其中輸入如下代碼:
    [.ShellClassInfo]
    Clisd={645FF040-5081-101B-9F08-00AA002F954E}
    這樣文件夾就變成了回收站,但是在Windows XP/2003中就失效了。沒關(guān)系,另有辦法:我們對著文件夾按下F2,改成“×××.{645FF040-5081-101B-9F08-00AA002F954E}”(不要引號),也變形了吧?!這其實也改變了文件夾的屬性,效果是一樣的。通過資料知道,這其實是運用了微軟的Active Desktop技術(shù)。下面我們看看如何利用編程實現(xiàn)它。
    系統(tǒng)環(huán)境:Windows Server 2003 Enterprice Eidtion
    開發(fā)工具:VC++ 6.0
    本程序是用SDK寫的,這篇文章也是給像我這樣的菜菜看的,現(xiàn)在很多學(xué)編程的菜菜們都愛用VB之類的RAD工具或是一頭鉆進(jìn)MFC,以至于編了N年還不知道什么是Windows消息循環(huán),把十分平常的API函數(shù)調(diào)用(如SendMessage,F(xiàn)indWindows之類)奉之為“技巧”。我沒有鄙視的意思,也不是說號召大家以后都這樣編程,畢竟用SDK開發(fā)太慢了,我只是覺得要想在Windows編程得到較大進(jìn)步,學(xué)習(xí)Win32下的SDK編程是不應(yīng)該省略的,若只會Click處理事件,而不知道其中IDE到底干了什么,那就會阻礙你的進(jìn)步了!
    下面簡略說明一下程序流程:
    WinMain函數(shù),程序的入口:
    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函數(shù),彈出一個預(yù)定義消息框,第一個參數(shù)是窗體句柄,第2個參數(shù)是消息正文,第三個參數(shù)是標(biāo)題,最后是消息框類型,這里是指有一個確定按鈕的消息框.
    }
    return 0;
    }