日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

COM应用实例--获取桌面墙纸路径

發(fā)布時間:2023/12/9 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 COM应用实例--获取桌面墙纸路径 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

COM應(yīng)用實(shí)例--獲取桌面墻紙路徑:Win32控制臺程序(C++)

/*功能: 獲取桌面墻紙的路徑,并建立一個該墻紙的快捷方式保存在指定路徑說明: COM應(yīng)用實(shí)例, Win32控制臺程序 */ #include <iostream> #include <afx.h> #include <wininet.h> #include <Shlobj.h>using namespace std;CString getWallpaper() // 獲取桌面墻紙的路徑 {WCHAR wszWallpaper[MAX_PATH];CString strPath;HRESULT hr;IActiveDesktop* pIAD;hr = CoCreateInstance(CLSID_ActiveDesktop, NULL, CLSCTX_INPROC_SERVER, IID_IActiveDesktop, (void**)&pIAD);if(SUCCEEDED(hr)){hr = pIAD->GetWallpaper(wszWallpaper, MAX_PATH, 0); // 獲得桌面墻紙的路徑if(SUCCEEDED(hr)){wcout<<L"Wallpaper path is: "<<wszWallpaper<<endl;strPath = wszWallpaper;}elsecout<<"GetWallpaper() failed."<<endl;pIAD->Release();}elsecout<<"CoCreateInstance() failed."<<endl;return strPath; }bool SavetoShellLink(const CString &path) {bool ret = false;IShellLink *pISL;IPersistFile *pIPF;HRESULT hr = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void**)&pISL);if(SUCCEEDED(hr)){hr = pISL->SetPath(path); // 設(shè)置快捷方式的目標(biāo)if(SUCCEEDED(hr)){hr = pISL->QueryInterface(IID_IPersistFile, (void**)&pIPF);if(SUCCEEDED(hr)){hr = pIPF->Save(L"C:\\wallPaper.lnk", FALSE);if(SUCCEEDED(hr)) // 快捷方式創(chuàng)建成功ret = true;pIPF->Release();}}pISL->Release();}return ret; }int main() {CoInitialize(NULL); // 初始化COM庫(讓W(xué)indows加載DLLs)CString wallpaper = getWallpaper();if(wallpaper.GetLength() > 0){if(SavetoShellLink(wallpaper))cout<<"SavetoShellLink() Succeeded"<<endl;elsecout<<"SavetoShellLink() Failed"<<endl;}CoUninitialize();return 0; }

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的COM应用实例--获取桌面墙纸路径的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。