![]() |
|
كيف اقوم بتغيير Class النافذة ؟ - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : كيف اقوم بتغيير Class النافذة ؟ (/showthread.php?tid=5050) |
كيف اقوم بتغيير Class النافذة ؟ - ALmuhhnad - 23-03-2013 السلام عليكم ورحمة الله وبركاتة كيف اقوم بتغيير الـ Class الخاص بالنافذة عند تشغيل البرنامج كل مرة .. ؟ صورة توضيحيه :
Tmain.jpg (الحجم : 46.93 ك ب / التحميلات : 40)
الهدف كي لا يتم إكتشاف نافذت برنامجي من خلال الدالة FindWindow كيف اقوم بتغيير Class النافذة ؟ - SMP3 - 23-03-2013 في الحقيقة لن يمكنك ذلك بالطرق العادية .. لماذا ؟ لأنه عند ظهور نافذة البرنامج يقوم الوينداوز بحفظ مقبضها Hanlde و الكلاس الخاصة بها بعد تنفيذ RegisterClassEx لذلك من المستحيل تغييرها وقت التشغيل -أعني عند ظهور النافذة -بطريقة مباشرة الطرق الغير مباشرة هي قبل انشاء وظهور النافذة يمكنك تغيير كلاس الفورم .. يعني بداية كل تشغيل للبرنامج PHP كود : typePHP كود : varكيف اقوم بتغيير Class النافذة ؟ - ALmuhhnad - 24-03-2013 اهلا اخي المبرمج smp3 ... شكرا على التوضيح والاجابة ![]() كان بودي ان تضع تعليقات على الكود .. كي استطيع فهم ما يجري اثناء تنفيذ الاوامر جزاك الله خير ووفقك لما يحبه ويرضااه كيف اقوم بتغيير Class النافذة ؟ - SMP3 - 24-03-2013 ALmuhhnad كتب :كان بودي ان تضع تعليقات على الكود .. كي استطيع فهم ما يجري اثناء تنفيذ الاوامرنقوم بعمل override للحدث CreateParams الخاص بالفورم PHP كود : procedure CreateParams(var Params: TCreateParams); override ; PHP كود : CN:=PChar('NewClass'+Copy(IntToStr(GetTickCount),5,2)); PHP كود : StrPLCopy(Params.WinClassName,CN,High(Params.WinClassName)); كيف اقوم بتغيير Class النافذة ؟ - kachwahed - 24-03-2013 وعليكم السلام ورحمة الله وبركاته فكرة أخرى Hook لـ FindWindow/FindWindowEx http://www.delphi4arab.net/forum/showthread.php?tid=949 لا أدري... |