gpt4 book ai didi

Powershell 在单击事件时挂起

转载 作者:行者123 更新时间:2023-12-02 23:32:27 25 4
gpt4 key购买 nike

我是 powershell 的新手,我正在尝试编写一个自动点击器。到目前为止,我有这个代码:

Add-Type -MemberDefinition '[DllImport("user32.dll")] public static extern void mouse_event(int flags, int dx, int dy, int cButtons, int info);' -Name U32 -Namespace W;

function click {
[W.U32]::mouse_event(2,0,0,0,0);
[W.U32]::mouse_event(4,0,0,0,0);
}

$i = 10

while ($i -ge 0) {
Write-Host "$i clicks remaining"
Start-Sleep -m 1000
click
Write-Host "Clicked!"
$i -= 1
}

问题是,当我运行脚本时,它只执行第一次点击,然后就挂了。
输出只是:
10 clicks remaining
只有当我按 Ctrl+C 时,脚本才会前进到循环的下一次迭代。
10 clicks remaining
Clicked!
9 clicks remaining
我只是不明白我做错了什么。

最佳答案

问题很可能是,如果在运行脚本时鼠标指针恰好位于控制台窗口的客户区上方,则您的鼠标单击意外地暂停了正在运行 PowerShell 的控制台窗口中的处理。
(左-)单击控制台窗口将其置于选择模式 (用于将屏幕内容复制到剪贴板)以及 隐式挂起正在运行的 shell/程序 ;任何按键(除了只有修饰符的按键) - 例如你的情况下的 Control-C - 退出此模式。
如果您将鼠标指针从控制台窗口移开,然后启动您的脚本,您的脚本将运行完成。
请注意,点击可能会激活不同的窗口,如果该窗口与控制台窗口重叠,则点击将继续遮挡(部分)您的控制台窗口。要消除这种影响,请先隐藏控制台窗口以外的所有窗口。

关于Powershell 在单击事件时挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64372099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com