kn007 发表于 2009-9-28 22:22:43

pusofalse 大大,请教下!

_RaiseToSystem这东西可以干啥呢,要啥好啊?
为什么我不能用?
一用就鸟蛋了,在没有#NoTrayIcon的情况下发现,右下角的图标总是出来,然后就不见,出来,不见。。。进程一会两个,一会一个。。。。。
只能用DO ... until 结束进程。。。

该不会源码有错吧,<LocalSecurityAuthority.au3>是最新版本

发觉是Exit(_HeapFree($pUserLogged) or _HeapFree($pUserThread))这个错误,但如果注释掉,将会有无数个进程,头大了



#include <LocalSecurityAuthority.au3>


_RaiseToSystem()


Func _RaiseToSystem()
      Local $sApp, $sArg, $hToken, $pUserThread, $pUserLogged

      $pUserLogged = _LookupAccountName(_LsaGetUserName(False))
      $hToken = _OpenProcessToken(-1)
      $pUserThread = _LookupAccountName(_GetTokenUser($hToken))
      _LsaCloseHandle($hToken)

      If _EqualSid($pUserLogged, $pUserThread) Then
                If @Compiled Then
                        $sApp = @ScriptFullPath
                        $sArg = " " & $CmdLineRaw
                Else
                        $sApp = @AutoItExe
                        $sArg = " " & FileGetShortName(@ScriptFullPath) & " " & $CmdLineRaw
                EndIf
                _CreateProcessAsSystem($sApp, $sArg, "Winlogon.exe")
                Exit(_HeapFree($pUserLogged) or _HeapFree($pUserThread))
      EndIf
      Return _HeapFree($pUserLogged) or _HeapFree($pUserThread)
EndFunc      ;==>_RaiseToSystem

水木子 发表于 2009-9-28 22:26:26

专心看书,要考试了吧!还问。。。

jycel 发表于 2009-9-28 22:31:30

KN007还在读书?读什么呢?

kn007 发表于 2009-9-28 22:44:56

读高三

kn007 发表于 2009-9-28 22:45:26

专心看书,要考试了吧!还问。。。
水木子 发表于 2009-9-28 22:26 http://www.autoitx.com/images/common/back.gif
我即喜欢读书,又喜欢电脑。。。

jycel 发表于 2009-9-28 22:52:12

我读书那时要是有现在的条件又好了!俺高三毕业就去学的电脑,现在工作已6年了……
加油!争取考进清华北大:face (33):

kn007 发表于 2009-9-28 22:58:04

怎么不是北大清华?!
多谢吉言了

kn007 发表于 2009-9-28 22:58:27

工作!?
请问下,您是做什么的?

jycel 发表于 2009-9-29 08:48:09

做网吧维护

大绯狼 发表于 2009-9-29 08:51:12

好好学吧 将来有极大的可能性和群里的大多数人一样做没有前途的网管

pusofalse 发表于 2009-9-29 10:04:38

帖子标题有些问题。
_RaiseToSystem函数是提升到系统级权限的,把它放在你的代码头部,可以使你的程序以系统级权限运行。
在我这里测试毫无问题,只是双击程序时,会在托盘中显示两次程序图标,这不是BUG,代码也没有问题,因为_RaiseToSystem就是这样工作的,LocalSecurityAuthority.au3只能创建系统级进程,而不能直接把运行中的普通用户进程转为系统级。如果你那里测试不行的话,把Exit(_HeapFree($pUserLogged) or _HeapFree($pUserThread))那句改为如下:
_HeapFree($pUserLogged)
_HeapFree($pUserThread)
Exit

kn007 发表于 2009-9-29 12:17:40

还是不正常

kn007 发表于 2009-9-29 12:20:51

上附件!
请大大帮帮忙,我对这玩意挺感兴趣的

pusofalse 发表于 2009-9-29 12:39:23

我这里测试一切OK,你那里出现什么错误,会连续创建无数个1.exe?

kn007 发表于 2009-9-29 13:23:59

运行1.exe无反应,CPU双核,一核心100%,右下角的图标时隐时现,进程一会1个,一会两个,都是1秒钟的事
页: [1] 2
查看完整版本: pusofalse 大大,请教下!