একটি স্ক্রিপ্টে আমি নির্দিষ্ট টিটিআই ডিভাইসযুক্ত টার্মিনাল.এপ উইন্ডোটি সন্ধান করার চেষ্টা করছি এবং সেই উইন্ডোটিকে শীর্ষে তুলতে চাই। আপেল স্ক্রিপ্টে আমার এখন পর্যন্ত যা আছে তা এখানে:
tell application "System Events"
set foundWin to false
if (name of processes) contains "Terminal" then
tell application "Terminal"
set theTabs to first tab of every window where tty is "$(tty)"
repeat with theTab in theTabs
if class of theTab is tab then
set theWin to (first window whose tabs contains theTab)
set selected tab of theWin to theTab
set foundWin to true
end if
end repeat
end tell
end if
if foundWin then
--RAISE THE WINDOW?!
end if
end tell
আমি যেখানে আটকে যাচ্ছি তা হ'ল "উইন্ডো উত্থাপন" অংশ।
এখানে কিছু জিনিস যা আমি চাই তা পুরোপুরি নয়:
set frontmost of theWin to true
- এটি উইন্ডোটি টার্মিনাল.এপ উইন্ডোগুলির গোষ্ঠীর সামনে নিয়ে আসে তবে এটি অন্য উইন্ডোর উপরে উঠায় না।
tell application "Terminal" to activate
- এটি প্রতিটি টার্মিনাল উইন্ডোটিকে একটি বড় স্ট্যাকের সামনে নিয়ে আসে। আমি শুধু একটি উইন্ডো চাই।
tell application "System Events"
set theSysWin to first window of process "Terminal" whose name is (name of theWin)
perform action "AXRaise" of theSysWin
end tell
এটি প্রায়শই এটি করে, তবে এটি যা করে তা হল টার্মিনাল উইন্ডোটিকে # 2 পজিশনে উন্নীত করা, এখনও সক্রিয় উইন্ডোর নীচে (যদি সক্রিয় অ্যাপটি টার্মিনাল.এপ ব্যতীত অন্য কিছু হয়))
click theSysWin at {10,50}
- কিছুই করার মনে হচ্ছে না।
click first static text of theSysWin
- কিছুই করার মনে হচ্ছে না।
এই কাজ করতে একটি উপায় আছে কি? এটি অ্যাপ্লিক্রিপ্টে থাকতে হবে না।
ওডিজে-সি / কোকো কল উদ্ধৃত করে আমি এই ওয়েব পৃষ্ঠাটি ( http://blog.coriolis.ch/2008/03/04/bring-any-window-to-the-front/ ) খুঁজে পেয়েছি সম্পাদনা করুন:
SetFrontProcessWithOptions(&psn, kSetFrontProcessFrontWindowOnly);
আমি ওজজিসি বা কোকো উভয়ের সাথেই পরিচিত নই এবং এটি (শেষ পর্যন্ত) শেল স্ক্রিপ্ট থেকে আহবান করা হয়েছে, সুতরাং সেখান থেকে কোথায় যাবেন তা নিশ্চিত হন না।
SetFrontProcessWithOptions(&psn, kSetFrontProcessFrontWindowOnly);
আমি ওজেক্ট বা কোকোয়ের সাথে যথেষ্ট পরিচিত নই যদিও সেখান থেকে কোথায় যেতে হবে তা জানতে।