سؤال

اذا انا OPTION + RIGHT CLICK على أيقونة finder، أحصل على "relaunch."الخيار في قائمة السياق. أود إعادة نشر مكتشف برمجيا، إذا كان ذلك ممكنا على الإطلاق. أنا متأكد من أن هناك طريقة أفضل للقيام بذلك من قتلها فقط واتركها إعادة التشغيل. افترض أن لدي إذن مناسب / أذونات للقيام بذلك بالفعل.

بالإضافة إلى ذلك، أود إعادة تشغيل الأضواء أيضا.

هل كانت مفيدة؟

المحلول

أرسلها حدث إنهاء باستخدام AppleScript، ثم أرسلها حدث تنشيط:

//tell Finder to quit
NSAppleScript *restartFinder = [[NSAppleScript alloc] initWithSource:@"tell application \"Finder\" to quit"];
[restartFinder executeAndReturnError:nil];

تحرير: إضافة تأخير للتأكد من أن Finder جاهز لتلقي حدث تنشيط. على جهازي، في بعض الأحيان يحتاج هذا التأخير، وأحيانا لا:

//delay 1 second
restartFinder = [[NSAppleScript alloc] initWithSource:@"delay 1"];
[restartFinder executeAndReturnError:nil];

(... END EDIT)

//tell Finder to activate
restartFinder = [[NSAppleScript alloc] initWithSource:@"tell application \"Finder\" to activate"];
[restartFinder executeAndReturnError:nil];

نصائح أخرى

يتم الاحتفاظ بنظام الباحث على قيد الحياة بواسطة النظام، حتى تتمكن من قتله فقط وسيتم إعادة تشغيله تلقائيا. أنا أستعمل killall Finder لانجاز هذا.

"relaunch" بالتأكيد تقريبا يرسل فقط إشارة قتل إلى الباحث.

قتل مكتشف مع killall Finder يعمل منذ النظام تلقائيا إعادة تشغيله تلقائيا.

[[NSTask launchedTaskWithLaunchPath:@"/usr/bin/killall" 
    arguments:[NSArray arrayWithObjects:@"Finder", nil]] waitUntilExit];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top