2012-08-27 11 views
10

मुझे पता है कि MacOS में कई तरीकेSafari खोलें और प्रक्रिया को संभालने

open -a Safari http://stackoverflow.com 

की तरह या एक AppleScript

tell application "Safari" to open location "http://stackoverflow.com/" 
के रूप में कमांड लाइन से किसी दिए गए यूआरएल के साथ सफारी खोलने जा रहे हैं मिलता है

लेकिन अगर मैं प्रक्रिया शुरू कर रहा हूं उदाहरण के लिए प्रोग्रामेटिक रूप से मैं केवल खुले/सेबस्क्रिप्ट प्रक्रिया के लिए हैंडल प्राप्त करूंगा (जो सफारी शुरू होने के ठीक बाद बाहर निकलता है)।

मैं किसी दिए गए यूआरएल के साथ सफारी कैसे शुरू कर सकता हूं और सफारी प्रक्रिया में हैंडल प्राप्त कर सकता हूं (यह अभी भी मेरे बाहर है क्यों यह सफारी निष्पादन योग्य को कमांड लाइन तर्क के रूप में यूआरएल पास नहीं कर सकता है)?

उत्तर

6
AppleScript में

,

tell application "Safari" to open location "http://stackoverflow.com/" 

यूआरएल

साथ सफारी खोलने के बाद आप द्वारा

tell application "System Events" to set proc to application process "Safari" 

proc वस्तु प्रक्रिया वस्तु प्राप्त पीआईडी ​​है, आईडी और आदि इसे से जुड़े बंडल जाएगा सकता है।

यह भी ध्यान दें कि सफारी 5+ multi-process architecture में चलता है: एक मास्टर प्रक्रिया और कई प्रतिपादन प्रक्रिया, उपर्युक्त कोड आपको केवल मास्टर प्रक्रिया प्राप्त करेगा; प्रतिपादन प्रक्रियाएं आसानी से सुलभ नहीं होती हैं, न ही यह किसी व्यक्तिगत प्रतिपादन प्रक्रिया को नियंत्रित करने के लिए अधिक समझ में आता है।

संबंधित मुद्दे