递归火山软件开发平台

标题: 枚举桌面图标 [打印本页]

作者: 兵三进一    时间: 2023-7-16 10:33
标题: 枚举桌面图标
本帖最后由 兵三进一 于 2024-10-5 08:32 编辑

水平有限,拒绝献丑

作者: 创世魂    时间: 2023-7-16 10:49
感谢大佬贡献
作者: 兵三进一    时间: 2023-7-16 11:01
创世魂 发表于 2023-7-16 10:49
感谢大佬贡献

老大真会开玩笑,整得俺受宠若惊了
作者: 落雪有声    时间: 2023-7-16 16:27
感谢大佬贡献
作者: guangye1    时间: 2024-1-4 23:30
我看看怎么个事
作者: 77988229    时间: 2024-8-15 21:24
1111111
111111111111111111
作者: urenai    时间: 2024-8-15 22:17
  1. #include <windows.h>
  2. #include <shlobj.h> // For SHGetDesktopFolder and related functions
  3. #include <tchar.h>
  4. #include <objbase.h> // For CoInitializeEx
  5. #include <strsafe.h>

  6. #pragma comment(lib, "shell32.lib")

  7. // Function to display the name of a file or folder
  8. void DisplayItemName(IShellFolder* pDesktopFolder, PCUIDLIST_RELATIVE pidl)
  9. {
  10.     LPWSTR pszName = nullptr;
  11.     if (SUCCEEDED(pDesktopFolder->GetDisplayNameOf(pidl, SHGDN_NORMAL, &pszName)))
  12.     {
  13.         OutputDebugStringW(pszName);
  14.         CoTaskMemFree(pszName);
  15.     }
  16. }

  17. int main()
  18. {
  19.     HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE);
  20.     if (SUCCEEDED(hr))
  21.     {
  22.         IShellFolder* pDesktopFolder = NULL;
  23.         hr = SHGetDesktopFolder(&pDesktopFolder);
  24.         if (SUCCEEDED(hr))
  25.         {
  26.             UINT cFetched = 0;
  27.             PCUIDLIST_RELATIVE pidl;
  28.             while (S_OK == (hr = pDesktopFolder->EnumObjects(NULL, 0, &pidl, 1, &cFetched)) && cFetched > 0)
  29.             {
  30.                 DisplayItemName(pDesktopFolder, pidl);
  31.                 pDesktopFolder->ExtractIcon(NULL, pidl, 0, NULL, NULL, 0, NULL, NULL);
  32.                 ILFree(pidl);
  33.                 cFetched = 0;
  34.             }

  35.             pDesktopFolder->Release();
  36.         }

  37.         CoUninitialize();
  38.     }

  39.     return 0;
  40. }
复制代码





欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4