3

iTunes の簡単なデモンストレーションとして、PowersHell で次のように記述しました。

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

これはうまく機能し、プレイリスト名のリストを引き戻します。ただし、iTunes を閉じようとすると、警告が表示されます

1 つまたは複数のアプリケーションが iTunes スクリプト インターフェイスを使用しています。本当にやめる気?

もちろん、メッセージを無視して [Quit] を押すか、20 秒ほど待つこともできますが、作業が終了したことを iTunes に明確に伝える方法はありますか?

Itunes 7.7.1, Windows XP
4

2 に答える 2

4

これは、ポッドキャストを iTunes に追加する Powershell スクリプトで実行したことの 1 つです。サーバーで 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 からスクリプトを実行する方法の 1 つは、スクリプトの前に powershell を付けることです。

powershell .\scriptname.ps1

上記のコマンドは、スクリプトを起動し、その実行に使用されたプロセスを終了しますが、powershell プロンプトは引き続き表示されます。

于 2008-09-09T16:34:28.537 に答える
0

$itunesを$nullに設定できるはずです。または、$itunesには呼び出し可能なquitメソッドが必要です。$ itunes.quit()

于 2008-09-10T13:13:39.930 に答える