ttmv2019sx 发表于 2021-11-9 13:48:23

关于,DISM命令被编译后的一个问题!【已解决】

本帖最后由 ttmv2019sx 于 2021-11-9 19:41 编辑

请问一下各大神,dism /NoRestart /online /add-package /packagepath:C:\Pro\641.cab这个文件如果在没有编译成EXE的情况下,直接运行测试,是可以正常被运行并执行的,但是如果被编译成EXE后,运行后,会没有效果,不知道有大神知道是什么原因引起的,,虽说这个命令一下是要CMD管理员模式下运行的,但是我在编译成EXE的时候,有选择管理员运行的,但是还是不行,不知道是什么原因,打包64位的EXE在64位的WIN10下运行。

afan 发表于 2021-11-9 14:13:14

代码加 #RequireAdmin

ttmv2019sx 发表于 2021-11-9 15:32:07

afan 发表于 2021-11-9 14:13
代码加 #RequireAdmin

A大,我有添加的,不过还是无效,只要是打包了就无效了,不打包是可以的,这个就是奇怪了

sh1536 发表于 2021-11-9 18:00:28

加上A大的那个可以运行啊,编译后也可以,试试我这个最简单的dism命令行不行
#RequireAdmin
#include <AutoItConstants.au3>

$cmd = "dism /?"
$result = RunCmd($cmd, False, True)
MsgBox(0, "", $result)

Func RunCmd($sCommand, $bBin = False, $bWait = False)
        ;1:要执行的命令行(无需带@ComSpec) 2:是否以二进制方式读取(防止中文乱码,如ImageX) 3:是否等待进程执行完毕(防止部分exe数据流获取不全,如Diskpart)
        If $bBin Then
                Local $sOutput = Binary('')
        Else
                Local $sOutput = ''
        EndIf
        Local $iPID = Run($sCommand, '', @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)

        If $bWait Then
                ProcessWaitClose($iPID)
                $sOutput = StdoutRead($iPID, False, $bBin)
        Else
                While 1
                        $sOutput &= StdoutRead($iPID, False, $bBin)
                        If @error Then ExitLoop
                WEnd
        EndIf
        If $bBin Then $sOutput = BinaryToString($sOutput, 4)
        Return $sOutput
EndFunc   ;==>RunCmd

ttmv2019sx 发表于 2021-11-9 18:47:38

sh1536 发表于 2021-11-9 18:00
加上A大的那个可以运行啊,编译后也可以,试试我这个最简单的dism命令行不行

管理员这个我是有加的,现在找到问题所在了,不是DISM不行,这个是可以的,是后面的KEY不行,
RunWait(@ComSpec & ' /c ' & 'cscript //nologo %SystemRoot%\system32\slmgr.vbs –ipk VK7JG-NPHTM-C97JM-9MPGT-3V66T', '', 1)
这一句我让其显示,也是一显而过,但是直接拿出来DOS下使用就是会来的,现在还在找问题中,

zghwelcome 发表于 2021-11-9 18:50:59

禁用重定向试试

ttmv2019sx 发表于 2021-11-9 18:51:35

zghwelcome 发表于 2021-11-9 18:50
禁用重定向试试

好的,我还把它给删除了呢,呵呵。我试试

ttmv2019sx 发表于 2021-11-9 19:02:19

zghwelcome 发表于 2021-11-9 18:50
禁用重定向试试

没有关系,还是这个KEY导入的命令不对,但是直接在DOS下是可以的,就是用AU3的时候不行,怪怪

ttmv2019sx 发表于 2021-11-9 19:03:10

zghwelcome 发表于 2021-11-9 18:50
禁用重定向试试

我试过了我是通过这个后面加了停止,才看到是出错的现象的,
RunWait(@ComSpec & ' /c ' & 'cscript //nologo %SystemRoot%\system32\slmgr.vbs –ipk VK7JG-NPHTM-C97JM-9MPGT-3V66T & pause', '', 1)

sh1536 发表于 2021-11-9 19:15:47

这样看看,操蛋刚在虚拟机里试了没问题,又把程序拷到真机上运行了,得到了这张截图,不知道重启后我的系统激活还在不在:face (30):


#RequireAdmin

$cmd = "cscript //nologo %SystemRoot%\system32\slmgr.vbs /ipk VK7JG-NPHTM-C97JM-9MPGT-3V66T & pause"
Run(@ComSpec & ' /c ' & $cmd, '', @SW_SHOW)


ttmv2019sx 发表于 2021-11-9 19:30:33

sh1536 发表于 2021-11-9 19:15
这样看看,操蛋刚在虚拟机里试了没问题,又把程序拷到真机上运行了,得到了这张截图,不知道重启后我的系统 ...

哈哈,成功了,真的谢谢你了,怎么把命令写到了,变量中,就行了,而直接,在命令中不行,

ttmv2019sx 发表于 2021-11-9 19:32:07

sh1536 发表于 2021-11-9 19:15
这样看看,操蛋刚在虚拟机里试了没问题,又把程序拷到真机上运行了,得到了这张截图,不知道重启后我的系统 ...

刚试了,你的就算是拿出来不到变量,直接用也是可以的,奇怪了。有什么区别,我再看看,

ttmv2019sx 发表于 2021-11-9 19:36:03

sh1536 发表于 2021-11-9 19:15
这样看看,操蛋刚在虚拟机里试了没问题,又把程序拷到真机上运行了,得到了这张截图,不知道重启后我的系统 ...

找到问题所在了,,原来是在/ipk这个上面出问题了,DOS下,-ipk是可以直接用的,而在AU3中如果是用-ipk就不行,改成你的/ipk就行了,

ttmv2019sx 发表于 2021-11-9 19:40:45

sh1536 发表于 2021-11-9 19:15
这样看看,操蛋刚在虚拟机里试了没问题,又把程序拷到真机上运行了,得到了这张截图,不知道重启后我的系统 ...

激活到是不怕的KMS一样就行了,呵呵。能找到问题,还真的多亏了你,不然的话,我一直以为在DOS下是可以的情况下,在AU3中也是可以的,结果看了帮助,里面也是/,再一次谢谢你了

sh1536 发表于 2021-11-9 19:47:02

-ipk改为了/ipk
页: [1] 2
查看完整版本: 关于,DISM命令被编译后的一个问题!【已解决】