脚本动作在使用CMD隐藏命令行时无法正确调起授权等问题

BUG反馈 · 3275 次浏览
Greesea 创建于 2019-02-26 23:08

版本:0.9.15.0

系统版本:Windows 10 x64 1803(17134.590)和 Windows 10 x64 1809(17763.292)

问题描述:

  1. 使用脚本动作(包括高级组合动作内的脚本动作)并将脚本类型设置为 "CMD命令(隐藏命令行窗口)" ,并且将 "以管理员身份运行" 勾上后无法弹出授权导致脚本仍旧使用用户权限运行
  2. 高级动作下的 "等待进程结束" 开关的描述文本是 "以管理员身份运行" 的
  3. 在某窗体焦点内通过快捷键激活 quicker 后打开设置或对动作进行编辑、分享、信息等其它弹出窗体的操作后因焦点变化错误的使用 quicker 作为目标的问题(例如输出窗口标题等和目标窗体有关的api)

附加图片:

问题1、问题2



问题3



Greesea 回复 CL 2019-02-27 09:02 :

1. 先最小化或1px宽高启动唤起授权再使用User32里的ShowWindow将窗体隐藏呢?

2. 这个不是说功能有问题,是描述文本不正确,问题描述的图2中就能看到

3. 这个通过在激活时先记录焦点,将焦点窗口的句柄固化呢?或者切换焦点的时候将 quicker 窗体排除呢?

CL 回复 Greesea 2019-02-27 09:30 :

2. 哦哦,看到了,直接复制粘贴弄的😂

1. 理论上虽然可能可以,不过感觉挺麻烦呀。 什么场景下需要隐藏命令行窗口呢?

3. 激活时会记录焦点,但是获取标题时,焦点有可能会跑掉的(比如执行动作的过程中打开了软件的子窗口或对话框,这时候要取对话框的标题)。虽然可以在执行任何动作之前先恢复一下焦点窗口,但是如果用户在编辑quicker动作的时候,操作了别的软件,这时候恢复焦点窗口可能是用户并不希望的操作。 

Greesea 回复 CL 2019-02-27 09:56 :

1. 一些批处理操作又不需要给人看的话隐藏会比闪一下好很多就是了

3. 那就给那些获取窗口信息的加一个句柄的输入参数呢?默认取当前窗口,可以设置为句柄变量和激活时的窗口呢?

CL 回复 Greesea 2019-02-27 10:04 :

新版已增加获取窗口句柄的操作。 只是目前还没有别的模块可以使用句柄,后续慢慢完善。


Greesea 回复 CL 2019-02-27 10:37 :

好的

Cesar 回复 CL 2020-02-09 21:10 :

问题一目前解决了吗,我刚才测试动作 “将动作添加到右键菜单” 出现了以下现象——将脚本类型由 “CMD命令 (隐藏命令行窗口)” 改为 “CMD命令(完成后关闭窗口)” 才可以正常运行,是由这个原因造成的吗

CL 回复 Cesar 2020-02-09 21:40 :

隐藏的不支持管理员身份运行。

回复内容
CL 2019-02-27 08:02
#1
1. 隐藏窗口的时候是无法让“使用管理员身份运行”生效的,这个是windows自身的限制,可以参考:https://stackoverflow.com/questions/3596259/elevating-privileges-doesnt-work-with-useshellexecute-false

2. 是哪个模块?
我测试了脚本和“运行或打开” 没有能复现问题。 当然,如果在脚本里启动其他进程,比如start cmd,新启动的进程是不会被等待的。

3. 做编辑操作后,焦点会失去。 需要回到要操作的软件,重开面板后执行动作。 这个没法避免哦,因为目标窗口信息是执行动作的时候才去获取的。
回复主贴