PDA

View Full Version : خواندن اطلاعات از نوت پد در حال اجرا



aezvenoos
سه شنبه 22 مهر 1393, 21:59 عصر
با سلام و عرض ادب
من میخوام ی نوت پد رو از طریق پروسس سی شارپ اجرا کنم و اطلاعاتی ک توی اون نوت پد نوشته میشه رو همزمان با اینکه من توی اون نوت پد مینویسم توی متغیر ذخیره کنم (اگه پاک کردم پاک بشه و ...)
اجرا کردن نوت پد مشکلی نیست فقط اگه امکانش هست توی گرفتن اطلاعات از نوت پد راهنمایی کنین
ممنون میشم

مهرداد صفا
پنج شنبه 24 مهر 1393, 13:38 عصر
سلام.
ساده ترین راه:
1- با استفاده از ابزار spy++ نام کلاس مربوط به editBox پنجره notepad رو به دست بیارید.
2- با استفاده از توابع api از قبیل: GetActiveWindow, GetForeGroundWindow هندل پنجره notePad رو به دست بیارید. البته این کار رو میتونید با همون کلاس System.Diagnostics.Process و با استفاده از خصوصیت MainWindowHandle هم می توانید به دست بیاورید.
3- با استفاده از توابع FindWindow و یا FindWindowEX و اطلاعاتی که در مرحله 1 و 2 گرفتید هندل editBox رو بگیرید.
4- با استفاده از تابع GetWindowText و یا همون GetWindowTextW داخل یک Timer متن edit box رو به دست بیاورید. البته به جای تابع GetWindowText بهتر از پیغام "GetText" و تابع SendMessage استفاده کنید.

پ.ن: توابع بالا داخل کتابخانه User32.dll تعریف شدند.