بسم الله الرحمن الرحيم
لقد أطعلت على الرابط
http://delphi4arab.net/forum/showthread.php?tid=1098 وأستفد منة الكثير ولكن عند التلاعب ببعض البرامج بأأستحدام برنامج Win X_1.3.exe لجلب الكلاس لا يأتى لى بأسم النافذة أو بالاحرى يأتى الكلاس نيم عبارة عن أرقام وعند وضع هذة الارقام فى FindWindow لا يفعل شيئاّ هل فى طريقة من لمعرفة أسم النافذة بطريقة أحترافية أفضل..
كيف FindWindow لا يفعل شيئا !!!
ممكن توضح أكثر أو تضع مثال ؟
بالنسبة لاسم النافذة WindowText فليس شرط أن تحتوي على اسم ..
SMP3 كتب :كيف FindWindow لا يفعل شيئا !!!
لا يفعل شيئاّ لأنه على ما أعتقد أسم النافذة وهمى أو لا يتتطابق...
جرب أخى بنفسك على برامج الانتى فيرس بأأستخدام برنامج Win X_1.3.exe وحاول أفعل أى شئ فية وأذا كان هناك جديد أنا فى أنتظارك أخى الكريم ...!
لقد قمت بالتجريب و ليس هناك أي مشكل !!
كمثال :
PHP كود :
var hWin:THandle ;
begin
hWin:= FindWindow('#32770',0);
Caption:=IntToHex(hWin,8);
end;
السلام عليكم ورحمة الله وبركاتة
ربما يتم تغيير الكلاس او اسم النافذة ... بعد كل إعادة تشغيل ...
أخى لقد علمت السبب ولكنى لا أعلم العلاج والسبب هو أن X الخاص بأغلاق النافذة محجر أو غير مفعل لذلك عند وضع الامر WM_CLOSE لا يفعل شيئاّ أما مع باقى النوافذ التى فيها x مفعل يتم أغلاق النافذة هل يوجد أمر بديل يقوم بأغلاق النافذة او أخفائها WM_؟
لإخفاء النافذة نستعمل الامر :
PHP كود :
var
WinHandle : HWND
begin
WinHandle := FindWindow('','TitleWindow');
ShowWindow(WinHandle,SW_HIDE)
end;
لإظهار النافذة نستعمل الامر :
PHP كود :
var
WinHandle : HWND
begin
WinHandle := FindWindow('','TitleWindow');
ShowWindow(WinHandle,SW_SHOW)
end;
لإغلاق البرنامج او عملية تعمل حالياً نستعمل :
PHP كود :
TerminateProcess(dwhProcess,0) // dwhProcess = HandleProcess ... you can get it by function OpenProcess
وجميع الدوال التي استعملناها من دوال API ...
ALmuhhnad كتب :لإخفاء النافذة نستعمل الامر :
PHP كود :
var
WinHandle : HWND
begin
WinHandle := FindWindow('','TitleWindow');
ShowWindow(WinHandle,SW_HIDE)
end;
API ...
أخى العزيز بالرغم من سهولة الكود الا أننى لم أفلح فى تنفيذة ( أعذرنى لسة مبتدئ) حولت أطبق هذا الامر على البرنامج
ya h o o messenger ولكن سؤالى الاول هل عنوان النافذة
titlewindow هى ثاتها الكلاس التى تأتى من خلال الكود هذا
كود :
var p: TPoint ;
hWin:THandle;
begin
GetCursorPos(p);
hWin:=WindowFromPoint(p);
Caption:=IntToHex(hWin,8);
lbl1.Caption:=form1.Caption;
end;
وحتى لا أكثر من أسئلتى وأزعجكم **** انك ترفق لى مثال حتى أتمرن علية وجزاك الله كل خير ...!
لنفرض انك تريد ان تخفي نافذة مااء ...
ماذا تحتاج ؟
مقبض النافذة وهو نوع
HWND او
THandle ... في الحقيقة كل هذه الانواع تشير إلى النوع
NativeUInt
وعندما نحصل على هذا المقبض تكون النافذة كما لو انها بقضبة برنامجك

( من اسمها
مقبض )
كيف نحصل على مقبض النافذة ؟
يوجد عدة طرق من خلال استعمال دوال API... وجميع هذه الطرق تريد معلومات عن النافذة , بعذها يطلب عنوان النافذة
واسم الكلاس كما هو الحال في
FindWindow ... وآخر هي التي تحصل على معلوماتها بنفسها مثل
GetForegroundWindow فهي تاخذ النافذة المفعلة او النشطة حالياً ... وغيرها الكثير من الطرق للحصول على مقبض النافذة
مثال للحصوال على مقبض النافذة من خلال الدالة
FindWindow
الدالة تحتاج معلومتين او بارمترين للتجلب لنا المقبض الخاص بالنافذة التي قدمنا معلوماتها لدالة ...
المعلومة الاول او البارمتر الأول :
IpClasseName
هذا يعني عنوان النافذة , نحصل عليه من كود آخر ... ( ابحث بالمنتدى ) ... او تستتطيع ان تجلبه من خلال برامج خارجية مثل WinSpy
المعلومة الثانية او البارمتر الثاني :
IpWindowName
هذا يعني اسم الصنف ... وهو مهم لكي يتعامل النظام مع النافذة وهذا نحصل عليه كذلك من كود آخر او نستطيع الحصول عله كذلك من برنامج WinSpy او غيره ...
بعد ان حصلنا على المعلومات او البارمترات نكتب الكود التالي :
PHP كود :
var
HandleWindow : THandle;
begin
HandleWindow := FindWindow('','ya h o o messenger');
ShowWindow(HandleWindow,SW_HIDE)
end;
بعدها سيتم إخفاء النافذة .