سلام مهندس عزیز میشه به من بگین وقتی یه برنامه رو روی Console Application نوشتم چه جوری می تونم اون رو به WinForm تغییرش بدم. البته برنامه های عادی مشکلی نداره ولی این برنامه ای که براتون کدش رو اینجا میزارم تابع static void Main(string[] args) دقیقا توی WinForm باید کجا قرار بگیره ؟
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Automation;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
System.Windows.Automation.Automation.AddAutomationEventHandler(
eventId: WindowPattern.WindowOpenedEvent,
element: AutomationElement.RootElement,
scope: TreeScope.Children,
eventHandler: OnWindowOpened);
Console.ReadLine();
Automation.RemoveAllEventHandlers();
}
private static void OnWindowOpened(object sender, AutomationEventArgs automationEventArgs)
{
try
{
var element = sender as AutomationElement;
if (element != null)
Console.WriteLine("New Window opened: {0}", element.Current.Name);
}
catch (ElementNotAvailableException)
{
}
}
}
}
سلام
کدها را کپی کنید و در پروژه ویندوز Past کنید
نوع پروژه قابل تعییر نیست
مهندس جان اگه اجازه بدی من بحث رو برات بازش کنم من یه برنامه ای نوشتم که از طریق Active Window نام پنجره فعال در لحظه رو برمی گردونه برام و تو یه فایل ذخیره می کنه . ولی من تو اون برنامه از Timer داخل Winform استفاده کردم . بعد دوباره با بررسی های دیگه دیدم ما یه چیزی داریم با اسم UI Automation که بدون نیاز به تایمر گویا این مسئله رو حل می کنه نمونش هم این کدی هست که اینجا هست ولی الان مشکل اینه این کد روی کنسول هست من اگه بخوام این کد رو روی ویندوز فرم پیاده سازی کنم باید چه کاری انجام بدم ؟
من واقعا متوجه نمیشم
در پروژه جدید یه کلاس درست کنید و به اون منتقل کنید و فضاهای نام رو using کنید
باید کار کنه