PDA

View Full Version : سوال: اجرا کردن برنامه و ...



rezarko
شنبه 12 فروردین 1391, 20:36 عصر
سلام دوستان .
اگه بخوام با استفاده از کد نویسی برنامه Notepad را اجرا کنم بعد روی کلید Save کلیک کنم باید چیکار کنم؟
ممنون

Hybrid
شنبه 12 فروردین 1391, 21:14 عصر
سلام ، در رابطه با سوال اولت میتونین از کد زیر استفاده کنید :

اول فضای نامی System.Diagnostics رو import کن و بعد از کد زیر رو داخل رویداد Click دکمه بنویس :


Process.Start("C:\\WINDOWS\\NotePad.exe");

در ضمن سوال دومت رو خوب متوجه نشدم ، اگه امکان داره ، بیشتر توضیح بده

rezarko
شنبه 12 فروردین 1391, 22:53 عصر
منظورم اینه که وقتی یه برنامه در حال اجرا هست چه جوری میشه روی یکی از کلید های اون کلیک کرد(با کد نویسی)

Hybrid
شنبه 12 فروردین 1391, 23:39 عصر
یکی از کلید های داخل خوده برناممون ، یا برنامه ای مثل NotePad ؟؟

اگه داخل برنامه خودتون باشه ، رویداد Click اون دکمه رو فراخوانی کنید مثل زیر :


button1_Click(null,null);

** کد بالا شبیه به اینه که بیای روی دکمه Button1 کلیک کنی.

واسه برنامه های دیگه کار زیاد آسونی نیست .

rezarko
شنبه 12 فروردین 1391, 23:53 عصر
کلید نوتپد رو میخوام کلیک بشه

Hybrid
یک شنبه 13 فروردین 1391, 00:22 صبح
شما باید از توابع API برای این مورد استفاده کنید ، یک مقاله بهت معرفی میکنم حتما حتما مطالعه کن خیلی جالبه و کامل توضیح داده :

http://www.codeproject.com/Articles/14519/Using-Windows-APIs-from-C-again

p.yazdkhasti
یک شنبه 13 فروردین 1391, 13:34 عصر
سلام
در صورتی که بخواهید تنها یک فایل متنی ایجاد نمایید با استفاده از کلاس های موجود در System.IO می توانید این کار را انجام دهید و نیازی به باز کردن Notepad نیست در غیر این صورت در صورتی که می خواهید یک نرم افزار دیگر مانند Notepad را باز نمایید و در برنامه خود با آن ارتباط بر قرار کنید (مانند انتخاب گزینه Save و یا وارد کردن متن در یک Textbox موجود در آن نرم افزار) لازم است از Microsoft UI Automation Library استفاده نمایید. کار با این کتابخانه بسیار ساده است و تنها باید اصول اولیه آن را یاد بگیرید. من برای تست آن یک برنامه ساده به صورت زیر آماده کردم که نرم افزار notepad را باز می کند، منوی فایل را باز می کند و سپس گزینه Save را انتخاب می کند. برای استفاده از این کتابخانه لازم است به DLL های UIAutomationClient.dll و UIAutomationTypes.dll در نرم افزار خود Refrence دهید. لازم به ذکر است که این کتابخانه از Net Framework نسخه 3 به بعد قابل استفاده است.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Automation;
using System.Diagnostics;

namespace Sample.WA
{
class Program
{
static void Main(string[] args)
{
using (var notepadProcess = Process.Start("notepad.exe"))
{
System.Threading.Thread.Sleep(1000);
var aeForm = AutomationElement.FromHandle(notepadProcess.MainWi ndowHandle);
var menuBar =aeForm.FindFirst(TreeScope.Children,new PropertyCondition(AutomationElement.ControlTypePro perty,ControlType.MenuBar));
var menuItem = menuBar.FindFirst(TreeScope.Children,
new PropertyCondition(AutomationElement.ControlTypePro perty,
ControlType.MenuItem));
var menuInvoke = (ExpandCollapsePattern)menuItem.GetCurrentPattern( ExpandCollapsePattern.Pattern);
menuInvoke.Expand();
var menu = menuItem.FindFirst(TreeScope.Children,
new PropertyCondition(AutomationElement.ControlTypePro perty,
ControlType.Menu));
var saveBtn = menu.FindFirst(TreeScope.Children,
new PropertyCondition(AutomationElement.AccessKeyPrope rty,
"S"));
var saveInvoke = (InvokePattern) saveBtn.GetCurrentPattern(InvokePattern.Pattern);
saveInvoke.Invoke();

notepadProcess.CloseMainWindow();
}

}
}
}


از طریق لینک های زیر نیز می توانید اطلاعات بیشتری کسب نمایید:
http://msdn.microsoft.com/en-us/magazine/cc163288.aspx
http://msdn.microsoft.com/en-us/library/ms747327.aspx