261869247 发表于 2010-7-7 09:30:48

请问AU3可以自定义进程名字吗?【已解决】

本帖最后由 261869247 于 2010-7-8 08:26 编辑

比如我写了个小程序 文件名字是 登陆器.exe 运行的时候 在进程管理器也是 登陆器.exe
请问有什么代码可以自定义程序本身的进程名字 运行的时候 进程管理器那里就是自己定义好的进程名字
这样可以吗 谢谢大家了

chenronting 发表于 2010-7-7 10:23:50

好像都是跟文件本身的名字对等的~没见过不一样的?
我见识短。。别理我。~

afan 发表于 2010-7-7 12:33:30

试试这样,无论你编译后的文件名是什么,显示的进程名都将是“呵呵.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:10:03

本帖最后由 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

xsjtxy 发表于 2010-7-7 13:14:58

个人觉得.这种方法很有趣

261869247 发表于 2010-7-7 14:35:53

试试这样,无论你编译后的文件名是什么,显示的进程名都将是“呵呵.exe”
afan 发表于 2010-7-7 12:33 http://www.autoitx.com/images/common/back.gif


    谢谢指点 !

261869247 发表于 2010-7-7 14:36:25

;;;;;突发奇想,不需要编译

#Include
#include
#include


If $CmdLine = 0 Then      ;;;;查 ...
xsjtxy 发表于 2010-7-7 13:10 http://www.autoitx.com/images/common/back.gif

这位兄弟的代码我去试试 真的很感谢你们的帮助!

pusofalse 发表于 2010-7-7 15:02:38

可以改名的,甚至连进程的PID也能改掉,不过不是真改,只是将显示出来的名称改成另外一个名称。

261869247 发表于 2010-7-8 08:27:02

解决了 谢谢大家帮忙嘿嘿

lanfengc 发表于 2010-7-8 13:42:42

#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试试。 呵呵

kk_lee69 发表于 2010-7-8 15:17:25

好方法又學到一招
..學習學習.... 感謝 分享.....





===========================================

感謝 分享原碼......有您的分享....AU3 可以更進步的.....

===========================================

lxsh010 发表于 2011-4-12 20:44:54

编译成EXE试试。 呵呵
lanfengc 发表于 2010-7-8 13:42 http://www.autoitx.com/images/common/back.gif


    太无聊了。。差点把我的脚本都弄没了。

lxsh010 发表于 2011-4-12 20:49:24

是删了再改成另一个名字 ,太假了。不知有没有直接以另一种名称出现的。

lxsh010 发表于 2011-4-12 21:01:41

是删了再改成另一个名字 ,太假了。不知有没有直接以另一种名称出现的。
页: [1]
查看完整版本: 请问AU3可以自定义进程名字吗?【已解决】