Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VBScript即将被移除,windows版可能要考虑其他自启动方案了 #14

Open
verygoodlee opened this issue Oct 12, 2023 · 12 comments

Comments

@verygoodlee
Copy link
Contributor

微软宣布弃用 VBScript 脚本语言,将在未来的 Windows 版本中移除
Windows 客户端的已弃用功能
就是不知道微软的效率,多久后被彻底移除。
这就有点难受了,如果以windows服务方式启动,运行播放器时只有进程看不到播放器窗口,因为服务是SYSTEM用户,和普通用户不在同一个会话。
很难找到vbs的替代方案,既能隐藏黑窗口,又能正常运行播放器。

@kjtsune
Copy link
Owner

kjtsune commented Oct 12, 2023

到时候若没更好的办法,可以用 AutoHotkey 来隐藏窗口启动,问题不很大

@imbalaomao
Copy link

imbalaomao commented Oct 15, 2023

最近看到这个项目:https://github.com/LuckyPuppy514/Play-With-MPV ,不知是否可以作为参考?大致思路是本地放置一个注册表文件,设置在油猴脚本内。

@verygoodlee
Copy link
Contributor Author

最近看到这个项目:https://github.com/LuckyPuppy514/Play-With-MPV ,不知是否可以作为参考?大致思路是本地放置一个注册表文件,设置在油猴脚本内。

这个我也早就在用,原理完全不同,系统注册一个mpv://协议,浏览器用这个协议打开播放器,
他没有后台服务,无法实现复杂功能,比如播放器关闭后触发进度回传,
embyToLocalPlayer后台有个python服务,浏览器调用python服务,由python调用播放器

@nostopp
Copy link

nostopp commented Oct 18, 2023

试了下 subprocess.Popen(["python", "embyToLocalPlayer.py"], creationflags=subprocess.CREATE_NO_WINDOW) 似乎可以挂在后台运行..

@kjtsune
Copy link
Owner

kjtsune commented Nov 6, 2023

之前把脚本输出去掉后(pythonw.exe 有输出会报错),试了用 pythonw.exe python.exe 楼上的挂后台命令 这几个配合 快捷方式 组合测试,至少都会开机闪一下窗口。

@verygoodlee
Copy link
Contributor Author

我找到一个比较轻量级的开源解决方案 SilentCMD,虽然已经好几年不维护了,
SilentCMD.exe SilentCMD.exe.config重命名为embyToLocalPlayer.exe embyToLocalPlayer.exe.config,放在embyToLocalPlayer.py同一目录下,
编辑embyToLocalPlayer.exe.config,修改这几个参数

<setting name="DefaultBatchFilePath" serializeAs="String">
      <value>python</value>
</setting>
<setting name="DefaultBatchFileArguments" serializeAs="String">
      <value>embyToLocalPlayer.py</value>
</setting>
<setting name="DefaultLogFilePath" serializeAs="String">
      <value>%temp%\embyToLocalPlayer.log</value>
</setting>

embyToLocalPlayer.exe创建一个快捷方式,丢到自启动目录

@kjtsune
Copy link
Owner

kjtsune commented Nov 7, 2023

.bat 选5复制的路径放在 SilentCMD.exe 快捷方式的目标栏后面,也可以正常运行,这样子就不用和 .py 放在一起,避免文件太杂。
但有个问题,需要 .net 3.5 环境。这个系统默认关闭的。

Repository owner deleted a comment from imbalaomao Nov 7, 2023
@verygoodlee
Copy link
Contributor Author

需要 .net 3.5 环境。这个系统默认关闭的。

Win10 22H2默认只开启了.net4.8,测试没啥问题,.net好像有做向下兼容
image

各系统预装版本可看这里 .NET Framework 版本和依赖关系
Win7有预装.net3.5SilentCMD的README文档里说了支持Win7及更高版本,没有提手动启用.net的事,应该是默认开启的

@kjtsune
Copy link
Owner

kjtsune commented Nov 7, 2023

需要 .net 3.5 环境。这个系统默认关闭的。

Win10 22H2默认只开启了.net4.8,测试没啥问题,.net好像有做向下兼容 image

各系统预装版本可看这里 .NET Framework 版本和依赖关系Win7有预装.net3.5SilentCMD的README文档里说了支持Win7及更高版本,没有提手动启用.net的事,应该是默认开启的

我用 Windows 10 LTSC 2019 会提示需要下载 .net 3.5
image

@verygoodlee
Copy link
Contributor Author

verygoodlee commented Nov 7, 2023

有更好的方案了 NriCmd,好像并不开源,兼容性堪称逆天,没啥特殊要求。

This utility can work in all versions of Windows operating system: Windows 9x/ME, Windows NT, Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows 8, and Windows 10.

下载解压之后只要保留nircmd.exe单个文件就行,使用方法:nircmd.exe exec hide python "xxx.py"
所有命令列表:NirCmd Command Reference

@kjtsune
Copy link
Owner

kjtsune commented Nov 13, 2023

有更好的方案了 NriCmd,好像并不开源,兼容性堪称逆天,没啥特殊要求。

This utility can work in all versions of Windows operating system: Windows 9x/ME, Windows NT, Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows 8, and Windows 10.

下载解压之后只要保留nircmd.exe单个文件就行,使用方法:nircmd.exe exec hide python "xxx.py"。 所有命令列表:NirCmd Command Reference

作为默认组件还是不很合适,相比更倾向于 ahk,对喜欢开源的用户更友好可控。

@ke-xi
Copy link

ke-xi commented Dec 15, 2023

我找到一个比较轻量级的开源解决方案 SilentCMD,虽然已经好几年不维护了, 把SilentCMD.exe SilentCMD.exe.config重命名为embyToLocalPlayer.exe embyToLocalPlayer.exe.config,放在embyToLocalPlayer.py同一目录下, 编辑embyToLocalPlayer.exe.config,修改这几个参数

<setting name="DefaultBatchFilePath" serializeAs="String">
      <value>python</value>
</setting>
<setting name="DefaultBatchFileArguments" serializeAs="String">
      <value>embyToLocalPlayer.py</value>
</setting>
<setting name="DefaultLogFilePath" serializeAs="String">
      <value>%temp%\embyToLocalPlayer.log</value>
</setting>

embyToLocalPlayer.exe创建一个快捷方式,丢到自启动目录

可以了,谢谢

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants