با سلام
یه سوال داشتم و اون اینه که چطور می تونم هندل تمام اجزای یه برنامه رو که میشه روشون کلیک کرد رو بدست بیارم من حدود 60 صفحه خوندم ولی نتونستم به جوابم برسم
حال روشنتر میگم
یه سری برنامه هایی هست تو سایت که به وسیله اونا میشه هندل یه دکمه رو در یه برنامه پیدا کرد ولی بعضی از دکمه ها در برنامه هندلشون مشخص نیست لطفا کمک کنید که چگونه این هندل ها رو میشه پیدا کرد آیا امان داره هندل نداشته باشند تا جایی که من می دونم نه.
مرسی
دوستان اینو هم اضافه می کنم من بلدم که مثلا با تابع finwindiows میشه هندل رو پیدا کرد ولی رو بعضی از دکمه ها جواب نمیده لطفا کمک کنید.
شما میتونین از تابع findwindowex برای این کار استفاده کنین چون تابع findwindow فقط هندل فورم های اصلی رو برمیگردونه
کد:
The FindWindowEx function retrieves the handle to a window whose class name and window name match the specified strings. The function searches child windows, beginning with the one following the given child window.
HWND FindWindowEx(
HWND hwndParent, // handle to parent window
HWND hwndChildAfter, // handle to a child window
LPCTSTR lpszClass, // pointer to class name
LPCTSTR lpszWindow // pointer to window name
);
Parameters
hwndParent
Identifies the parent window whose child windows are to be searched.
If hwndParent is NULL, the function uses the desktop window as the parent window. The function searches among windows that are child windows of the desktop.
hwndChildAfter
Identifies a child window. The search begins with the next child window in the Z order. hwndChildAfter must be a direct child window of hwndParent, not just a descendant window.
If hwndChildAfter is NULL, the search begins with the first child window of hwndParent.
Note that if both hwndParent and hwndChildAfter are NULL, the function searches all top-level windows.
lpszClass
Points to a null-terminated string that specifies the class name or is an atom that identifies the class-name string. If this parameter is an atom, it must be a global atom created by a previous call to the GlobalAddAtom function. The atom, a 16-bit value, must be placed in the low-order word of lpszClass; the high-order word must be zero.
lpszWindow
Points to a null-terminated string that specifies the window name (the window's title). If this parameter is NULL, all window names match.
Return Values
If the function succeeds, the return value is the handle to the window that has the specified class and window names.
If the function fails, the return value is NULL. To get extended error information, call GetLastError.
میشه یه نمونه برنامه بزارین
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
این خوده تابع
اون چیزهایی هم که آقای لرد لطف کردن گفتن یحتمل روش تعریف یک تابع توی دلفی است
بقیه اش هم توضیح پارامترهاست
البته این تابه رو با تابع FindWindow به کار می برن و نتایج اونو توی FindWindowEX بکار می گیرن
اینم یه مثال پایه که برای همه می تونه مفید باشه :
عکس برنامه رو اول ببینید و بعد دانلود کنید
[
attachment=1246]
دانلود سورس آموزشی :
[
attachment=1247]
من این برنامه رو اول توی ویژوال سی ++ 6 نوشتم و خداییش هم خیلی کار با این زبان حال می ده
البته اولش دهنم سرویس شد چون کار شی گر توی این زبان خیلی سخته چون خیلی دقیقه