windows的很多lnk文件(也就是快捷方式)都是带有参数的,但是自己并不真正了解,不知道有谁知道?自己通过实践摸索出一些,希望能给大家带来帮助:
/play—在打开连接后自动运行媒体文件
"%1" —打开连接后自动出现文件选取框选择文件
/Play "%L" —打开winamp后自动出现List选择框选择文件播放列表
“lnk”是WINDOWS系统默认的快捷方式的扩展名,如果“文件夹选项”下设置为“隐藏已知文件类型的扩展名”,正常情况下“lnk”是不显示的。你的快捷方式的扩展名显现出来,证明WINDOWS设置被中断,快捷方式为不可识别信息。
修复方法
(1)点击“开始”→“运行”,键入“cmd”,进入命令提示符状态,用键盘敲入assoclnk=lnkfile(中间无空格),按回车即可。
(2)点击“开始”→“运行”,键入“regedit”,进入注册表,搜索“HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\”下的“lnk”键,修改其值为“lnkfile”,保存即可。
两种办法本质一样,如果你不懂注册表建议采用第一种方法
______________________________________
WIN7系统电脑除了计算机,网络,回收站以外的图标都变成后缀为lnk的文件了,也就是打开快捷方式 的时候用别的程序打开后所有快捷方式都变化的情况。
步骤1:Windows vista\Windows 7 *** 作系统修复方法1、首先 win开始键+r 2、打开运行程序 3、输入: regedit 4、找到: 计算机\HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\WINDOWS\currentversion\Explorer\FileExts\lnk会发现有openwithlist 和 openwithprogids 两项,如果有其他的选项将其删除5、再将openwithlist 内的除默认以外的所有键值都删除6、将openwithprogids内的除默认和lnkfile以外的所有键值都删除7、保存退出即可。
如何通过lnk文件获取该文件的执行路径和程序
function LinkFileInfo(const lnkFileName:string;var info:LINK_FILE_INFO;const bSet:boolean):boolean;
var
hr:hresult;
psl:IShelllink;
wfd:win32_find_data;
ppf:IPersistFile;
lpw:pwidechar;
buf:pwidechar;
begin
result:=false;
getmem(buf,MAX_PATH);
try
if SUCCEEDED(CoInitialize(nil)) then
if (succeeded(cocreateinstance(clsid_shelllink,nil,clsctx_inproc_server,IID_IShellLinkA,psl))) then
begin
hr:=pslQueryInterface(iPersistFile,ppf);
if succeeded(hr) then
begin
lpw:=stringtowidechar(lnkfilename,buf,MAX_PATH);
hr := ppfLoad(lpw, STGM_READ);
if succeeded(hr) then
begin
hr := pslResolve(0, SLR_NO_UI);
if succeeded(hr) then
begin
if bSet then
begin
pslSetArguments(infoArguments);
pslSetDescription(infoDescription);
pslSetHotkey(infoHotKey);
pslSetIconLocation(infoIconLocation,infoIconIndex);
pslSetIDList(infoItemIDList);
pslSetPath(infoFileName);
pslSetShowCmd(infoShowState);
pslSetRelativePath(infoRelativePath,0);
pslSetWorkingDirectory(infoWorkDirectory);
if succeeded(pslResolve(0,SLR_UPDATE)) then
result:=true;
end
else
begin
pslGetPath(infoFileName,MAX_PATH, wfd,SLGP_SHORTPATH );
pslGetIconLocation(infoIconLocation,MAX_PATH,infoIconIndex);
pslGetWorkingDirectory(infoWorkDirectory,MAX_PATH);
pslGetDescription(infoDescription,CCH_MAXNAME);
pslGetArguments(infoArguments,MAX_PATH);
pslGetHotkey(infoHotKey);
pslGetIDList(infoItemIDList);
pslGetShowCmd(infoShowState);
result:=true;
end;
end;
end;
end;
end;
finally
freemem(buf);
end;
end;
//调用
showmessage(\'FileName:\'+infofilename+#13+\'Description:\'+infoDescription+#13+\'IconFilename:\'+infoIconLocation+\',\'+inttostr(infoIconIndex)+
#13+\'WordDir:\'+infoWorkDirectory+#13+\'Arguments:\'+infoArguments+#13+\'ShorCuts:\'+shortcuttotext(s));
infoWorkDirectory:=\'D:\\Borland\\Delphi5\\projects\';
linkfileinfo(opendialog1filename,info,true);
end;
end;
==============================================
function GetLinkFileName(sLinkFileName: string; var sTargetFileName: string): boolean;
var
psl: IShellLink;
ppf: IPersistFile;
hres, nLen: integer;
pfd: TWin32FindData;
pTargetFile: PChar;
pwLinkFileName: PWideChar;
begin
Result := false;
if SUCCEEDED(CoInitialize(nil)) then
begin
CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_INPROC_SERVER, IID_IShellLinkA, psl);
if (SUCCEEDED(hres)) then
begin
hres := pslQueryInterface(IID_IPersistFile, ppf);
if (SUCCEEDED(hres)) then
begin
nLen := MultiByteToWideChar(CP_ACP, 0, PChar(sLinkFileName), -1, pwLinkFileName, 0);
GetMem(pwLinkFileName, nLen);
ZeroMemory(pwLinkFileName, nLen);
MultiByteToWideChar(CP_ACP, 0, PChar(sLinkFileName), -1, pwLinkFileName, nLen);
ppfLoad(pwLinkFileName, STGM_READ);
GetMem(pTargetFile, MAX_PATH);
ZeroMemory(pTargetFile, MAX_PATH);
hres := pslGetPath(pTargetFile, MAX_PATH, pfd, SLGP_UNCPRIORITY );
if (SUCCEEDED(hres)) then
begin
sTargetFileName := StrPas(pTargetFile);
Result := true;
end;
FreeMem(pTargetFile);
FreeMem(pwLinkFileName);
end;
end;
end;
end;
药学专业常用网址11 医药法规 >
以上就是关于为什么软件都打不开了后面还有lnk全部的内容,包括:为什么软件都打不开了后面还有lnk、求助相关新药的毒理、药理、临床等专业网站、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)