رسالة تحذير من iTunes عند الإقلاع عن التدخين بسبب البرمجة النصية

StackOverflow https://stackoverflow.com/questions/52286

  •  09-06-2019
  •  | 
  •  

سؤال

كتب ما يلي في PowersHell كعرض توضيحي سريع لـ iTunes:

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

يعمل هذا بشكل جيد ويسحب قائمة بأسماء قوائم التشغيل.ولكن عند محاولة إغلاق iTunes، يظهر تحذير

يستخدم تطبيق واحد أو أكثر واجهة البرمجة النصية لـ iTunes.هل أنت متأكد من أنك تريد الخروج؟

من الواضح أنه يمكنني فقط تجاهل الرسالة والضغط على [Quit] أو الانتظار لمدة 20 ثانية أو نحو ذلك، ولكن هل هناك طريقة نظيفة لإخبار iTunes بأنني انتهيت من العمل معها؟

Itunes 7.7.1, Windows XP
هل كانت مفيدة؟

المحلول

إليك شيء واحد قمت به في برنامج Powershell النصي الخاص بي والذي يضيف ملفات podcast إلى iTunes.أستخدم Juice على الخادم لتنزيل جميع ملفات البودكاست التي أستمع إليها.يستخدم البرنامج النصي أساليب .Net لتحرير كائنات COM.عندما كتبت برنامج iTunes الخاص بي، كنت قد قرأت بعض المقالات التي نصت على ضرورة تحرير كائنات COM الخاصة بك باستخدام .NET.


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

أقوم أيضًا بتشغيل البرامج النصية الخاصة بي في أغلب الأحيان من خلال اختصار، وليس من موجه powershell.

بناءً على تعليقاتك، أجريت بعض الاختبارات وقررت أنني سأتلقى الرسالة عند التشغيل ضد iTunes، إذا قمت بتشغيل البرنامج النصي الخاص بي بطريقة تجعل Powershell قيد التشغيل.يبدو أن iTunes يتتبع ذلك.يؤدي تشغيل البرنامج النصي بطريقة تخرج من العملية بعد التشغيل إلى إزالة الرسالة.

تتمثل إحدى طرق تشغيل البرنامج النصي الخاص بك من powershell في بادئة البرنامج النصي الخاص بك باستخدام powershell.

powershell .\scriptname.ps1

سيقوم الأمر أعلاه بتشغيل البرنامج النصي الخاص بك ثم الخروج من العملية التي تم استخدامها لتشغيله، لكنه سيتركك في موجه Powershell.

نصائح أخرى

يجب أن تكون قادرًا على ضبط $itunes على $null.وبدلاً من ذلك، يجب أن يكون لدى $itunes طريقة إنهاء يمكنك الاتصال بها.$itunes.quit()

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top