请问AU3可以自定义进程名字吗?【已解决】
本帖最后由 261869247 于 2010-7-8 08:26 编辑比如我写了个小程序 文件名字是 登陆器.exe 运行的时候 在进程管理器也是 登陆器.exe
请问有什么代码可以自定义程序本身的进程名字 运行的时候 进程管理器那里就是自己定义好的进程名字
这样可以吗 谢谢大家了 好像都是跟文件本身的名字对等的~没见过不一样的?
我见识短。。别理我。~ 试试这样,无论你编译后的文件名是什么,显示的进程名都将是“呵呵.exe”If Not @Compiled Then Exit MsgBox(48, '注意', '请先编译成exe文件再测试')
Dim $rm = '呵呵.exe', $now = @ScriptName
If $now <> $rm Then Exit (Run(@ComSpec & ' /c ren "' & $now & '" "' & $rm & '"&start ' & FileGetShortName($rm) & ' "' & $now & '"', '', 0))
GUICreate('自定义进程名例子-afan')
GUISetState()
While 1
If GUIGetMsg() = -3 Then Exit (Run(@ComSpec & ' /c ren "' & $rm & '" "' & $CmdLine & '"', '', 0))
WEnd 本帖最后由 xsjtxy 于 2010-7-7 13:47 编辑
;;;;;突发奇想,不需要编译
#Include <date.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
If $CmdLine = 0 Then ;;;;查看程序自身启动时有没有带命令行
$t = StringReplace(StringReplace(StringReplace(_NowCalc(), ":", ""), "/", ""), " ", "");;获取当前日期时分秒,,这断应该可以用正则的,但是我不会!
$e = StringTrimLeft(@ScriptName, StringInStr(@ScriptName, ".",0,-1)-1) ;;;获取程序自身后缀名!
FileCopy(@ScriptFullPath,@ScriptDir & "\" & $t & $e) ;;;复制程序自身为当前日期时分秒的文件,后缀名与原文件相同.
ShellExecute(@ScriptDir & "\" & $t & $e,'"' & @ScriptName & '"') ;;;再次运行程序本身,并带命令行:程序自身完整名称.为防止程序名中间带空格,所以前后都加入'"'
exit ;;;;然后退出
else ;;;;如果程序自身启动时带了命令行;;
Do
sleep(10)
Until FileDelete(@ScriptDir & "\" & $CmdLine) = 1
;;;删除程序所在目录下与命令行名称相同的文件,直到删除成功.
endif
$Form1 = GUICreate(@ScriptName, 623, 449, 192, 114)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd 个人觉得.这种方法很有趣 试试这样,无论你编译后的文件名是什么,显示的进程名都将是“呵呵.exe”
afan 发表于 2010-7-7 12:33 http://www.autoitx.com/images/common/back.gif
谢谢指点 ! ;;;;;突发奇想,不需要编译
#Include
#include
#include
If $CmdLine = 0 Then ;;;;查 ...
xsjtxy 发表于 2010-7-7 13:10 http://www.autoitx.com/images/common/back.gif
这位兄弟的代码我去试试 真的很感谢你们的帮助! 可以改名的,甚至连进程的PID也能改掉,不过不是真改,只是将显示出来的名称改成另外一个名称。 解决了 谢谢大家帮忙嘿嘿 #include <file.au3>
#include <array.au3>
If @ScriptName<>"我就不叫你改名.exe" Then
FileCopy(@ScriptName,"我就不叫你改名.exe",1)
Run(@ScriptDir&"\我就不叫你改名.exe")
Exit
EndIf
Dim $FileList=_FileListToArray(@ScriptDir)
For $i=1 To $FileList Step 1
If $FileList[$i]<>@ScriptName Then FileDelete($FileList[$i])
Next
编译成EXE试试。 呵呵 好方法又學到一招
..學習學習.... 感謝 分享.....
===========================================
感謝 分享原碼......有您的分享....AU3 可以更進步的.....
=========================================== 编译成EXE试试。 呵呵
lanfengc 发表于 2010-7-8 13:42 http://www.autoitx.com/images/common/back.gif
太无聊了。。差点把我的脚本都弄没了。 是删了再改成另一个名字 ,太假了。不知有没有直接以另一种名称出现的。 是删了再改成另一个名字 ,太假了。不知有没有直接以另一种名称出现的。
页:
[1]