找回密码
 加入
搜索
查看: 4369|回复: 20

pusofalse 大大,请教下!

[复制链接]
发表于 2009-9-28 22:22:43 | 显示全部楼层 |阅读模式
_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 | 显示全部楼层
专心看书,要考试了吧!还问。。。
发表于 2009-9-28 22:31:30 | 显示全部楼层
KN007还在读书?读什么呢?
 楼主| 发表于 2009-9-28 22:44:56 | 显示全部楼层
读高三
 楼主| 发表于 2009-9-28 22:45:26 | 显示全部楼层
专心看书,要考试了吧!还问。。。
水木子 发表于 2009-9-28 22:26

我即喜欢读书,又喜欢电脑。。。
发表于 2009-9-28 22:52:12 | 显示全部楼层
我读书那时要是有现在的条件又好了!俺高三毕业就去学的电脑,现在工作已6年了……
加油!争取考进清华北大
 楼主| 发表于 2009-9-28 22:58:04 | 显示全部楼层
怎么不是北大清华?!
多谢吉言了
 楼主| 发表于 2009-9-28 22:58:27 | 显示全部楼层
工作!?
请问下,您是做什么的?
发表于 2009-9-29 08:48:09 | 显示全部楼层
做网吧维护
发表于 2009-9-29 08:51:12 | 显示全部楼层
好好学吧 将来有极大的可能性和群里的大多数人一样做没有前途的网管
发表于 2009-9-29 10:04:38 | 显示全部楼层
帖子标题有些问题。
_RaiseToSystem函数是提升到系统级权限的,把它放在你的代码头部,可以使你的程序以系统级权限运行。
在我这里测试毫无问题,只是双击程序时,会在托盘中显示两次程序图标,这不是BUG,代码也没有问题,因为_RaiseToSystem就是这样工作的,LocalSecurityAuthority.au3只能创建系统级进程,而不能直接把运行中的普通用户进程转为系统级。如果你那里测试不行的话,把Exit(_HeapFree($pUserLogged) or _HeapFree($pUserThread))那句改为如下:
_HeapFree($pUserLogged)
_HeapFree($pUserThread)
Exit
 楼主| 发表于 2009-9-29 12:17:40 | 显示全部楼层
还是不正常
 楼主| 发表于 2009-9-29 12:20:51 | 显示全部楼层
上附件!
请大大帮帮忙,我对这玩意挺感兴趣的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2009-9-29 12:39:23 | 显示全部楼层
我这里测试一切OK,你那里出现什么错误,会连续创建无数个1.exe?
 楼主| 发表于 2009-9-29 13:23:59 | 显示全部楼层
运行1.exe无反应,CPU双核,一核心100%,右下角的图标时隐时现,进程一会1个,一会两个,都是1秒钟的事
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-6-1 16:31 , Processed in 0.091604 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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