VC 如何创建自身快捷方式

简介: #include #include #include void main() { HRESULT hr = CoInitialize(NULL); if (SUCCEEDED(hr)) { IShellLink *pisl; hr = C...
#include <shobjidl.h>
#include <shlguid.h>
#include <shlobj.h>

void main()
{
 HRESULT hr = CoInitialize(NULL);
 
 if (SUCCEEDED(hr))
 {
  IShellLink *pisl;

  hr = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLinkA, (void**)&pisl);
  
  if (SUCCEEDED(hr))
  {
   IPersistFile* pIPF;

   char path[MAX_PATH];

   GetModuleFileName(GetModuleHandle(NULL), path, MAX_PATH);
   pisl->SetPath(path);
   hr = pisl->QueryInterface(IID_IPersistFile, (void**)&pIPF);
   
   if (SUCCEEDED(hr))
   {
    char lnk[MAX_PATH];

    SHGetSpecialFolderPath(0, lnk, CSIDL_DESKTOPDIRECTORY, 0);
    strcat(lnk, TEXT("\\"));

    WCHAR wpath[MAX_PATH] = { 0 };

    strcat(lnk, strtok(strrchr(path, '\\'), "\\"));
    strcat(lnk, ".lnk");
    MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, lnk, -1, wpath, MAX_PATH); 
    pIPF->Save(wpath, FALSE);
    pIPF->Release();
   }
   pisl->Release();
  }
  CoUninitialize();
 }
}

CoInitialize(NULL)
必须调用,并且必须成功,否则无法创建!
目录
相关文章
|
3月前
|
C++
MFC创建带窗口的DLL
MFC创建带窗口的DLL
17 0
|
6月前
02 QT - 创建QT项目(向导的方式)
02 QT - 创建QT项目(向导的方式)
47 0
|
存储 程序员 编译器
MFC——简单示例演示及通过MFC向导创建MFC项目
MFC——简单示例演示及通过MFC向导创建MFC项目
295 0
MFC——简单示例演示及通过MFC向导创建MFC项目
|
测试技术 BI 区块链
MFC——对话框的创建及使用(上)
MFC——对话框的创建及使用
965 0
MFC——对话框的创建及使用(上)
|
数据安全/隐私保护
MFC——对话框的创建及使用(下)
MFC——对话框的创建及使用
198 0
MFC——对话框的创建及使用(下)
在Dll中创建对话框并调用
1、第一步创建一“MFC AppWizard (dll)”工程,接下来选择“Regular Dll using shared MFC DLL”,点击“Finish”。 2、添加一对话框资源到工程中,从菜单中选择Insert->Resource,添加一“Dialog”选择“New”,至此对话框已添加到DLL工程中。
1147 0
|
C#
WPF 启动唯一程序(项目,exe,实例)
原文:WPF 启动唯一程序(项目,exe,实例) 描述:用户多次快速开启WPF程序的时候  只运行起来 一个 程序(exe) 其他多开的 进程 自动关闭掉 App.xaml.cs文件   1 protected override void OnStartup(Startu...
1245 0
|
Shell C# Windows
使用C#创建快捷方式
原文:使用C#创建快捷方式   在Windows中创建快捷方式很简单,直接用右键点击文件或文件夹,选择创建快捷方式即可。如果想用C#代码的方式创建,就没有那么方便了,因为.NET框架没有提供直接创建快捷方式的方法。
1286 0
|
区块链
MFC创建单文档工程(左上角名称前的mfc图标修改为其他需求图标)
资源视图——VT_Ards.rc——右键选择添加资源,选择menu,然后导入 (提前最好把ico图标放到工程文件下的res文件夹下) 图标属性ID为:IDR_MAINFRAME ...
1467 0