有人懂得使用RUNFromMemory函数么
论坛上的那个RUNFromMemory函数 在调试状态下 返回错误6编译后返回错误7后来在au3官网查到一个这个函数的改进版本
在函数之前加入了一个变量$baseexe
global $baseexe
$baseexe = @WindowsDir&"\explorer.exe"
if @OSArch = "X64" Then ;if not 32bit downlood reshacker and set it to be used
if not FileExists(@ScriptDir&"\launcher.exe") Then
InetGet("http://panics.co.cc/downloads/reshacker.exe", @ScriptDir&"\launcher.exe")
EndIf
$baseexe = @ScriptDir&"\launcher.exe"
Else
$baseexe = @WindowsDir&"\explorer.exe";else use explorer.
EndIf
这个变量是替换原RUNFromMemory函数中的;Create new process段中原@AutoItExe
这个变量决定了内存中运行的程序的进程名
使用改进后的UDF后程序可以正常在内存中运行 但是 32位系统运行,$baseexe的值为 @WindowsDir&"\explorer.exe" 程序退出后 桌面会丢失因为explore.exe进程会被关闭
测试了一下在使用64位下的那个reshacker.exe(au3目录里的),居然是可以运行的 而且关闭之后没有其他副作用。又尝试了一下其他任意的一个exe作为这个变量baseexe的路径不能正常启动返回错误代码
有人能给讲讲吗? 我测试都没有成功,你是怎么调用那个函数的,给个函子,
$hFile=FileOpen("2.exe",16)
$bFile=FileRead($hFile)
_RunFromMemory($bFile),这样报字符串错误
页:
[1]