//创建快捷方式
CreateShortCut(LPCTSTR lpszShortCutName, LPCTSTR lpszCommand)
{
WCHAR sBuf[MAX_PATH] = _T("");
SHGetSpecialFolderPath(NULL, sBuf, CSIDL_PROGRAMS, FALSE);
CString sPath;
sPath.Format(_T("%s//%s.lnk"), sBuf, lpszShortCutName);
HANDLE hFile = ::CreateFile(sPath, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if(hFile == INVALID_HANDLE_VALUE)
return FALSE;
// char AppPath[MAX_PATH] = "";
ZeroMemory(sBuf, MAX_PATH);
::GetModuleFileName(NULL, sBuf, MAX_PATH);
CStringA sAppPath(sBuf);
DWORD dwPathLen = sAppPath.GetLength();
CStringA sTmp;
if(lpszCommand)
sTmp.Format("%d#/"%s/" /"%s/"", dwPathLen+2, sAppPath, CStringA(lpszCommand));
else
sTmp.Format("%d#/"%s/"", dwPathLen+2, sAppPath);
DWORD dwLen = sTmp.GetLength();
WriteFile(hFile, sTmp.GetBuffer(), dwLen, 0, 0);
CloseHandle(hFile);
return TRUE;
}