我正在尝试实现一个Powershell启动脚本,它调用一个python文件。当 shell 调用我的 python 文件时,它永远不会获得焦点。当我进入启动文件夹并自己运行脚本时,它工作正常,但当它作为启动过程的一部分运行时,关键侦听器不起作用。
我已经尝试了很多方法来让我的项目无头运行,例如运行提升权限、更改 python 中的密钥侦听器、安装应该将焦点放在窗口上的 python 模块、在子进程中打开文件、在全新的进程中打开它外壳。
当我手动运行 .exe 时它可以正常工作,显然我遗漏了一些东西,谷歌已经无望了。
Write-Host "starting docker"
$user = [Environment]::UserName
Start-Process -FilePath "C:\Program Files\Docker\Docker\Docker Desktop.exe"
$file_path = "C:\Users\${user}\OneDrive\Desktop\teia\windows\"
# Check if Docker is ready
function DockerReady {
try {
$response = Invoke-RestMethod -Uri http://localhost:2375/_ping -UseBasicParsing
return $response -eq "OK"
} catch {
return $false
}
}
# Wait for Docker
do {
Write-Host "Waiting for Docker to be ready..."
Start-Sleep -Seconds 3
} until (DockerReady)
Start-Process powershell -ArgumentList "-NoExit", "-Command", "docker run --rm -it --env ACCEPT_LICENSE=true --publish 1080:1080 tts-standalone"
Write-Host "Starting Teia"
Start-Process powershell -ArgumentList "-NoExit", "-Command", "conda run --name teia python '$file_path\run-on-startup.py' '$file_path'"
Write-Host -NoNewLine "Application initialised, press any key to exit..."
$null = $Host.UI.RawUI.ReadKey('NoEcho, IncludeKeyDown')```
如果您想将其作为启动脚本运行,就像 Windows 登录会话启动时一样。
将此脚本移动到 shell:startup 文件夹,如果你想作为海拔执行,它会自动执行,制作一个bat脚本并添加路径“C:\Windows\System3”