代码之家  ›  专栏  ›  技术社区  ›  Paul Hargreaves

由于脚本原因退出iTunes警告消息

  •  2
  • Paul Hargreaves  · 技术社区  · 16 年前

    在PowerShell中编写以下内容作为iTunes的快速演示:

    $iTunes = New-Object -ComObject iTunes.Application
    $LibrarySource = $iTunes.LibrarySource
    foreach ($PList in $LibrarySource.Playlists)
    {
      write-host $PList.name
    }
    

    这很好地工作,并收回播放列表名称的列表。 但是,当试图关闭iTunes时,会出现一个警告

    一个或多个应用程序正在使用iTunes脚本界面。你确定要退出吗?

    显然,我可以忽略这条消息,然后按[退出]或等待20秒左右,但有没有一个干净的方法告诉iTunes我已经完成了它的工作?

    Itunes 7.7.1, Windows XP
    
    2 回复  |  直到 11 年前
        1
  •  4
  •   bruceatk    16 年前

    这是我在PowerShell脚本上做的一件事,它将播客添加到iTunes中。我在服务器上使用Juice下载所有我收听的播客。脚本使用.NET方法释放COM对象。当我写了我的iTunes脚本时,我读了几篇文章,说你应该使用.NET发布你的COM对象。

    
        [void][System.Runtime.InteropServices.Marshal]::ReleaseComObject([System.__ComObject]$LibrarySource)
        [void][System.Runtime.InteropServices.Marshal]::ReleaseComObject([System.__ComObject]$iTunes)
    

    我大部分时间都是从快捷方式运行脚本,而不是从PowerShell提示运行。

    基于你的评论,我做了一些测试,我确定如果我以一种让PowerShell保持运行的方式运行脚本,那么在针对iTunes运行时会收到消息。iTunes似乎一直在关注这一点。以运行后退出进程的方式运行脚本,消除了消息。

    从PowerShell运行脚本的一种方法是在脚本前面加上PowerShell。

    powershell .\scriptname.ps1

    上面的命令将启动您的脚本,然后退出用于运行它的进程,但仍然将您留在PowerShell提示下。

        2
  •  0
  •   Steven Murawski    16 年前

    您应该能够将$itunes设置为$null。或者,$itunes应该有一个您可以调用的退出方法。iTunes .Cug()

    推荐文章