请问怎么获取AU3编译的文件的关联文件目录及文件名
本帖最后由 drunk 于 2009-11-29 01:20 编辑如题
好比我的关联文件是@Desktopdir的test.try
执行的应用文件是F:/的workfile.exe
我在关联文件的打开选项用workfile.exe写入数据到test.try
但问题是怎么获取那个关联文件的文件路径及文件名呢.
路径可以用@workingdir表示,但文件名怎么表示呢.. 在线等ing...:face (32): 没搞懂LZ的意思。是不是就是要关联 *.try ,双击它可以调用 workfile.exe 打开?
那样需要写注册表 不是,我也表达不好,你看我我的源代码吧。#Include <Misc.au3>
#Include <File.au3>
#Include <Array.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <WindowsConstants.au3>
Dim $PassWord , $PassWord2 , $DimPas , $DimPas2
Dim $fCount = ["0","1","2","3","4","5","6","7","8","9"]
If $CmdLine <> 0 Then
If $CmdLine = "/adds" Then
$GuiAS = GUICreate("请输入密码",520,270,-1,-1,$WS_POPUP)
GUISetState(@SW_SHOW)
$Group1 = GUICtrlCreateGroup("",5,20,510,240)
$Group2 = GUICtrlCreateGroup("",500,0,16,21)
$Group3 = GUICtrlCreateGroup("",482,0,16,21)
$Lable1 = GUICtrlCreateLabel("×",502,7,12,12)
$Lable2 = GUICtrlCreateLabel("——",484,7,12,12)
$Lable3 = GUICtrlCreateLabel("Drunk文档加密程序",9,8,105,13)
$Lable4 = GUICtrlCreateLabel("请输入密码:",110,60,80,13)
$Lable5 = GUICtrlCreateLabel("请确认密码:",110,130,80,13)
$Input1 = GUICtrlCreateInput("",110,80,300,20,$ES_PASSWORD)
$Input2 = GUICtrlCreateInput("",110,150,300,20,$ES_PASSWORD)
$Button1 = GUICtrlCreateButton("确定",110,200,85,20,$BS_CENTER)
$Button2 = GUICtrlCreateButton("取消",323,200,85,20,$BS_CENTER)
GUISetBkColor(0xF5F5F5,$GuiAS)
While 1
$msg = GUIGetMsg($GuiAS)
$Cur = GUIGetCursorInfo($GuiAS)
Select
Case $msg = $gui_event_close
Exit
Case $msg = $Button1
adds()
Case $msg = $Button2
Exit
Case $Cur = $Lable1
GUICtrlSetCursor($Lable1,0)
If $Cur = 1 Then Exit
Case $Cur = $Lable2
GUICtrlSetCursor($Lable2,0)
If $Cur = 1 Then GUISetState(@SW_MINIMIZE,$GuiAS)
Case $Cur <> $Lable1
If $Cur = 1 Then
If WinActive("请输入密码") Then
Dim $PosDiff
$MousePos = MouseGetPos()
$WinPos = WinGetPos($GuiAS, "")
$PosDiff = $WinPos - $MousePos
$PosDiff = $WinPos - $MousePos
While _IsPressed("02", DllOpen("user32.dll"))
$MousePos = MouseGetPos()
WinMove($GuiAS, "", $MousePos + $PosDiff, $MousePos + $PosDiff)
WEnd
EndIf
EndIf
EndSelect
WEnd
EndIf
EndIf
Func adds()
$PassWord = GUICtrlRead($Input1)
$PassWord2 = GUICtrlRead($Input2)
If $PassWord <> $PassWord2 Then
MsgBox(16,"错误!","两次密码输入不一致,请重新输入!",5,$GuiAS)
GUICtrlSetData($Input1,"")
GUICtrlSetData($Input2,"")
Else
For $i = 0 To 9
$DimPas = Random(1,31,1)
$DimPas2[$i] = ChrW($DimPas)
Next
$DimPass = _ArrayToString($DimPas2,"")
_FileWriteToLine(@WorkingDir&"\test.drunk",1,$DimPass)
EndIf
EndFunc我是要获取@WorkingDir&"\test.drunk"的完整路径。我这里是测试效果才指定到文件,而如果我换个“.drunk”的文件的话写入数据还是到这同一个文件了,我的意思是将上述指定文件换成变量。而我不会表示那个变量。至于关联文件我已经手动设置关联了 就像au3的源代码编译成exe一样
我随便点一个test.au3右键,选择编译那么就会编译当前的test.au3而不会执行到autoit.exe本身或者其他文件 我也不知道我表达清楚没
我再解释下
从我上面的代码,那么@ScriptFullPath是桌面的addstxt.au3而不是我需要写入数据的文件test.drunk
而我需要的是获取test.drunk文件完整路径的变量。
我已经添加了".drunk"关联到addstxt.au3.我是要在test.drunk上面右击选择addstxt.au3写入数据 就像au3的源代码编译成exe一样
我随便点一个test.au3右键,选择编译那么就会编译当前的test.au3而不会执行 ...
drunk 发表于 2009-11-28 13:59 http://www.autoitx.com/images/common/back.gif
"就像au3的源代码编译成exe一样'=======那就是写注册表,用%1 代表文件完整路径 那请问下怎么写注册表啊:face (32): 我找到了你前面发的写注册表的
通过写注册表实现~
afan 发表于 2009-9-5 22:57 http://www.autoitx.com/images/common/back.gif
请注意我上面发的代码的第78行
那个"test.drunk"其实应该是个宏变量,但我不知道怎么表示
那个红变量要表示我鼠标点击的程序而不是执行程序".exe" 我找到了你前面发的写注册表的
请注意我上面发的代码的第78行
那个"test.drunk"其实应该是个宏变量,但 ...
drunk 发表于 2009-11-28 14:40 http://www.autoitx.com/images/common/back.gif
我怎么越看越晕。。。 你到底是想如何操作什么呢? 比如:在桌面选择一个文件,右键选择xxx... 我也晕了..
我已经关联了..
我需要的不是关联,而是获取一个右键点的那个文件的完整路径及文件名啊..
AUtoit的帮助里只有执行文件工作目录的宏变量
而我需要的是关联文件目录的完整路径及文件名 寒冷的冬天,冻了一天了。Who can help me:face (30): 郁闷啊,哪位知道的高手帮帮忙啊。。。我搜来搜去在百度搜到自己的问题了 在Google搜索关键词“获取关联文件名”,此问题地址排第一:face (32): 回复 13# drunk
搞笑啊~ 呵呵~
看看是不是这个意思~
页:
[1]
2