PDA

View Full Version : سوال: نوشتن متن در notepad



HAIdle
جمعه 20 دی 1387, 11:19 صبح
با سلام و تسلیت خدمت همه دوستان
میخواهم یک برنامه با سی شارپ بنویسم که یک button و یک text box داخل یک فرم باشه. وقتی کاربر، button را فشار داد، برنامه notepad اجرا بشه و متن داخل text box در آن تایپ بشه و برود سر خط بعد. پس از آن نیز فرم برنامه ما دوباره focus شود و فرم جاری ویندوز شود.
ممنون از راهنماییهای شما

vcldeveloper
جمعه 20 دی 1387, 15:24 عصر
برنامه notepad اجرا بشه
ShellExecute


متن داخل text box در آن تایپ بشه و برود سر خط بعد.
1- بدست آوردن هندل پنجره Notepad با استفاده از FindWindow یا EnumWindows
2- بدست آوردن هندل پنجره Edit موجود در Notepad با استفاده از FindWindowEx یا EnumChildWindows.
3- ارسال پیام WM_SETTEXT به پنجره Edit مرحله قبل با استفاده از SendMessage.


پس از آن نیز فرم برنامه ما دوباره focus شود و فرم جاری ویندوز شود.
SetForegroundWindow

تمامی توابعی که در اینجا ذکر کردم از Windows API هستند، و می تونید اطلاعات تکمیلی درباره آنها را از MSDN بدست بیارید.

Sajjad.Aghapour
جمعه 20 دی 1387, 16:57 عصر
این هم یه روش دیگه..
اول یه فایل txt در یک مسیر(فرضا در مسیر اجرایی)ایجاد کنید و محتویات textBox رو در اون بریزید.بعد توسط کد زیر اون رو به notepad بفرستید.


Process.Start("notepad.exe","created file path");

و دوباره اون فایل رو پاک کنی.....

HAIdle
یک شنبه 22 دی 1387, 14:17 عصر
تمامی توابعی که در اینجا ذکر کردم از Windows API هستند، و می تونید اطلاعات تکمیلی درباره آنها را از MSDN بدست بیارید.
متشکرم
من با windows API کار نکرده ام و در MSDN هم نتونستم این دستورات را پیدا کنم.
ممنون میشم بیشتر توضیح بدید و درصورت امکان نمونه برنامه ای که این کار را انجام بده بگذارید.
با تشکر فراوان

sinpin
دوشنبه 23 دی 1387, 08:08 صبح
متشکرم
من با windows API کار نکرده ام و در MSDN هم نتونستم این دستورات را پیدا کنم.
ممنون میشم بیشتر توضیح بدید و درصورت امکان نمونه برنامه ای که این کار را انجام بده بگذارید.
با تشکر فراوان
http://pinvoke.net/

Salar Ashgi
چهارشنبه 26 مرداد 1390, 11:54 صبح
بنظرم این روش هم قابل استفاده است :


StreamWriter sw = new StreamWriter("D:\\data.txt");
sw.WriteLine(textBox1.Text);
sw.Close();
System.Diagnostics.Process.Start("D:\\data.txt");
this.Select();
this.Focus();


موفق باشید ./