23-04-2012, 09:57 AM
السلام عليكم و رحمة الله
هذا الشرح مأخوذ مباشرتا من منتدى كلية الهندسة المعلوماتية للأخ حسام محمد علي
البرنامج السابق ينقل محتويات نص من الحاسبة الى تطبيقي
المنهج الاول forr := FindWindow('SciCalc',nil);
يبحث عن برنامج الحاسبة في الذاكرة وعندما يجده يعيد ممسك لايساوي nil يدل على العثور عليه
المنهج الثاني
edi := FindWindowEx(forr,0,'Edit',nil);
يبحث عن العنصر ذو الاسم Edit داخل برنامج الحاسبة
المنهج SendMessage يرسل رسالة الى نظام التشغيل ويندوز الى البرنامج المحدد بممسك الوسيط الاول وهنا
الرسالة هي WM_GETTEXT اي اعطني النص المحدد ضمن العنصر Edit
وضعه في الوسيط الرابع للتابع SendMessage
برنامج الذي تريده هو كما يلي:
بالبداية ضع النص المراد ضمن تطبيقك ثم المنهج SendMessage مع الرسالة WM_SETTEXT يرسل الرسالة الى الحاسبة
وبقي لي الغموض فقك في مايخص كيفية الحصول على : SciCalc
و شكرا
هذا الشرح مأخوذ مباشرتا من منتدى كلية الهندسة المعلوماتية للأخ حسام محمد علي
البرنامج السابق ينقل محتويات نص من الحاسبة الى تطبيقي
المنهج الاول forr := FindWindow('SciCalc',nil);
يبحث عن برنامج الحاسبة في الذاكرة وعندما يجده يعيد ممسك لايساوي nil يدل على العثور عليه
المنهج الثاني
edi := FindWindowEx(forr,0,'Edit',nil);
يبحث عن العنصر ذو الاسم Edit داخل برنامج الحاسبة
المنهج SendMessage يرسل رسالة الى نظام التشغيل ويندوز الى البرنامج المحدد بممسك الوسيط الاول وهنا
الرسالة هي WM_GETTEXT اي اعطني النص المحدد ضمن العنصر Edit
وضعه في الوسيط الرابع للتابع SendMessage
برنامج الذي تريده هو كما يلي:
كود :
uses messages;
procedure TForm1.Button1Click(Sender: TObject);
var
forr, edi : THandle;
Tex: string;
begin
forr := FindWindow('SciCalc',nil);
edi := FindWindowEx(forr,0,'Edit',nil);
SetLength(Tex,Max_Path);
Tex:=Edit2.Text;;
SendMessage(edi,WM_SETTEXT,Max_Path,LongInt(@Tex
[1]));
end;وبقي لي الغموض فقك في مايخص كيفية الحصول على : SciCalc
و شكرا
- لا شيء من لا شيء ............... ؟

