如何将xp文件信息(路径和文件名)传递给vb编写的无窗体的exe文件,谢谢用vb创建了一个无窗体的ok.exe程序用来读取xp下任意txt文件的路径,但在windows下读取文件有问题(即无法用  “点任意txt-->>点鼠标右键-->>打开方式-->>选择ok.exe文件-->>确定”的方法来运行).只能在cmd下运行“c:\ok.exe  c:\某某.txt”,  或开始菜单运行里运行:“c:\ok.exe  c:\某某.txt”,或直接将某某.txt拖到ok.exe文件上也能运行。代码如下,估计是“FileName = Command$”这句错了,如何修改实现在windows下的直接调用?谢谢 代码如下:
Sub Main()
FileName = Command$
lujing = GetTargetPath(FileName)
MsgBox (lujing)
End subFunction GetTargetPath(ByVal LinkName As String)
    On Local Error Resume Next
    Dim Obj As Object
    Set Obj = CreateObject("WScript.Shell")    Dim Shortcut As Object
    Set Shortcut = Obj.CreateShortcut(LinkName)
    GetTargetPath = Shortcut.TargetPath
    Shortcut.SaveEnd Function

解决方案 »

  1.   

    你可以把OK.EXE關聯到文本文檔的右健菜單上.
      

  2.   

    关联上后打不开啊,也不知道怎么通过cmd把文件信息给ok.exe
      

  3.   

    打开注册表 在HKEY_CLASS_ROOT下找到txtfile,然后在其shell项下面新键一个子项,子项的下面再建一个叫command的子项,然后把这个子项的默认值设为  c:\ok %1
      

  4.   

    我其实想实现快捷方式的鼠标右键查找目标目标功能,先用txt文件试试,现在cmd下的查找目标功能已经实现就是在cmd下输入  cdm> c:\ok.exe c:\out.lnk  即可打开out.lnk指向文件的所在文件夹,但还是windows调用不行,用鼠标右键——》打开方式,找到c:\ok.exe打开就出现
    “运行时错误‘5’;无效的工程调用或参数”,我估计是windows下的默认设置是只要通过打开方式打开就直接打开其指向的文件,所以虽然是对lnk文件操作但,结果是对其指向的具体文件操作,才导致这种错误,谢谢各位热心的高手,谢谢
      

  5.   

    不是我楼上说的问题,因为我将注册表里的lnkfile下的所有键都删了,加上shell——》command键并输入c:\ok %1,但仍然出现上楼说得错误提示。而且现在我用txt文件打开lnk文件时已经不是其指向文件,而是lnk文件的乱码如下:
    “L              F       覈<O襛?讼@g?探眧襛?4                     k  P郞??i⒇ +00? /C:\                   < 2 4  ??  out.txt &   锞???籜   o u t . t x t      9            -       8         o珛?    C:\out.txt   . . \ . . \ . . \ o u t . t x t  C : \ `     燲       7jun            ?聛刄F悼蔹? 晛箴2櫵?▇ [;??聛刄F悼蔹? 晛箴2櫵?▇ [;?    ”这就说明,打开文件是lnk文件本身。用ok.exe打不开的原因是信息传递问题。
      

  6.   

    ....如果你只是为了得到目标路径,不明白你为什么要shortcut.saveFunction GetTargetPath(ByVal LinkName As String)
        On Local Error Resume Next
        Dim Obj As Object
        Set Obj = CreateObject("WScript.Shell")    Dim Shortcut As Object
        Set Shortcut = Obj.CreateShortcut(LinkName)
        GetTargetPath = Shortcut.TargetPath
    End Function另外注册表是这样写的
    REM lnk.reg 文件内容
    Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\lnkfile\shell\OK\command]
    @="c:\\ok %1"
      

  7.   

    我发现了,当快捷方式在文件夹里有时就不行,而在开始菜单或快速启动菜单里就没问题,哪怕你把在文件夹里不好用的lnk文件,考到开始菜单里就好用了,行我太高兴了,感谢大家特别是
    supergreenbean超级绿豆的指导。谢谢