找回密码
 加入
搜索
查看: 2180|回复: 15

[网络通信] 关于,DISM命令被编译后的一个问题!【已解决】

[复制链接]
发表于 2021-11-9 13:48:23 | 显示全部楼层 |阅读模式
本帖最后由 ttmv2019sx 于 2021-11-9 19:41 编辑

请问一下各大神,dism /NoRestart /online /add-package /packagepath:C:\Pro\641.cab  这个文件如果在没有编译成EXE的情况下,直接运行测试,是可以正常被运行并执行的,但是如果被编译成EXE后,运行后,会没有效果,不知道有大神知道是什么原因引起的,,虽说这个命令一下是要CMD管理员模式下运行的,但是我在编译成EXE的时候,有选择管理员运行的,但是还是不行,不知道是什么原因,打包64位的EXE在64位的WIN10下运行。
发表于 2021-11-9 14:13:14 | 显示全部楼层
代码加 #RequireAdmin
 楼主| 发表于 2021-11-9 15:32:07 | 显示全部楼层
afan 发表于 2021-11-9 14:13
代码加 #RequireAdmin

A大,我有添加的,不过还是无效,只要是打包了就无效了,不打包是可以的,这个就是奇怪了
发表于 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

 楼主| 发表于 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下使用就是会来的,现在还在找问题中,
发表于 2021-11-9 18:50:59 | 显示全部楼层
禁用重定向试试
 楼主| 发表于 2021-11-9 18:51:35 | 显示全部楼层

好的,我还把它给删除了呢,呵呵。我试试
 楼主| 发表于 2021-11-9 19:02:19 | 显示全部楼层

没有关系,还是这个KEY导入的命令不对,但是直接在DOS下是可以的,就是用AU3的时候不行,怪怪
 楼主| 发表于 2021-11-9 19:03:10 | 显示全部楼层

我试过了我是通过这个后面加了停止,才看到是出错的现象的,
RunWait(@ComSpec & ' /c ' & 'cscript //nologo %SystemRoot%\system32\slmgr.vbs –ipk VK7JG-NPHTM-C97JM-9MPGT-3V66T & pause', '', 1)
发表于 2021-11-9 19:15:47 | 显示全部楼层
这样看看,操蛋刚在虚拟机里试了没问题,又把程序拷到真机上运行了,得到了这张截图,不知道重启后我的系统激活还在不在

#RequireAdmin

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


本帖子中包含更多资源

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

×

评分

参与人数 1金钱 +50 收起 理由
afan + 50 安慰一下 :)

查看全部评分

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

哈哈,成功了,真的谢谢你了,怎么把命令写到了,变量中,就行了,而直接,在命令中不行,
 楼主| 发表于 2021-11-9 19:32:07 | 显示全部楼层
sh1536 发表于 2021-11-9 19:15
这样看看,操蛋刚在虚拟机里试了没问题,又把程序拷到真机上运行了,得到了这张截图,不知道重启后我的系统 ...

刚试了,你的就算是拿出来不到变量,直接用也是可以的,奇怪了。有什么区别,我再看看,
 楼主| 发表于 2021-11-9 19:36:03 | 显示全部楼层
sh1536 发表于 2021-11-9 19:15
这样看看,操蛋刚在虚拟机里试了没问题,又把程序拷到真机上运行了,得到了这张截图,不知道重启后我的系统 ...

找到问题所在了,,原来是在/ipk  这个上面出问题了,DOS下,-ipk是可以直接用的,而在AU3中如果是用-ipk就不行,改成你的/ipk就行了,
 楼主| 发表于 2021-11-9 19:40:45 | 显示全部楼层
sh1536 发表于 2021-11-9 19:15
这样看看,操蛋刚在虚拟机里试了没问题,又把程序拷到真机上运行了,得到了这张截图,不知道重启后我的系统 ...

激活到是不怕的KMS一样就行了,呵呵。能找到问题,还真的多亏了你,不然的话,我一直以为在DOS下是可以的情况下,在AU3中也是可以的,结果看了帮助,里面也是/,再一次谢谢你了
发表于 2021-11-9 19:47:02 | 显示全部楼层
-ipk改为了/ipk
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-20 06:38 , Processed in 0.087891 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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