65.9K
CodeProject 正在变化。 阅读更多。
Home

创建可执行文件快捷方式的简单方法

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.77/5 (5投票s)

2008年2月19日

CPOL
viewsIcon

63877

downloadIcon

442

创建可执行文件快捷方式的简单方法。

引言

在程序中创建可执行文件的快捷方式并不容易。 William Rayer 撰写了一篇很好的文章介绍了一种方法;你可以在这里看到。 但是,对于某些人来说,该解决方案可能过于复杂。 这里有一种可以做到同样效果的简单方法。

背景

众所周知,快捷方式是一个复杂的*.lnk文件。 *.URL 具有与*.lnk相同的功能,但其内容非常简单。 例如

======================================== 
[InternetShortcut] 
URL=C:\MyFolder\Test.exe 
IconIndex=0 
IconFile=C:\MyFolder\Test.exe 
========================================

保存文件,我们就可以得到一个指向Test.exe的快捷方式。

示例程序

我们将看到如何使用代码创建快捷方式。 我们可以使用 'WritePrivateProfileString' 轻松创建*.URL文件。

#include <windows.h>
#include <stdio.h>

BOOL CreateShortcut(char *ptchExecutableFileName, char *ptchShortcutName)
{
    BOOL Res = TRUE;
    FILE *fp;
    
    if(NULL == (fp = fopen(ptchExecutableFileName, "r")))
    {
        printf("\nCan`t find executable file!\n");
        return FALSE;
    }
    fclose(fp);
    
    Res &= WritePrivateProfileString("InternetShortcut", 
               "URL", ptchExecutableFileName, ptchShortcutName);
    Res &= WritePrivateProfileString("InternetShortcut", 
               "IconIndex", "0", ptchShortcutName);
    Res &= WritePrivateProfileString("InternetShortcut", 
               "IconFile", ptchExecutableFileName, ptchShortcutName);
    
    return Res;
}


/* 
    For example: create a shortcut on desktop for e:\Test.exe 
    CreateShortcut("E:\\Test.exe", 
      "C:\\Documents and Settings\\Administrator\\Desktop\\Test.url");
//*/

现有问题

该方法可以正常创建可执行文件的快捷方式。 但我不知道如何创建指向文件夹的快捷方式。 如果有一个文件夹c:\MyFolder,我们创建以下文件

======================================== 
[InternetShortcut] 
URL=C:\MyFolder
IconIndex=0 
IconFile=C:\MyFolder 
========================================

保存它。 当你点击该文件的图标时,你可以打开该文件夹,但图标的显示不正常!

如果你知道解决此问题的方案,请分享一下。

© . All rights reserved.