Varsayılan tarayıcıyı Mac'te programlı olarak keşfedin


1

Hangi uygulamanın http ve https bağlantılarını açtığını bulmak için komut satırını kullanmak istiyorum. Bunu bir komut dosyasında yapmam gerekiyor. 'Varsayılanları oku com.apple.LaunchServices' komutunu çalıştırarak yanıtı görebiliyorum ancak bu sözlüğü kendim ayrıştırmak istemiyorum.

Yanıtlar:


1

Apple Script'in özellik listesi dosyalarını ayrıştırmak için yerleşik yetenekleri vardır. Macscripter.net üzerinde StefanK bir pasaj sağlıyor Zaten bir süre önce bana yardımcı oldu. Kolayca bir komut dosyası olarak kaydedebilir ve yürütebilirsiniz, kullanıcı bin dizinine (ki $PATH ):

#!/usr/bin/osascript

tell (system attribute "sysv") to set MacOS_version to it mod 4096 div 16
if MacOS_version is 5 then
    set {a1, a2} to {1, 2}
else
    set {a1, a2} to {2, 1}
end if
set pListpath to (path to preferences as Unicode text) & "com.apple.LaunchServices.plist"
tell application "System Events"
    repeat with i in property list items of property list item 1 of contents of property list file pListpath
        if value of property list item a2 of i is "http" then
            return value of property list item a1 of i
        end if
    end repeat
    return "com.apple.Safari"
end tell

1

Diğer seçenekler:

VERSIONER_PERL_PREFER_32_BIT=1 perl -MMac::InternetConfig -le 'print +(GetICHelper "http")[1]'

tell application "System Events"
    try
        value of property list item "LSHandlerRoleAll" of (property list item 1 of property list item "LSHandlers" of property list file ((path to preferences as text) & "com.apple.LaunchServices.plist") where value of property list items contains "http")
    on error
        "com.apple.safari"
    end try
end tell

http://www.hamsoftengineering.com/codeSharing/defaultApplication/defaultApplication.html :

$ DefaultApplication -url http:
/Applications/Safari.app
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.