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

[AU3基础] 使用AU3运行dos命令遇到的一些问题

[复制链接]
发表于 2022-4-20 19:14:43 | 显示全部楼层 |阅读模式
悬赏10金钱已解决
本帖最后由 532918457 于 2022-4-21 12:37 编辑


#RequireAdmin
#Region ;**** 由 AccAu3Wrapper_GUI 创建指令 ****
#AccAu3Wrapper_Icon=F:\ICO\16.ico
#AccAu3Wrapper_OutFile_x64=一键激活win10.exe
#AccAu3Wrapper_Res_Language=2052
#AccAu3Wrapper_Res_requestedExecutionLevel=None
#EndRegion ;**** 由 AccAu3Wrapper_GUI 创建指令 ****
#include <WinAPI.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <GUIToolTip.au3>
#include <StaticConstants.au3>
#include <Process.au3>

Global Const $gc_FormName = "激活Win10"

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate($gc_FormName, 177, 100, -1, -1)
GUISetBkColor(0xdeecfc)
Local $idComboBox1 = GUICtrlCreateCombo("", 10, 15, 155, 20)
Local $Btn1 = GUICtrlCreateButton("确定", 10, 50, 60, 24, $BS_DEFPUSHBUTTON)
Local $Btn2 = GUICtrlCreateButton("查看激活状态", 80, 50, 86, 24)
GUICtrlCreateLabel("By Simiya-L", -1, 80, 85, 20, $SS_RIGHT)
#EndRegion ### END Koda GUI section ###

_Main()
Exit

Func _Main()
        GUICtrlSetData($idComboBox1, "激活win10(校内)|激活win10(校外)", "激活win10(校内)")
        GUISetState(@SW_SHOW)
        Local $nMsg
        While 1
                $nMsg = GUIGetMsg()
                Switch $nMsg
                        Case $GUI_EVENT_CLOSE
                                Exit
                        Case $Btn1
                                _Activation();激活win10
                        Case $Btn2
                                _ActivationStatus();查看激活状态
                EndSwitch
        WEnd
EndFunc   ;==>_Main

Func _Activation()
        Select
                Case GUICtrlRead($idComboBox1) = "激活win10(校内)"
                        Local $Act1 = _RunDos("slmgr /skms kms.03k.org")
                        Sleep(2000)
                        ControlClick('Windows Script Host', '', 'Button1')
                        Local $Act2 = _RunDos("slmgr /ato")
                        TrayTip("", "系统激活完成", 5, 1)
                Case GUICtrlRead($idComboBox1) = "激活win10(校外)"
                        RunWait(@ComSpec & "/c" & 'slmgr /skms kms.03k.org')
                        RunWait(@ComSpec & "/c" & 'slmgr /ato')
                        TrayTip("", "系统激活完成", 5, 1)
        EndSelect
EndFunc   ;==>_Activation

Func _ActivationStatus()
        Local $ActSta = _RunDos("slmgr.vbs -xpr")
EndFunc   ;==>_ActivationStatus


每次运行到图片的地方就要手动点击确定才可以运行下一条代码,我中间试过添加WinActivate的代码还是不行,代码应该卡在了 Local $Act1 = _RunDos("slmgr /skms kms.03k.org"),不点确定就不继续了,然后RunWait(@ComSpec & "/c" & 'slmgr /skms kms.03k.org')这一句是完全不起作用,不知到为什么,我测试的系统是windows10。

求各位大哥指教一下我这个学了两星期左右的萌新。
附件: 您需要 登录 才可以下载或查看,没有账号?加入

最佳答案

查看完整内容

真够萌新的,帖子代码显示不正常得编辑下,这样一行显示怎么忍得下去的? 代码可用 【code】代码【/code】 或者 【au3】代码【/au3】发布,不要用贴图 不过新人就悬赏很不错,大方~ 试试: [au3] Case GUICtrlRead($idComboBox1) = "激活win10(校内)" ;~ Local $Act1 = _RunDos("slmgr /skms kms.03k.org") Local $Act1 = Run(@ComSpec & " /C slmgr /skms kms.03k.org") WinWaitActive('Windows Script', '密钥管理') ...
发表于 2022-4-20 19:14:44 | 显示全部楼层
真够萌新的,帖子代码显示不正常得编辑下,这样一行显示怎么忍得下去的?
代码可用 【code】代码【/code】 或者 【au3】代码【/au3】发布,不要用贴图
不过新人就悬赏很不错,大方~
试试:
                Case GUICtrlRead($idComboBox1) = "激活win10(校内)"
;~                         Local $Act1 = _RunDos("slmgr /skms kms.03k.org")
                        Local $Act1 = Run(@ComSpec & " /C slmgr /skms kms.03k.org")
                        WinWaitActive('Windows Script', '密钥管理')
                        Send('{Enter}')
                        Local $Act2 = _RunDos("slmgr /ato")
                        TrayTip("", "系统激活完成", 5, 1)
发表于 2022-4-21 08:28:32 | 显示全部楼层
等待这个窗口出现发送回车问题解决不了吗?
 楼主| 发表于 2022-4-21 08:54:55 | 显示全部楼层
redapple2008 发表于 2022-4-21 08:28
等待这个窗口出现发送回车问题解决不了吗?

就是要手动按回车,不能自动,我试过用send"{enter}"没用,会导致脚本不断重复
发表于 2022-4-21 09:00:21 | 显示全部楼层
ControlSend试试了。
 楼主| 发表于 2022-4-21 09:48:58 | 显示全部楼层

还是·不行

本帖子中包含更多资源

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

×
发表于 2022-4-21 10:02:25 | 显示全部楼层
这个应该用控件点击函数吧
ControlClick('Windows Script Host', '', 'Button1')
 楼主| 发表于 2022-4-21 10:22:33 | 显示全部楼层
本帖最后由 532918457 于 2022-4-21 15:54 编辑
fybhwsx 发表于 2022-4-21 10:02
这个应该用控件点击函数吧
ControlClick('Windows Script Host', '', 'Button1')

如果用这样的方法就可以,无论用send还是控件点击,鼠标模拟点击都可以定位到windows script host这个窗口,但是用_Rundos就会卡着,不知道原理是什么。能请教一下能不能改一下我这个代码,不用——rundos都可以,我就是想不显示CMD后台帮我运行这些代码而已。
发表于 2022-4-21 10:41:14 | 显示全部楼层
532918457 发表于 2022-4-21 10:22
如果用这样的方法就可以,无论用send还是控件点击,鼠标模拟点击都可以定位到windows script host这个窗 ...

用ShellExecute可以试试了
 楼主| 发表于 2022-4-21 12:24:43 | 显示全部楼层
afan 发表于 2022-4-21 10:33
真够萌新的,帖子代码显示不正常得编辑下,这样一行显示怎么忍得下去的?
代码可用 【code】代码【/code】 ...

第一次发帖,里面高级那里有AU3代码输入我就直接复制进去,也不清楚为什么出来是一行,所以我就直接贴图了,而且贴图可以方便我指出那里不懂啊
 楼主| 发表于 2022-4-21 12:28:52 | 显示全部楼层
redapple2008 发表于 2022-4-21 10:41
用ShellExecute可以试试了

没用过这个命令不会用啊,能不能举个例子,谢谢了
发表于 2022-4-21 13:52:24 | 显示全部楼层
Func _KMS($WebSev)
        RunWait(@ComSpec & ' /c ' & 'slmgr.vbs -upk', '', 0)
        RunWait(@ComSpec & ' /c ' & 'slmgr /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX', '', 0)
        RunWait(@ComSpec & ' /c ' & 'slmgr /skms kms.03k.org', '', 0)
        RunWait(@ComSpec & ' /c ' & 'slmgr /ato', '', 0)
        Msgbox(64,"完成","操作成功,请检查是否激活成功,若激活失败请尝试更换激活通道")
EndFunc
发表于 2022-4-21 13:59:13 | 显示全部楼层
532918457 发表于 2022-4-21 12:24
第一次发帖,里面高级那里有AU3代码输入我就直接复制进去,也不清楚为什么出来是一行,所以我就直接贴图 ...

萌新不可怕,粗心最致命。我在 8# 已给出答案了。
 楼主| 发表于 2022-4-21 15:53:16 | 显示全部楼层
afan 发表于 2022-4-21 10:33
真够萌新的,帖子代码显示不正常得编辑下,这样一行显示怎么忍得下去的?
代码可用 【code】代码【/code】 ...

感谢大佬的指点!

                Case GUICtrlRead($idComboBox1) = "激活win10(校内)"
                        Local $Act1 = Run(@ComSpec & " /C slmgr /skms kms.03k.org", "", @SW_HIDE)
                        WinWaitActive('Windows Script Host', '密钥管理')
                        Send('{Enter}')
                        Local $Act2 = Run(@ComSpec & " /C slmgr /ato", "", @SW_HIDE)
                        WinWaitActive('Windows Script Host', '正在激活')
                        Send('{Enter}')
                        TrayTip("", "系统激活完成", 5, 1)
                        Exit



我在你的基础上修改了一下,测试都比较完美了,还有一个问题,有没有方法在一个cmd窗口里输入多行的命令呢,就像bat文件一样。
 楼主| 发表于 2022-4-21 15:57:44 | 显示全部楼层

你这个要清理原本密钥的,win10各种版本密钥不通用的,比如我用的是LTSC的版本用你这个命令就无法激活了,我还要上网再找激活码才可以
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-25 17:35 , Processed in 0.078376 second(s), 18 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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