আমি জানতে চাই যে কীভাবে বর্তমান সক্রিয় উইন্ডোটির উইন্ডো শিরোনামটি দখল করতে হবে (যেমন ফোকাসযুক্ত একটি) সি # ব্যবহার করে।
আমি জানতে চাই যে কীভাবে বর্তমান সক্রিয় উইন্ডোটির উইন্ডো শিরোনামটি দখল করতে হবে (যেমন ফোকাসযুক্ত একটি) সি # ব্যবহার করে।
উত্তর:
আপনি এখানে সম্পূর্ণ উত্স কোড সহ এটি কীভাবে করতে পারেন তার উদাহরণ দেখুন:
http://www.csharphelp.com/2006/08/get-current-window-handle-and-caption-with-windows-api-in-c/
[DllImport("user32.dll")]
static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")]
static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int count);
private string GetActiveWindowTitle()
{
const int nChars = 256;
StringBuilder Buff = new StringBuilder(nChars);
IntPtr handle = GetForegroundWindow();
if (GetWindowText(handle, Buff, nChars) > 0)
{
return Buff.ToString();
}
return null;
}
আরও নির্ভুলতার জন্য @ ডাওগ ম্যাকক্লিয়েন মন্তব্যে সম্পাদিত ।
using System.Runtime.InteropServices;
এবং dll আমদানি এবং স্থিতিশীল বাহ্যিক লাইনগুলি কোথায় রাখবে তা আবার। ক্লাসের মধ্যে এটি আটকানো
আপনি যদি ডাব্লুপিএফ সম্পর্কে কথা বলছিলেন তবে ব্যবহার করুন:
Application.Current.Windows.OfType<Window>().SingleOrDefault(w => w.IsActive);
উইন্ডোজ এপিআই ব্যবহার করুন। কল করুন GetForegroundWindow()
।
GetForegroundWindow()
hWnd
সক্রিয় উইন্ডোতে আপনাকে একটি হ্যান্ডেল (নাম দেওয়া ) দেবে।
ডকুমেন্টেশন: গেটফোরগ্রাউন্ড উইন্ডো ফাংশন | মাইক্রোসফ্ট ডক্স
গেটফোরগ্রাউন্ড উইন্ডো ফাংশনের উপর ভিত্তি করে | মাইক্রোসফ্ট ডক্স :
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int count);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern int GetWindowTextLength(IntPtr hWnd);
private string GetCaptionOfActiveWindow()
{
var strTitle = string.Empty;
var handle = GetForegroundWindow();
// Obtain the length of the text
var intLength = GetWindowTextLength(handle) + 1;
var stringBuilder = new StringBuilder(intLength);
if (GetWindowText(handle, stringBuilder, intLength) > 0)
{
strTitle = stringBuilder.ToString();
}
return strTitle;
}
এটি ইউটিএফ 8 অক্ষর সমর্থন করে।
যদি এটি ঘটে তবে আপনার এমডিআই অ্যাপ্লিকেশন থেকে আপনার বর্তমান সক্রিয় ফর্মটি প্রয়োজন : (এমডিআই- মাল্টি ডকুমেন্ট ইন্টারফেস)।
Form activForm;
activForm = Form.ActiveForm.ActiveMdiChild;
আপনি প্রক্রিয়া শ্রেণি ব্যবহার করতে পারেন এটি খুব সহজ। এই নেমস্পেসটি ব্যবহার করুন
using System.Diagnostics;
যদি আপনি সক্রিয় উইন্ডো পেতে একটি বোতাম করতে চান।
private void button1_Click(object sender, EventArgs e)
{
Process currentp = Process.GetCurrentProcess();
TextBox1.Text = currentp.MainWindowTitle; //this textbox will be filled with active window.
}