কোন প্রোগ্রাম আমার ম্যাকের উপর ফোকাস চুরি করছে তা সনাক্ত করার কোনও উপায় আছে?


23

আমার ম্যাকের কিছু অ্যাপ্লিকেশানটিতে আমি কীবোর্ড ফোকাসটি চুরি করে বর্তমান সমস্যা পেয়েছি (বর্তমান উইন্ডোর শিরোনাম বারটি নিষ্ক্রিয় হয়ে যায়)। তবে এটি আসলে নিজের নিজস্ব কোনও উইন্ডো বা মেনু বার স্থাপন করছে না এবং এটি কীবোর্ড শর্টকাটগুলিতে সনাক্তকরণের মতো প্রতিক্রিয়া জানায় না।

মেনু বার বা ডক আইকন নেই এমনগুলির মধ্যে একটিতে কী-বোর্ড কী ফোকাস রয়েছে তা নির্ধারণ করার কোনও উপায় আছে? আমি একটি বিল্ট-ইন বৈশিষ্ট্য জানি যা প্রায় এটি করে; ফোর্স প্রস্থান ডায়ালগ, যদি কীবোর্ড থেকে আহ্বান করা হয়, নির্বাচিত ফোকাসযুক্ত অ্যাপ্লিকেশনটির সাথে খুলবে। তবে এটি কেবলমাত্র হ'ল-এ-ডক-আইকন অ্যাপ্লিকেশনগুলি তালিকাভুক্ত করে, সুতরাং এটি এই ক্ষেত্রে সহায়তা করে না।

এটি যখন আমি 10.8 থেকে 10.9 আপগ্রেড করেছি তখন প্রায় ঘটতে শুরু করে; আমার সন্দেহ হয় যে আমি ইতিমধ্যে ইনস্টল করে থাকা ওএসের সাথে আপগ্রেড করা অ্যাপ্লিকেশনগুলির মধ্যে একটি নতুনভাবে দুর্ব্যবহার করছে।

আমি অল্প পরিমাণ প্রোগ্রামিং (বা অ্যাপলস্ক্রিপ্ট, বলি), বিকাশকারী সরঞ্জামের ব্যবহার ইত্যাদি জড়িত সমাধানগুলির জন্য উন্মুক্ত open তবে "এটি যতক্ষণ না দূরে না আনার বিষয়গুলি আনইনস্টল করুন" এর মতো নয় কারণ এই মুহুর্তে এটি অত্যধিক ব্যাহত হবে। আমি নিশ্চিতভাবে অ্যাপ্লিকেশনটি সনাক্ত করতে এবং একটি বাগ রিপোর্ট ফাইল করতে বা এর কনফিগারেশনটি ঠিক করতে চাই।

আমার গবেষণা কেবল অ্যাপল সমর্থন সম্প্রদায়গুলিতে একই রকম অনুরোধ করে এমন কয়েকটি থ্রেড আপ করেছে যেগুলির কোনও উত্তর নেই।


আমি এটাও দেখছি। 10.9.4। সম্ভবত আমার চলমান প্রধান অ্যাপ্লিকেশনগুলি ভাগ করে নেওয়া কোনও সাধারণতার কথা তুলে ধরেছে? ক্রোম, ফায়ারফক্স, সাফারি, উয়ালা, ড্রপবক্স, নাইট্রাস, 1 পাসওয়ার্ড, গুগল হ্যাঙ্গআউটস, এভারনোট, স্কিচ, গুগল ড্রাইভ, টাইম মেশিন, এয়ারপোর্ট বেস স্টেশন এজেন্ট, অ্যান্ড্রয়েড ফাইল স্থানান্তর এজেন্ট। অন্যথায় ... কোন সহজ সমাধান যা আমি জানি আমার সন্দেহ জি হ্যাঙ্গআউটস।
জিজিসি

উত্তর:


21

নিম্নলিখিত অ্যাপ্লিকেশনটি find_focus_stealer.pyফাইলে নিচের কোডটি সংরক্ষণ করে এবং python find_focus_stealer.pyটার্মিনালের মাধ্যমে চালিয়ে আপনি সেই অ্যাপটি খুঁজে পেতে পারেন ।

স্ক্রিপ্টটি চালানো শুরু করুন - এটি প্রতি সেকেন্ডে সক্রিয় অ্যাপের নাম মুদ্রণ করবে। যথারীতি কাজ চালিয়ে যান, সমস্যাটি হওয়ার জন্য অপেক্ষা করুন এবং কয়েক সেকেন্ড পরে টার্মিনালে আউটপুটটি দেখুন। তোমার অপরাধী হবে

আমার ক্ষেত্রে এটি ছিল সিম্যানটেক অ্যান্টিভাইরাস ব্যাকগ্রাউন্ড অ্যাপ (SymUIAgent.app)।

#!/usr/bin/python

from AppKit import NSWorkspace
import time
t = range(1,100)
for i in t:
    time.sleep(3)
    activeAppName = NSWorkspace.sharedWorkspace().activeApplication()['NSApplicationName']
    print activeAppName

ক্রেডিট iMichael_ মধ্যে এই অ্যাপল আলোচনা থ্রেড


আমি এই স্ক্রিপ্ট চেষ্টা করেছিলাম। আশ্চর্যজনকভাবে প্রতিবার ইভেন্ট-চুরির ঘটনা ঘটলে স্ক্রিপ্টটি চলমান বন্ধ হয়ে যায়। উইন্ডোতে সর্বশেষ লগ স্টেটমেন্ট পূর্ববর্তী লগ স্টেটমেন্টগুলির চেয়ে আলাদা নয়, অর্থাত্ কোনও সুস্পষ্ট অপরাধী নয়। স্ক্রিপ্টটি সবেমাত্র বের হচ্ছে, কোনও ত্রুটি নেই।
ডায়োডিয়াস - জেমস ম্যাকফার্লেন

2
এই অজগর প্রোগ্রামটি দুর্দান্ত কাজ করেছে, তবে আমাকে অ্যাপল ইনস্টলড পাইথনটি ব্যবহার করতে হয়েছিল। আমি পাইথন ২.7.৮ ইনস্টল করেছিলাম এবং অ্যাপকিট মডিউলটি অন্তর্ভুক্ত নয়। এছাড়াও আমার মেশিনে আপত্তিজনক অ্যাপটি ছিল: SymUIAgent.app সিম্যানটেক কুইক মেনু।
ক্যামেরন গুডাল

2
@ ডায়োডিয়াস এটি থেকে বেরিয়ে যাওয়ার কারণ নয় কারণ এটি যে অ্যাপ্লিকেশনটিকে কেন্দ্র করে চুরি করেছিল এটি শেষ হয়েছিল, তবে এটি কেবল 100 সেকেন্ডের জন্য চালানোর জন্য লেখা হয়েছিল। এটিকে চালিত করার জন্য আমি সেই টার্মিনাল উইন্ডোতে Ctrl + c for i in t:while 1:
টিপ

1
নিস! আমার জন্য, এটি ছিল গুগল ড্রাইভ। অ্যাপ্লিকেশন। আমি আপনার স্ক্রিপ্টে একটি সামান্য আপডেট করেছি যা আমি একটি পৃথক উত্তরে পোস্ট করব। ধন্যবাদ!
মেডমন্ডস

1
আপনি যদি মুখোমুখি হন no module named appkit, তবে চালান easy_install pipএবং pip install pyobjc। আমার জন্য এটি Google Driveআমার ফোকাসটি চুরি করছিল
মিহাই

14

@ এসের স্ক্রিপ্টের একটি সামান্য আপডেট এখানে দেওয়া আছে যা আপনি এটি হত্যা না করা অবধি চলবে এবং কেবলমাত্র অ্যাপের নাম মুদ্রণ হবে যখন তা পরিবর্তন হবে। আবার এই কোডটি কোনও ফাইলে সংরক্ষণ করুন find_focus_stealer.pyএবং তারপরে এটি চালানোর চেষ্টা করুন python find_focus_stealer.py

#!/usr/bin/python                                                                                                       

try:
    from AppKit import NSWorkspace
except ImportError:
    print "Can't import AppKit -- maybe you're running python from brew?"
    print "Try running with Apple's /usr/bin/python instead."
    exit(1)

from datetime import datetime
from time import sleep

last_active_name = None
while True:
    active_app = NSWorkspace.sharedWorkspace().activeApplication()
    if active_app['NSApplicationName'] != last_active_name:
        last_active_name = active_app['NSApplicationName']
        print '%s: %s [%s]' % (
            datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
            active_app['NSApplicationName'],
            active_app['NSApplicationPath']
        )
    sleep(1)

আমি আমার ম্যাকের ফোকাস-চুরির অপরাধী হিসাবে "গুগল ড্রাইভ" ট্র্যাক ডাউন করতে এটি ব্যবহার করতে সক্ষম হয়েছি।


গুড শো, স্যার!
ব্রুনো ব্রোনোস্কি

এটি আমার পক্ষে কাজ করেছে। আমার ক্ষেত্রে ফোকাস-চুরির অ্যাপটি ছিল বেটারটাইচটুল সংস্করণ 2.636
ররি ও'কেনে

1

@ এস এর উত্তরে বর্ণিত স্ক্রিপ্টের উন্নত সংস্করণটি এখানে রয়েছে :

#!/usr/bin/python
# Prints current window focus.
# See: /apple//q/123730
from AppKit import NSWorkspace
import time
workspace = NSWorkspace.sharedWorkspace()
active_app = workspace.activeApplication()['NSApplicationName']
print('Active focus: ' + active_app)
while True:
    time.sleep(1)
    prev_app = active_app
    active_app = workspace.activeApplication()['NSApplicationName']
    if prev_app != active_app:
        print('Focus changed to: ' + active_app)

এটি সক্রিয় অ্যাপ্লিকেশনটির নাম মুদ্রণ করবে যাতে ফোকাস থাকে এবং এটি প্রতি সেকেন্ডে পরীক্ষা করে পরীক্ষা করে পরিবর্তন করা হয় কিনা তা সনাক্ত করবে।

সম্পর্কিত স্ক্রিপ্ট: গিস্টে কোন অ্যাপ্লিকেশন বা প্রক্রিয়া OSXফোকাস চুরি করছে তা সনাক্ত করুন fy

ব্যবহার:

  1. উপরের স্ক্রিপ্টটি একটি ফাইলে সংরক্ষণ করুন get_active_focus.py
  2. chmod +x get_active_focus.pyকমান্ড দিয়ে এক্সিকিউটিভ বৈশিষ্ট্য নির্ধারণ করুন ।
  3. দিয়ে ফাইলটি চালান ./get_active_focus.py

আউটপুট:

$ ./get_active_focus.py
Active focus: Terminal
Focus changed to: Google Chrome

0

সক্রিয় প্রক্রিয়াগুলির জন্য সম্ভবত ক্রিয়াকলাপ মনিটর পরীক্ষা করা হচ্ছে? অ্যাপ্লিকেশন ন্যাপের যে কোনও কিছুই সহজেই এড়িয়ে যাওয়া যায় এবং এটি শিকারকে আরও খাটো করে তুলতে পারে।


হ্যাঁ, সমস্যাটি সম্পর্কে অনুমানকে জানানোর এটি একটি উপায় হবে তবে আমি এমন কিছু সন্ধান করছি যা আসলে তথ্য সরাসরি প্রাপ্ত করে।
কেভিন রেড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.