الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Enumwindows()?!

مغلق
بدأه students في 27 فبراير 2005 · 5 رد · 641 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

أريد أن أعرف ما هي الطريقة التي تستدعى بها هذة الدالة وكيفية اسناد البارمترات لها في الــ C# وياريت ولو بمثال بسيط جدا،حيث أني رايت الطريقة التي تستخدم بها هذة الدالة في الــ VB6 وحاولت أن أكتب المماثل في الـ C# ولكن بدون جدوى .

وشكرا. (h)

سبحان الله وبحمده سبحان الله العظيم

#2

وييييييييينكم أخواني وينك أخي ahabdeen. :(

سبحان الله وبحمده سبحان الله العظيم

#3
[DllImport("user32.dll")]# 
private static extern bool EnumWindows(EnumWindowsProc proc, IntPtr lParam); 

private delegate bool EnumWindowsProc(IntPtr hWnd, IntPtr lParam); 

[DllImport("user32.dll", CharSet=CharSet.Auto)] 
private static extern IntPtr GetWindowText(IntPtr hWnd, 
[Out] string title, IntPtr maxCount); 

public void EnumWindows() 
{ 
EnumWindows(new EnumWindowsProc(Callback), IntPtr.Zero); 
} 

private bool Callback(IntPtr hWnd, IntPtr lParam) 
{ 
string title = new string('\0', 260); 
if (GetWindowText(hWnd, title, 260) != IntPtr.Zero) 
Log(string.Format("{0:x8}: {1}", hWnd, title); 
}
#4

جزاك الله الف خير أخي ismaee سأحاول تطبيق الكود وفهمة . (h)

سبحان الله وبحمده سبحان الله العظيم

#5

أخي الكريم ismaee :

من الكود الذي أعطيتني لدي التساؤلات التالية:

لاحظت أن الدالتين الموجودتين من نوع intptr وكذلك البارمترات التابعة لها :

أولا: هل أتخذ القاعدة التالية(أن أي دالة تتعامل مع

الـ handel نعرفها من نوع intptr مع البارمترات التابعة لها مثل الدوال:

getwindow()

findwindow()

getclassname()

)

ثانيا:- كيف يتم التعامل مع المتغيرات من نوع intptr أي كيف نسند اليها قيمة معينة حيث عندما كنت أسند

القيمه 5 إلى متغير من النوع السابق يرفض الـ compiler ، كيف ننقص منها قيمة معينة أو نجمع معها إلخ....

وشكرا. (h)

سبحان الله وبحمده سبحان الله العظيم

#6

بالنسبة لـ IntPtr نعم يُستخدم للتعبير عن قيمة الـ Handle

IntPtr p = new IntPtr(1); هكذا تصرح عن متحول من النوع IntPtr وإذا أردت أن تسند قيمة يجب أن تكون من النوع IntPtr أيضاً

أما إذا أردت تغيير قميتها فأنصحك بالطريقة التالية:

IntPtr p = new IntPtr(p.ToInt32() - 10);

هذا الموضوع مغلق.

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…