如何仅使用C ++在MAC OSX中创建桌面快捷方式。
在Linux中我可以使用.desktop文件[Desktop Entry]
Version=1.0
Name=Eclipse
Exec=/usr/local/bin/eclipse
答案 0 :(得分:1)
正如已经提到的,@ dreamlax,它是你要创造的别名;至少,当您右键单击某个项目时,这是UI提供的内容: -
如果您使用终端并创建指向桌面上某个项目的符号链接,您会看到它会创建一个类似的'别名'。因此,您可以通过调用ln function创建指向源项目的符号链接,这可能与symlink函数调用相同。
请注意,使用UI创建的别名与ln创建的别名不完全相同,正如您在链接到pkg(安装程序)文件时所看到的那样。如果你对这两个使用'file'命令。使用ln,创建的链接被标识为“xar archive - version 1”,而UI别名创建的文件是“alias:data”。
但是,就功能而言,两者都可以作为将桌面上的链接放置到另一个位置的项目的方式。
最后,在决定ln是否适合您的情况之前,请注意POSIX ln和别名之间的this distinction: -
[alias]类似于Unix符号链接,但即使目标文件移动到同一磁盘上的另一个位置也有区别
答案 1 :(得分:0)
如果您想制作别名,请查看Alias Manager reference,或者如果您定位的是10.8或更高版本,则可以改为使用CFURLCreateBookmarkData
。
事实上,您甚至可以使用POSIX symlink
来创建快捷方式。首先尝试,如果足够,请不要使用更复杂的别名管理器或CFURLCreateBookmarkData
。
这是创建书签所需的C代码(如果要从命令行编译,则需要为编译器的命令行标志指定-framework CoreFoundation
,否则将CoreFoundation框架添加到您的Xcode项目。
CFErrorRef error = NULL;
CFURLRef aliasFile = CFURLCreateWithString(NULL, CFSTR("file:///Users/msl/Desktop/Terminal%20Alias"), NULL);
CFURLRef targetFile = CFURLCreateWithString(NULL, CFSTR("file:///Applications/Utilities/Terminal.app"), NULL);
CFDataRef bookmark = CFURLCreateBookmarkData(NULL, targetFile, kCFURLBookmarkCreationSuitableForBookmarkFile, NULL, NULL, &error);
if (bookmark == NULL)
{
// something went wrong, check what "error" variable says
}
Boolean success = CFURLWriteBookmarkDataToFile(bookmark, aliasFile, kCFURLBookmarkCreationSuitableForBookmarkFile, &error);
if (!success)
{
// something went wrong, check what "error" variable says
}
// make sure to clean up
if (bookmark) CFRelease(bookmark);
if (aliasFile) CFRelease(aliasFile);
if (targetFile) CFRelease(targetFile);
答案 2 :(得分:0)
按住Shift键,将应用程序拖动到目标位置。例如:桌面。