求助啊 如何用process定位并打开VB.EXE所在文件夹中的.exe文件,该文件的位置在不同电脑上是不固定的

[复制链接]
查看11 | 回复7 | 2021-1-27 05:48:42 | 显示全部楼层 |阅读模式
求助啊如何用process定位并打开VB.EXE所在文件夹中的.exe文件,该文件的位置在不同电脑上是不固定的
分 -->
回复

使用道具 举报

千问 | 2021-1-27 05:48:42 | 显示全部楼层
你可以做个窗口,让用户选择路径,然后把路径保存到文件.这是最简单的办法.
复杂一点,你就遍历磁盘,找到VB所在的文件夹,然后写入文件.下次打开,发现文件里有路径,就不再遍历了.
回复

使用道具 举报

千问 | 2021-1-27 05:48:42 | 显示全部楼层
谢谢谢谢能不能直接定位该程序位置比如以下语句:
DimFilePathAsNewSystem.IO.StreamWriter(AppDomain.CurrentDomain.BaseDirectory&"\\Fill.dat",True)
相类似的
回复

使用道具 举报

千问 | 2021-1-27 05:48:42 | 显示全部楼层
你要执行的exe文件是怎么放到客户的机器上去的?
如果是msi安装之类的,写脚本的时候写一段把这个exe复制到所有目录的脚本。
然后随便在客户机器的任何目录,你都能调用了


回复

使用道具 举报

千问 | 2021-1-27 05:48:42 | 显示全部楼层
AppDomain.CurrentDomain.BaseDirectory
你这是获取当前进程所在的工作目录,获取不了别的什么程序的所在目录的
除非你能找到正在运行的那个程序的句柄,可能还有办法
而你这个所谓的VB所在目录,VB如果根本没启动,上哪知道它在哪去.也许搜注册表是个办法,可以试试.
回复

使用道具 举报

千问 | 2021-1-27 05:48:42 | 显示全部楼层
为什么不能把这个。EXE文件直接绑定到你的项目下呢?
回复

使用道具 举报

千问 | 2021-1-27 05:48:42 | 显示全部楼层
这样的话就不需要用户去定位了,可以拿来直接用
回复

使用道具 举报

千问 | 2021-1-27 05:48:42 | 显示全部楼层
试试这个API:
SearchTreeForFile
极速搜索单个文件,极好的!
VB6代码
模块:
PublicDeclareFunctionSearchTreeForFileLib"imagehlp.dll"(ByVallpRoothPathAsString,ByVallpInputNameAsString,ByVallpOutputNameAsString)AsLong
PublicFunctionsysFileFind(ByValWhichRootPathAsString,ByValWhichFileNameAsString)AsString
DimiNullAsInteger
DimlResultAsLong
DimsBufferAsString
OnErrorGoToL_FILEFINDERROR
sBuffer=String$(1024,0)
lResult=SearchTreeForFile(WhichRootPath,WhichFileName,sBuffer)
IflResultThen
iNull=InStr(sBuffer,vbNullChar)
IfNotiNullThen
sBuffer=Left$(sBuffer,iNull-1)
EndIf
sysFileFind=sBuffer
Else
sysFileFind=""
EndIf
ExitFunction
L_FILEFINDERROR:
MsgBox"查找文件过程中遇到错误!",vbInformation,"查找文件错误"
sysFileFind=Format(Err.Number)&"-"&Err.Description
EndFunction

窗体中的调用:
PrivateSubForm_Load()
Debug.PrintNow,sysFileFind("C:\","VB.EXE")
EndSub
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行