একটি অ্যাক্টিভেট না করে এবং অন্যান্য উইন্ডোটিকে সামনে না এনে আমি কীভাবে অ্যাপলস্ক্রিপ্ট সহ একটি নির্দিষ্ট উইন্ডোটিকে ফোকাস করব?


18

আমি আসলে কোনও "অ্যাক্টিভেট" না করে কোনও অ্যাপ্লিকেশনের একটি নির্দিষ্ট উইন্ডো নির্বাচন / ফোকাস করার জন্য ডাব্লু / অ্যাপলস্ক্রিপ্টের জন্য একটি পদ্ধতির সন্ধান করছি যা সমস্ত উইন্ডো সামনে নিয়ে আসে ।

আমার এখন পর্যন্ত যা আছে তা এখানে:

tell application "Google Chrome"
    set windowTitle to title of first window whose title contains "whatever"
end tell
tell application "System Events" to tell process "Google Chrome"
    click menu item windowTitle of menu 1 of menu bar item "Window" of menu bar 1
end tell
tell application "Google Chrome" to activate    

সমস্যাটি হ'ল শেষ লাইনে "অ্যাক্টিভেট"। এটি সবকিছু সামনে এনেছে, তবে আমি কেবল একটি উইন্ডো চাই।

উত্তর:


15

আপনি ঠিক বলেছেন যে activateকমান্ডটি সমস্ত উইন্ডো উত্থাপন করে। openশেল কমান্ড শুধুমাত্র একটি জানালা যদিও উত্থাপন:

tell application "Google Chrome" to set index of window 1 where title contains "whatever" to 1
delay 0.05
do shell script "open -a Google\\ Chrome"

আহ, এটা দুর্দান্ত। দুর্ভাগ্যক্রমে, যদি ক্রোম ইতিমধ্যে "যাই হোক না কেন" উইন্ডোটি কেবল সামনের দিকে ঝলক দেয় এবং বর্তমানে মনোনিবেশ করা উইন্ডোটি জিততে পারে তবে এটি নিকটে আসে। আমি যদি ডাব্লু / ওপেন -a বরাবর "মেনু আইটেম ক্লিক করুন" কৌশলটি ব্যবহার করি তবে এটি কাজ করে বলে মনে হচ্ছে তবে এর জন্য অ্যাক্সেসযোগ্যতা দরকার। কোন ধারণা কি এটি পেতে?
অ্যারন জেনসেন

1
আপনার দুটি লাইনের মধ্যে কেবল "বিলম্ব 0.05" যুক্ত করা পুরোপুরি কার্যকর বলে মনে হচ্ছে। আবার ধন্যবাদ!
অ্যারন জেনসেন

আমি এটির পুনরুত্পাদন করতে পারিনি, তবে আপনি চেষ্টাও করতে পারেন tell application "System Events" to tell process "Google Chrome" to perform action "AXRaise" of window 1
ল্রি

3
আমি পেয়ে করছি:execution error: The variable title is not defined. (-2753)
স্মৃতিভারাতুর

3
পুনরায়: কার্যকর করার ত্রুটি পরিবর্তন titleকরুন name
ভন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.