سلام دوستان
چه جوری باید توی دات نت عنوان پنجره فعال رو به دست بیاریم؟
Printable View
سلام دوستان
چه جوری باید توی دات نت عنوان پنجره فعال رو به دست بیاریم؟
شاید قطعه کدی مشابه ذیل هم بتواند کمکتان کند :کد:http://www.codeguru.com/vb/controls/vb_shell/article.php/c3053
کد:For Each frm As System.Windows.Forms.Form In System.Windows.Forms.Application.OpenForms
If frm.Focused Then MsgBox(frm.Name)
Next
ممنون از کدی که دادین اما این کد برای داخل برنامه هست
من می خوام مثلا وقتی My computer فعال هست عنوان My Computer رو چاپ کنه
سلام
کدی که دوستمان bad_boy_2007 در اول لینک دادند مربوط به خارج از محیط برنامه و در ویندوز است.
کافی است از API های GetForegroundWindow و GetWindowText استفاده کنید.
موفق باشید.
من از اونم استفاده کردم اما به جای عنوان پنجره یه سری عدد میده
از دوستان کسی جواب سوال منو نمی دونه من هر چی با نابع های معرفی شده ور رفتم نتونستم عنوان پنجره رو بگیرم
سلام
راه همان دو API است ولی کد دوستمان bad_boy_2007 مربوط به VB6 است.
فقط باید به VB9 تبدیل میکردید، شبیه این:
متد جدید تعریف شده دستی GetForegroundWindowText در کد فوق همکاره عنوان پنجره فعال را باز میگرداند.کد:Private Declare Function GetForegroundWindow Lib "user32.dll" () As IntPtr
Private Declare Unicode Function GetWindowTextW Lib "user32.dll" (ByVal hwnd As IntPtr, ByVal lpString As System.Text.StringBuilder, ByVal cch As Integer) As Integer
Public Shared Function GetForegroundWindowText() As String
Dim hwnd As IntPtr = GetForegroundWindow()
If (hwnd = IntPtr.Zero) Then Return Nothing
Dim ret As New System.Text.StringBuilder(1024)
GetWindowTextW(hwnd, ret, ret.Capacity)
If (ret.Length <= 0) Then Return Nothing
Return ret.ToString()
End Function
(با فارسی هم هیچ مشکلی ندارد)
کافی است امتحان کنید.
موفق باشید.