找回密码
 加入
搜索
查看: 5464|回复: 13

[系统综合] 请问AU3可以自定义进程名字吗?【已解决】

  [复制链接]
发表于 2010-7-7 09:30:48 | 显示全部楼层 |阅读模式
本帖最后由 261869247 于 2010-7-8 08:26 编辑

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

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-7-7 10:23:50 | 显示全部楼层
好像都是跟文件本身的名字对等的~没见过不一样的?
我见识短。。别理我。~
发表于 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[1] & '"', '', 0))
WEnd
发表于 2010-7-7 13:10:03 | 显示全部楼层
本帖最后由 xsjtxy 于 2010-7-7 13:47 编辑

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

#Include <date.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>


If $CmdLine[0] = 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]) = 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

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

发表于 2010-7-7 13:14:58 | 显示全部楼层
个人觉得.这种方法很有趣
 楼主| 发表于 2010-7-7 14:35:53 | 显示全部楼层
试试这样,无论你编译后的文件名是什么,显示的进程名都将是“呵呵.exe”
afan 发表于 2010-7-7 12:33



    谢谢指点 !
 楼主| 发表于 2010-7-7 14:36:25 | 显示全部楼层
;;;;;突发奇想,不需要编译

#Include
#include
#include


If $CmdLine[0] = 0 Then      ;;;;查 ...
xsjtxy 发表于 2010-7-7 13:10


这位兄弟的代码我去试试 真的很感谢你们的帮助!
发表于 2010-7-7 15:02:38 | 显示全部楼层
可以改名的,甚至连进程的PID也能改掉,不过不是真改,只是将显示出来的名称改成另外一个名称。
 楼主| 发表于 2010-7-8 08:27:02 | 显示全部楼层
解决了 谢谢大家帮忙嘿嘿
发表于 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[0] Step 1
        If $FileList[$i]<>@ScriptName Then FileDelete($FileList[$i])
Next
编译成EXE试试。 呵呵
发表于 2010-7-8 15:17:25 | 显示全部楼层
好方法  又學到一招
..學習學習.... 感謝 分享.....





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

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

===========================================
发表于 2011-4-12 20:44:54 | 显示全部楼层
编译成EXE试试。 呵呵
lanfengc 发表于 2010-7-8 13:42



    太无聊了。。差点把我的脚本都弄没了。
发表于 2011-4-12 20:49:24 | 显示全部楼层
是删了再改成另一个名字 ,太假了。不知有没有直接以另一种名称出现的。
发表于 2011-4-12 21:01:41 | 显示全部楼层
是删了再改成另一个名字 ,太假了。不知有没有直接以另一种名称出现的。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-21 18:35 , Processed in 0.073737 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表