![]() |
|
هل يمكن جلب hWindow من خلال dwProcess,hProcess ؟ - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : هل يمكن جلب hWindow من خلال dwProcess,hProcess ؟ (/showthread.php?tid=4938) |
هل يمكن جلب hWindow من خلال dwProcess,hProcess ؟ - ALmuhhnad - 21-02-2013 السلام عيلكم ورحمة الله وبركاته هل يمكن جلب hWindow من خلال dwProcess,hProcess ؟ الحالة ...: لدي ملف تنفيذي 'C:\target.exe' واستعملت عليه الامر CreateProcess لتشغيلة وخزنت معلومات العملية في المتغير : TempProcessInfo ومعلومات بدء التشغيل او ما يعرف بـ Startupinfo : TempStartupInfo وهذا الامر الذي استعملته : PHP كود : FillChar(TempProcessInfo,SizeOf(TProcessInformation),#0);الآن من خلال المعطيات السابقة كيف احصل على الـ hWindow الخاص بالعملية التي قمت بتحميلها من خلال CreateProcess ؟؟ لا أريـ د استعمل ... FindWindow ... حيث اني سافتح اللملف 'C:\target.exe' اكثر من مره لذلك سيكون هناك العديد من النوافذ التي تحمل نفس الاسم .... اتمنى اوصلت الفكرة P: لدي حل لكنه معقد لأعبد حد من وجهة نظري ههه .... طرحت السؤال هنا لاجد حلول آخرى او دوال تعمل هذه الوضيفة وشكراً لحسن القراءة هل يمكن جلب hWindow من خلال dwProcess,hProcess ؟ - SMP3 - 22-02-2013 في الحقيقة لا توجد دالة مباشرة للقيام بذلك يتوجب عليك استخدام الدالة EnumWindows ثم الحصول على مقبض البروسس باستخدام الدالة GetWindowThreadProcessId أو أي دالة أخرى .. ثم مقارنة النتيجة مع متغير يحمل ال PID الخاص ب Target -------------------- حاليا لن أستطيع أن أعمل لك مثال لأني على جهاز آخر هل يمكن جلب hWindow من خلال dwProcess,hProcess ؟ - ALmuhhnad - 22-02-2013 إقتباس : يتوجب عليك استخدام الدالة enumwindows ثم الحصول على مقبض البروسس باستخدام الدالة getwindowthreadprocessid أو أي دالة أخرى .. ثم مقارنة النتيجة مع متغير يحمل ال pid الخاص ب target هذا ما كنت الطريقة التي كنت سافعلها ... ويبدو انه لا مفر منه ... شكراً لإجاابتك استااذ smp3 سيسهل علي الامر لو استعملت FindWindow وبدات بعملية مقارنة الـ PID بالذي املكه ... لاني أريـ د نافذة معينه وليس كل البرامج
هل يمكن جلب hWindow من خلال dwProcess,hProcess ؟ - ALmuhhnad - 23-02-2013 انتظر المثال منك او من احد الاخوة ... يبدو اني لم استطع التعامل مع EnumWindows بشكل سليم حيث اني لم يسببق ان تعااملته معها P: كل ما اجدلها على الانترنت امثل بلغة الـ C++ رغم اني طبقتها في لغة الدلفي لكنها لم تعمل كما اردت ... هل يمكن جلب hWindow من خلال dwProcess,hProcess ؟ - ALmuhhnad - 24-02-2013 الحمد لله وجدت الطريقة لعمل ذلك ![]() وهذه الدالة التي قمت ببرمجتها لعمل بحث عن hWindow باخذ dwProcessID و WinTitle هذه الدالة : PHP كود : varوهذا الاستعمال : PHP كود : TargetWinHandle := GethWndByPID(dwProcessId,'TitleWindow'); لا اعلم إذا كان هناك طريقة اسهل او افضل من هذه لكن هذا ما استطعت عمله ... والسلام عليكم ورحمة الله وبركاتة |