Win32 API ব্যবহার করে C # এ ফ্রন্টে উইন্ডো আনছে

আমি একটি অ্যাপ্লিকেশন লিখছি যা একটি বহিরাগত অ্যাপ্লিকেশন উইন্ডোটিকে পুরোভূমিতে আনতে হবে, এবং অগত্যা ফোকাস চুরি করা হবে না (ব্যবহারকারী সেটিংস ফোকাস চুরি / চলা করতে টগল করতে পারে)।

Win32 API ব্যবহার করে এই সম্পর্কে সবচেয়ে ভাল উপায় কি? আমি SetForeground চেষ্টা করেছি() কিন্তু এটি সবসময় ফোকাস চুরি এবং সুসংগতভাবে কাজ করে না।

এই সম্পর্কে সবচেয়ে ভাল উপায় কি? কোন চিন্তা?

0
ro fr hi

5 উত্তর

আপনি SetWindowPos ব্যবহার করার চেষ্টা করেছেন এটি Windows- এ z-order সরাতে, পুনরায় আকার এবং সেট করার জন্য ক্যানোনিকাল ফাংশন। আপনি ব্যবহার করতে পারেন SWP_NOACTIVATE পতাকা আছে। দেখুন http://msdn.microsoft.com/en -us / লাইব্রেরি / ms633545 (VS.85) .aspx । আমি অন্য একটি প্রক্রিয়ার অন্তর্গত একটি উইন্ডোতে এটি চেষ্টা করা হয়নি, কিন্তু এটি সম্ভবত একটি চেষ্টা মূল্যবান।

0
যোগ

আপনি ফোকাস চুরি না করার জন্য BringWindowToTop ফাংশনটি চেষ্টা করতে পারেন। আমি এটা ব্যবহার করা হয়নি, কিন্তু আপনি যা খুঁজছেন তা মনে হচ্ছে।

0
যোগ

SetForegroundWindow, SetActiveWindow এবং BringWindowToTop এর মধ্যে পার্থক্য কি? মনে হচ্ছে যেন তারা একই জিনিস করে।

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

0
যোগ

SetWindowPos + SWP_NOACTIVATE কাজ করে

0
যোগ

আপনি উইন্ডোর HWND পেতে FindWindow ব্যবহার করতে পারে, তারপর Win32 API- এ পাওয়া BringWindowToTop ফাংশন ব্যবহার করুন।

0
যোগ