回 帖 发 新 帖 刷新版面

主题:[原创]读取.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码粗浅的试了一下,其它我还没见到的例外情况不包括在内.
有见过的提示一下,也可以完善一下.

回复列表 (共3个回复)

沙发

顶起

板凳

看了半天觉得乱

3 楼

我的思路极其混乱

我来回复

您尚未登录,请登录后再回复。点此登录或注册