COM创建快捷方式易语言源码

COM创建快捷方式易语言源码

.版本 2 .子程序 创建快捷方式_, 逻辑型, 公开 .参数 快捷方式文件名, 文本型, , 如果文件名不包含后缀,将自动加上“.lnk”后缀名。 .参数 指向文件路径, 文本型, , 本参数提供快捷方式所指向文件的全路径名。 .参数 备注信息, 文本型, 可空, 本参数提供对应此快捷方式的描述文本信息,如果被省略,默认为空文本。 .参数 命令行文本, 文本型, 可空, 本参数提供启动快捷方式指向文件时附加的命令行文本,如果被省略,默认为空文本。 .参数 工作目录, 文本型, 可空, 本参数提供启动快捷方式指向文件时所需预置的工作目录,如果被省略,默认为空文本。 .局部变量 ppv1, 整数型 .局部变量 ppv2, 整数型 .局部变量 pwStr, 字节集 .局部变量 nRet, 整数型 .局部变量 sFileName, 文本型 .局部变量 ppid, 整数型 .局部变量 ShowCmd, 整数型 CoInitialize (0) CoCreateInstance ({ 1, 20, 2, 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 70 }, 0, #CLSCTX_INPROC_SERVER, { 238, 20, 2, 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 70 }, ppv1) .如果真 (ppv1 ≠ 0) QueryInterface (ppv1, 取变量数据地址_字节集 ({ 11, 1, 0, 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 70 }), ppv2) .如果真 (ppv2 ≠ 0) .如果真 (是否为空 (命令行文本) = 假) SetArguments (ppv1, 取变量数据地址_文本型 (命令行文本)) .如果真结束 .如果真 (是否为空 (备注信息) = 假) SetDescription (ppv1, 取变量数据地址_文本型 (备注信息)) .如果真结束 .如果真 (是否为空 (工作目录) = 假) SetWorkingDirectory (ppv1, 取变量数据地址_文本型 (工作目录)) .如果真结束 SetPath (ppv1, 取变量数据地址_文本型 (指向文件路径)) sFileName = 快捷方式文件名 .如果 (lstrlen (sFileName) > 4) .如果真 (lstrcmpi (取变量数据地址_文本型 (sFileName) + lstrlen (sFileName) - 4, 取变量数据地址_文本型 (“.lnk”)) ≠ 0) sFileName = sFileName + “.lnk” .如果真结束 .否则 sFileName = sFileName + “.lnk” .如果结束 pwStr = Ansi转Unicode (sFileName) nRet = Save (ppv2, 取变量数据地址_字节集 (pwStr), 真) Release (ppv2) .如果真结束 Release (ppv1) .如果真结束 CoUninitialize () 返回 (nRet = 0) .子程序 查询快捷方式_, 文本型, 公开 .参数 快捷方式文件名, 文本型, , 如果文件名不包含后缀,将自动加上“.lnk”后缀名。 .局部变量 ppv1, 整数型 .局部变量 ppv2, 整数型 .局部变量 nRet, 整数型 .局部变量 pwStr, 字节集 .局部变量 sRet, 文本型 .局部变量 pFile, 整数型 .局部变量 sFileName, 文本型 CoInitialize (0) CoCreateInstance ({ 1, 20, 2, 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 70 }, 0, #CLSCTX_INPROC_SERVER, { 238, 20, 2, 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 70 }, ppv1) .如果真 (ppv1 ≠ 0) QueryInterface (ppv1, 取变量数据地址_字节集 ({ 11, 1, 0, 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 70 }), ppv2) .如果真 (ppv2 ≠ 0) sFileName = 快捷方式文件名 .如果 (lstrlen (sFileName) > 4) .如果真 (lstrcmpi (取变量数据地址_文本型 (sFileName) + lstrlen (sFileName) - 4, 取变量数据地址_文本型 (“.lnk”)) ≠ 0) sFileName = sFileName + “.lnk” .如果真结束 .否则 sFileName = sFileName + “.lnk” .如果结束 pwStr = Ansi转Unicode (sFileName) Load (ppv2, 取变量数据地址_字节集 (pwStr), 0) pFile = LocalAlloc (64, 260) GetPath (ppv1, pFile, 260, 0, 0) sRet = 指针到文本 (pFile) LocalFree (pFile) Release (ppv2) .如果真结束 Release (ppv1) .如果真结束 CoUninitialize () 返回 (sRet)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注