এটা কিসের মতো দেখতে?
এই সমস্যার কাছে কেবল একটি আচরণ রয়েছে এবং এটি হ'ল সর্বদা শীর্ষস্থানীয় আচরণ।
কিছু কোডের টুকরো, সম্ভবত প্রোগ্রামটি থেকেই আপনার উইন্ডোর সম্পত্তি পরিবর্তন করা যেতে পারে ...
উইন্ডোটি কীভাবে "সর্বদা শীর্ষে" থাকবে?
সর্বদা শীর্ষে থাকে এমন একটি ফর্ম কীভাবে তৈরি করবেন তা আমাদের দেখায় যে সেটওয়াইন্ডোপোসকে দ্বিতীয় প্যারামিটারের সাথে HWND_TOPMOST এ সেট করা হয় , এটি অবিলম্বে এটি শীর্ষে রাখে এবং রাখে।
দ্রুত গুগলের পরে, এই ফলাফলটি ব্যবহারকারী 32.dll প্রকাশ করে কে এই ফাংশনের মালিক হিসাবে করবে।
আমার উইন্ডো কে "সর্বদা শীর্ষে" সেট করে?
এখন যখন আমাদের জ্ঞান আছে যা ফাংশন বলা হয়, আমরা জানতে চাই যে ফাংশনটি কখন ডাকা হয়। এটি আমাদের স্ট্যাক ট্রেসগুলি তৈরি করতে এবং সেগুলি বিশ্লেষণ করার প্রয়োজন হবে, যখন উইন্ডোজ পারফরম্যান্স টুলকিট এটি করতে পারে আমরা রোহিতব বত্রা দুর্দান্ত এপি মনিটরটি লিখেছি বলে খুব খুশি হতে পারি ।
দুঃখিত, তবে এটি কঠোর হোমওয়ার্ক:
এখন, আপনি কিছু প্রক্রিয়া হুক করতে চাইবেন। সতর্কতার শব্দ: পিআইডি অনুসারে বাছাই করুন এবং এর winlogon.exe
চেয়ে কম পিআইডি রয়েছে এমন কোনও কিছুতে প্রবেশ করবেন না বা যদি আপনি এটি করেন তবে আপনার সিস্টেমটি হ্যাং বা ক্র্যাশ হবে। আপনি অন্যান্য প্রক্রিয়াগুলির সাথেও এই আচরণটি অনুভব করতে পারেন তবে আপনি কোনটিকে হুক করতে পারেন তা দেখার মতো এটি একটি পরীক্ষা এবং ত্রুটির মতো। তাই:
- পিআইডি অনুসারে বাছাই করুন এবং এর চেয়ে নতুন কিছু হুক করুন
winlogon.exe
।
- যদি সবকিছু ঠিকঠাক হয় তবে আপনি হুকড প্রক্রিয়া ডায়ালগের থ্রেডগুলি দিয়ে দেখতে পারেন ।
এটির মতো দেখতে এমন একটি এপিআই কল সন্ধান করুন:
সেটউইনডোপোস (0x000000000000004343c, এইচডব্লিউ END_BOLDBOTTOM | 0x00000000fffffffe , 0, 0, 0, 0,
এসডাব্লুপি_নোঅ্যাক্টিভিট | এসডাব্লুপি_নোমোভে | এসডব্লুপি_নোসিজ)
HWND_BOTTOM এর সাথে সেট উইন্ডোপোসে কল | 0x00000000fffffffe ( -2 + 1 = -1 = HWND_TOPMOST ) আমরা যা করছি তার পরে এবং এই কলটি যে প্রক্রিয়াটি করে তা হ'ল আপনার সমস্যার জন্য আপনার দোষ দেওয়া উচিত।
আমি হাল ছেড়ে দিই ... আমি কীভাবে আমার "সর্বদা শীর্ষ" সমস্যার প্রতিকার করব?
আগুনের সাথে যুদ্ধের আগুন, আমরা সমস্ত উইন্ডো HWND_NOTOPMOST এ সেট করতে যাচ্ছি ।
হাই, প্রোগ্রামিং! তবে, এটি খুব সহজে স্ক্রিপ্টিংয়ের মাধ্যমেও করা যেতে পারে ...
সুতরাং একটি খুব সাধারণ হোমওয়ার্ক টাস্ক:
অটোআইটি ভি 3 ডাউনলোড করুন ।
একটি বাইবায়টপমস্ট.অউ 3 ফাইল তৈরি করুন যা এতে রয়েছে:
While 1
$var = WinList()
For $i = 1 to $var[0][0]
WinSetOnTop($var[$i][1], "", 0)
Next
Sleep(5000)
WEnd
এটি আপনার স্টার্ট আপ ফোল্ডারে রাখুন এবং এটি চালান বা পুনরায় বুট করুন।
বা আপনি যদি হোমওয়ার্ক একেবারেই পছন্দ না করেন তবে এই জিপ ফাইলটি ডাউনলোড করুন আমার তৈরি ।
আনন্দ কর... :-)
PS: আপনি এই সর্বশেষ ক্ষেত্রে "সর্বদা শীর্ষের" বৈশিষ্ট্যটি ব্যবহার করতে পারবেন না। হয় সমস্যা সমাধান বা কাজের আশেপাশে ... ;-)