在调用CreateFile
之前,需要文件名。您当然可以创建自己的对话框:
但是幸运的是Windows已经完成了所有UI的繁重工作,并为您提供了IFileOpenDialog
common dialog:
Windows资源管理器有一个对话框,指导用户创建文件,文件夹,项目,URL等的快捷方式:
此对话框是否为“通用” 对话框-可供应用程序使用?
编辑:也提醒您:我不想调用 向导-因为向导创建了硬盘驱动器上的链接。而且我不希望它保存在硬盘上。我需要能够获取结果:
IShellLink
或IUniformResourceLocator
,或
。
我需要一个“位置选择器”用户界面。
答案 0 :(得分:1)
创建链接是否存在相同的内容?
Windows资源管理器有一个对话框,指导用户创建一个 文件,文件夹,项目,URL等的快捷方式:
是的,它是API NewLinkHereW
一个测试(VS 2015,Windows 10)=>
(在 e:\ test 中为示例创建的链接)
typedef void(WINAPI *NLH)(HWND hwnd, HINSTANCE hAppInstance, LPTSTR lpszCmdLine, int nCmdShow);
NLH NewLinkHereW;
HMODULE hDll = LoadLibrary(L"appwiz.cpl");
NewLinkHereW = (NLH)GetProcAddress(hDll, "NewLinkHereW");
WCHAR wsFolder[MAX_PATH] = L"e:\\test";
lstrcat(wsFolder, L"\\newlink.lnk");
if (NewLinkHereW)
{
HANDLE hLink = CreateFile(wsFolder, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hLink != INVALID_HANDLE_VALUE)
{
CloseHandle(hLink);
NewLinkHereW(GetDesktopWindow(), NULL, wsFolder, SW_SHOWNORMAL);
}
}