我正在使用XMLTV GUI 抓取器从 Schedules Direct (North America) 获取电视节目表指南 (EPG) 信息,供 Windows 10 下的 PVR 软件使用。我以交互方式执行此操作完全没有问题。生成的数据文件包含所有所需信息。
但是,当作为计划任务运行时 - XmltvConsole.exe 或 XmltvGui.exe /Grab 不会获取任何数据,并且会记录类似以下消息
5:15:01 - 0 programs found
...
5:15:02 - No programs found, aborting xml writing
这通常表示所选抓取器未配置通道。当然,在 GUI 中,我看到我已将所有可用通道添加到所选通道列表中。
我已确保计划任务设置为无论我是否登录都以我的用户帐户运行,并且我已尝试对计划任务中的“运行于”目录框进行各种设置:我使用了 C:\Program Files (x86) 下的程序目录、我的用户帐户的主文件夹,以及任何其它设置。我已验证任务似乎可以无错误地运行。
答案1
我找到了一个解决方案,尽管我对此并不满意。XMLTV GUI 是一个 Windows 10 之前的程序,它试图将自己的设置存储在
C:\Program Files (x86)\XMLTV GUI\settings\
文件夹层次结构。Windows 10 不允许这样做,并将文件写入重定向到
C:\Users\[my-user-name]\AppData\Local\VirtualStore\Program Files (x86)\XMLTV GUI\settings\
路径。这可以在交互式用户会话期间无缝运行。
XMLTV GUI 问题的原因似乎是 VirtualStore 重定向不适用于计划任务,或者以某种方式被 XmltvGui.exe 和 XmltvConsole.exe 所绕过,即使该任务配置为以输入了用户名和密码的特定用户身份运行。
使用 Windows 资源管理器并在 UAC 提示时允许自己访问,我发现可以通过从以下位置复制 channels.lua 和 userchannels.txt 文件来解决问题
C:\Users\[my-user-name]\AppData\Local\VirtualStore\Program Files (x86)\XMLTV GUI\settings\NA_SD
到
C:\Program Files (x86)\XMLTV GUI\settings\NA_SD
每次更改我的频道设置后都必须重复此操作,因此虽然它确实可以解决问题,但这并不理想。