主题:[原创]读取.lnk文件指向的程序目标
declare function lnk$(f$)
s$=command$
's$="*.lnk"
s$=ltrim$(rtrim$(s$))
if right$(ucase$(s$),4)<>".LNK"then system
s$=dir$(s$)
'do until s$=""
if s$<>""then print lnk$(s$)
's$=dir$
'loop
system
function lnk$(f$)
open f$ for binary as #1
a$=input$(16380,1)
close #1
if len(a$)=0 then exit function
i=instr(a$,":\")
if i=0 then
i2=instr(a$,":"+chr$(0)+"\")-2
if i2>0 then
c$=mid$(a$,i2)
i3=instr(c$,chr$(0)+chr$(0))
c$=left$(c$,i3)
for j=1 to len(c$)
d$=mid$(c$,j,1)
if d$<>chr$(0)then b$=b$+d$
next
else
i=instr(a$,"\\")
i=instr(i+2,a$,"\\")
i=instr(i+2,a$,"\\")
b$=mid$(a$,i)
i2=instr(b$,chr$(13))
b$=left$(b$,i2-1)
for i=len(b$)to 1 step-1
if mid$(b$,i,1)=chr$(0)then b$=left$(b$,i-1)else exit for
next
for i=1 to len(b$)
if mid$(b$,i,1)=chr$(0)then mid$(b$,i,1)="\"
next
end if
else
i2=instr(i+1,a$,":\")-1
if i2>0 then b$=mid$(a$,i2)else b$=mid$(a$,i-1)
b$=left$(b$,instr(b$,chr$(0))-1)
b$=ltrim$(rtrim$(b$))
do while right$(b$,1)=chr$(0)
b$=left$(b$,len(b$)-1)
loop
end if
lnk$=b$
end function
我没有研究过官方关于快捷方式的说明文档,因为对鸡肠的理解能力有限,
只是按照ASCII码粗浅的试了一下,其它我还没见到的例外情况不包括在内.
有见过的提示一下,也可以完善一下.
s$=command$
's$="*.lnk"
s$=ltrim$(rtrim$(s$))
if right$(ucase$(s$),4)<>".LNK"then system
s$=dir$(s$)
'do until s$=""
if s$<>""then print lnk$(s$)
's$=dir$
'loop
system
function lnk$(f$)
open f$ for binary as #1
a$=input$(16380,1)
close #1
if len(a$)=0 then exit function
i=instr(a$,":\")
if i=0 then
i2=instr(a$,":"+chr$(0)+"\")-2
if i2>0 then
c$=mid$(a$,i2)
i3=instr(c$,chr$(0)+chr$(0))
c$=left$(c$,i3)
for j=1 to len(c$)
d$=mid$(c$,j,1)
if d$<>chr$(0)then b$=b$+d$
next
else
i=instr(a$,"\\")
i=instr(i+2,a$,"\\")
i=instr(i+2,a$,"\\")
b$=mid$(a$,i)
i2=instr(b$,chr$(13))
b$=left$(b$,i2-1)
for i=len(b$)to 1 step-1
if mid$(b$,i,1)=chr$(0)then b$=left$(b$,i-1)else exit for
next
for i=1 to len(b$)
if mid$(b$,i,1)=chr$(0)then mid$(b$,i,1)="\"
next
end if
else
i2=instr(i+1,a$,":\")-1
if i2>0 then b$=mid$(a$,i2)else b$=mid$(a$,i-1)
b$=left$(b$,instr(b$,chr$(0))-1)
b$=ltrim$(rtrim$(b$))
do while right$(b$,1)=chr$(0)
b$=left$(b$,len(b$)-1)
loop
end if
lnk$=b$
end function
我没有研究过官方关于快捷方式的说明文档,因为对鸡肠的理解能力有限,
只是按照ASCII码粗浅的试了一下,其它我还没见到的例外情况不包括在内.
有见过的提示一下,也可以完善一下.