找回密码
 加入
搜索
查看: 89|回复: 6

[AU3基础] 【已解决】碰到一个命令回显问题,求助!

[复制链接]
发表于 2026-3-2 22:17:37 | 显示全部楼层 |阅读模式
本帖最后由 fybhwsx 于 2026-3-3 14:21 编辑

下面这个命令始终获取不了执行结果?!
Local $iPid = Run(@ComSpec & " /c uwfmgr.exe get-config", '', @SW_HIDE, 0x8)
ProcessWaitClose($iPid)
Local $sInfo = BinaryToString(StdoutRead($iPid, 1, 1), 1)
MsgBox(0, "", $sInfo)
编码问题,最后一个参数改为2就好了。Local $sInfo = BinaryToString(StdoutRead($iPid, 1, 1), 2)


 楼主| 发表于 2026-3-2 22:18:51 | 显示全部楼层
cmd窗口运行uwfmgr.exe get-config没有问题。。
发表于 2026-3-2 22:51:04 来自手机 | 显示全部楼层
fybhwsx 发表于 2026-3-2 22:18
cmd窗口运行uwfmgr.exe get-config没有问题。。

直接使用RUN函数 执行uwfmgr.exe 不需要调用CMD。
 楼主| 发表于 2026-3-2 22:56:15 | 显示全部楼层
gyp2000 发表于 2026-3-2 22:51
直接使用RUN函数 执行uwfmgr.exe 不需要调用CMD。

Local $iPid = Run('uwfmgr.exe get-config', '', @SW_HIDE, 0x8)
这样吗,也不行。
发表于 2026-3-2 23:58:15 | 显示全部楼层
fybhwsx 发表于 2026-3-2 22:56
Local $iPid = Run('uwfmgr.exe get-config', '', @SW_HIDE, 0x8)
这样吗,也不行。

大概又是遇到64位程序的问题了,将autoit配置为64位编译目标程序。
Uwfmgr 位于 %WINDIR%\System32\ 文件夹下

#AutoIt3Wrapper_UseX64=y
If Not FileExists(@SystemDir & "\uwfmgr.exe") Then Exit MsgBox(0, "错误", "uwfmgr.exe 文件不存在")
Local $iPid = Run(@SystemDir & "\uwfmgr.exe get-config", '', @SW_HIDE, 0x6)
ProcessWaitClose($iPid)
Local $sInfo = BinaryToString(StdoutRead($iPid, 1, 1), 1)
MsgBox(0, "", $sInfo)
 楼主| 发表于 2026-3-3 08:29:31 | 显示全部楼层
本帖最后由 fybhwsx 于 2026-3-3 08:32 编辑
gyp2000 发表于 2026-3-2 23:58
大概又是遇到64位程序的问题了,将autoit配置为64位编译目标程序。
Uwfmgr 位于 %WINDIR%\System32\ 文件 ...

还是不行,和前面的代码返回结果一样:邁,就一个这样的字?

我直接带上程序路径Local $iPid = Run('C:\Windows\System32\uwfmgr.exe get-config', '', @SW_HIDE, 0x8)返回结果也是上面那个字。
发表于 2026-3-3 11:35:33 来自手机 | 显示全部楼层
可能返回的二进制数据流并不是ANSI编码的字符串。
你可以将二进制数据流当UTF8方式解码。

评分

参与人数 1金钱 +40 收起 理由
fybhwsx + 40 解决,确实是编码问题。

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2026-3-15 22:32 , Processed in 0.088438 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

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