如何得到当前程序运行所在盘符
本帖最后由 blackeyes 于 2013-11-13 00:55 编辑新手第一个问题啊,哈哈,望高手给予指点,谢谢了
在本论坛搜索了一下其它的帖子,看得有点迷糊了,我具体说一下我的问题
我编译了一个程序,运行此程序,此程序我放在光盘上,但因为每台电脑分区不同,所以每台电脑的光盘盘符是不一样的,此程序参数里需要具体指定当前光驱盘符(不能用相对路径),用哪个函数可以得到当前程序所在的盘符,如果我在I:盘上运行的此程序ABC.EXE,如何得到当前光驱“I:”盘符啊
因为此程序里要调用别的程序,调用时还要带参数,而且此参数不能用相对路径,例如 TEST1.EXE GET="\PATH\ABC.INI" 这样的相对路径就不行,必须是绝对路径,例如:TEST1.EXE GET="I:\PATH\\ABC.INI"
_WinAPI_GetProcessFileName([$PID]),这个函数可以吗?具体如何调用?
像下面这样?
$path=_WinAPI_GetProcessFileName(“ABC.EXE”)
这样能得到ABC.EXE当前所在盘符吗? 找到答案了,用下面函数
$Pid = ProcessExists("abc.exe")
$ProDir = _GetDir(_WinAPI_GetProcessFileName($Pid))
Func _GetDir($PathData, $Flag = 1)
$var = StringSplit($PathData, "\")
If Not @error Then
$FileName = $var ;文件名
$FileDir = $var ;文件所在目录名
$FileFullPath = StringTrimRight($PathData, StringLen($FileName));文件全目录
Else
SetError(-1)
Return -1 ;路径错误
EndIf
Switch $Flag
Case 1
Return $FileFullPath ;返回全部目录,不包括文件名
Case 2
Return $FileName ;返回文件名
Case 3
Return $FileDir ;返回父母目录一个目录的名字
EndSwitch ;==>_GetDir
EndFunc 回复 2# blackeyes
楼主,AU3内置很多“宏”,比如:@ScriptDir
查看下帮助文档,你会有更多收获。
建议新上手的朋友,有事没事都可以多翻看下帮助。 正则学的烂,献丑下
$s= StringRegExp(@ScriptFullPath,'.\:',1)
MsgBox(0,'',$s) MsgBox(0,0,StringLeft(@ScriptDir,1)) 这个就可以了。获取到的是C
如果要C:\就是
MsgBox(0,0,StringLeft(@ScriptDir,3))
页:
[1]