• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 在Windows桌面上放置圖標

    發表于:2007-07-14來源:作者:點擊數: 標簽:
    作者 聞怡洋 文章原始出處 http://www.vchelp.net/source/submit/desktop_sc.htm 正文 在 Windows 桌面上放置圖標 聞怡洋 http://www.vchelp.net 下載示范代碼20K http://www.vchelp.net/source/submit/desktop_sc.zip IE在安裝后在桌面添加了一個圖標,這主
    作者 聞怡洋
    文章原始出處 http://www.vchelp.net/source/submit/desktop_sc.htm

    正文
    Windows桌面上放置圖標
    聞怡洋 http://www.vchelp.net
    下載示范代碼20K http://www.vchelp.net/source/submit/desktop_sc.zip

    IE在安裝后在桌面添加了一個圖標,這主要是通過修改注冊表達到的這個目的。

    下面的代碼可以幫助你在桌面添加圖標和刪除圖標,圖標添加后無法使用刪除功能直接刪除,而必須修改注冊表進行刪除。(在程序中使用了CRegKey這個類,在使用這個類時需要包含頭文件:atlbase.h)

    //首先需要提供四個參數
        m_szGUID ="{FA89ADA1-936E-4905-8216-70CA2A6C1B5A}"; //GUID
        //請利用Visual Studio\Common安裝目錄下\Tools\GUIDGEN.EXE程序自己創建一個GUID
        m_szCmd = "cmd /K dir c:\\"; //設置命令
        m_szIconPath = "d:\\wenyy\\a.ico"; //圖標文件
        m_szDName = "我的圖標"; //設置顯示的名稱

    void CDesktop_scDlg::OnCreate()
    {//創建圖標
        UpdateData(TRUE);
        //
        char szTemp[256];

        CRegKey m_kdsktp;
        //創建GUID入口
        sprintf(szTemp,"CLSID\\%s",m_szGUID);
        m_kdsktp.Create(HKEY_CLASSES_ROOT,szTemp);
        m_kdsktp.SetValue(m_szDName);
        m_kdsktp.Close();

        //設置圖標
        sprintf(szTemp,"CLSID\\%s\\DefaultIcon",m_szGUID);
        m_kdsktp.Create(HKEY_CLASSES_ROOT,szTemp);
        m_kdsktp.SetValue(m_szIconPath);
        m_kdsktp.Close();

        //設置雙擊圖標時的打開命令
        sprintf(szTemp,"CLSID\\%s\\Shell\\Open\\Command",m_szGUID);
        m_kdsktp.Create(HKEY_CLASSES_ROOT,szTemp );
        m_kdsktp.SetValue(m_szCmd);
        m_kdsktp.Close();

        //設置菜單屬性
        sprintf(szTemp,"CLSID\\%s\\ShellFolder",m_szGUID);
        BYTE bValue[4];
        m_kdsktp.Create(HKEY_CLASSES_ROOT,szTemp);
        bValue[0]=0x0; //"00.00.00.00"
        bValue[1]=0x0;
        bValue[2]=0x0;
        bValue[3]=0x0;
        RegSetValueEx(m_kdsktp.m_hKey,"Attributes",0,REG_BINARY,bValue,4);
        m_kdsktp.Close();

        //在桌面放置圖標
        sprintf(szTemp,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Desktop\\NameSpace\\%s",m_szGUID);
        m_kdsktp.Create(HKEY_LOCAL_MACHINE,szTemp);
        m_kdsktp.SetValue(m_szDName);
        m_kdsktp.Close();

        //通知桌面更新
        SHChangeNotify(SHCNE_ASSOCCHANGED,SHCNF_FLUSHNOWAIT,0, 0);
    }

    void CDesktop_scDlg::OnDel()
    {//刪除圖標
        UpdateData(TRUE);
        //
        char szTemp[256];

        CRegKey m_kdsktp;
        //刪除GUID入口
        sprintf(szTemp,"CLSID");
        m_kdsktp.Open(HKEY_CLASSES_ROOT,szTemp);
        m_kdsktp.DeleteSubKey(m_szGUID);
        m_kdsktp.Close();

        //刪除桌面圖標
        sprintf(szTemp,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Desktop\\NameSpace");
        m_kdsktp.Open(HKEY_LOCAL_MACHINE,szTemp);
        m_kdsktp.DeleteSubKey(m_szGUID);
        m_kdsktp.Close();

        //通知桌面更新
        SHChangeNotify(SHCNE_ASSOCCHANGED,SHCNF_FLUSHNOWAIT,0, 0);
    }

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>