小弟刚学VB 想写一个启动软件 快捷的启动机子上的东西 呵呵 
然后有个问题 就是 我不想写绝对路径 这样我在别的地方也能直接用这个软件 例如我机子上是A.EXE在C盘 可是 在公司机子上A.EXE在D盘 这要是写绝对路径是无法启动了 我在网上搜了半天 都没有满意的结果
这是我写的 
Private Sub Command1_Click()
Shell "D:\M01\KartRider.exe", vbNormalFocus
End Sub
麻烦谁能帮忙改成 相对路径就能启动 达到通用性 谢谢 网上是搜好久了 怀疑到底行不行

解决方案 »

  1.   

    放到可执行文件同一路径下,测试过的,可以!!!Option Explicit
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    Private Const HWND_TOP = 0Private Const SW_SHOWNORMAL = 1Private Sub Form_Load()
        ShellExecute HWND_TOP, "open", "KartRider.exe", "", App.Path, SW_SHOWNORMAL
    End Sub
      

  2.   

    把生成的.exe文件拷贝过去就行
      

  3.   

    怎么知道在C还是D上?作一个设置窗口,让用户选择程序,把程序路径保存
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
      

  4.   

    楼上意思是要运行那个文件就把生成的.exe文件放在同一目录下,干脆将KartRider.exe一块打包更省事.
    Shell App.Path & "\KartRider.exe", vbNormalFocus 
      

  5.   

    2楼的 这个不行要求是完全的一个VB的应用程序放到桌面打开 不知道是那个盘下的 A.EXE文件 
    3楼 请看清楚问题 选择文件框我也会做 只要一个按钮 点击启动
      

  6.   

    还有一个方法是写磁盘探索,程序启动后先搜索KartRider.exe,找到后写一个文本文件,这样就能满足LZ的要求
      

  7.   

    那就按7楼老张的思路,搜索,查找路径后替换APP.PATH
      

  8.   

    程序无法事先知道A.EXE的实际路径,如果你在C盘和D盘都有a.exe,那你要让程序运行哪个一个呢?
    所以你必须要想办法让程序知道你到底想要运行哪个程序才行。
    如:你保存文件的路径在某一个文本文件中。
      

  9.   

    1.你那个A.EXE做个安装写入REG的工作,用VB的去READREG2.整个磁盘搜索,然后去除同名但大小或者其它标示不一致的3.估计是没了