• 1398/09/18

تبدیل Console App به winform :

سلام مهندس عزیز میشه به من بگین وقتی یه برنامه رو روی 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)
            {
            }
        }
    }
}

 

  • 1398/09/18
  • ساعت 11:11

سلام 

کدها را کپی کنید و در پروژه ویندوز Past کنید 

نوع پروژه قابل تعییر نیست 


  • 1398/09/18
  • ساعت 12:02

مهندس جان اگه اجازه بدی من بحث رو برات بازش کنم من یه برنامه ای نوشتم که از طریق Active Window نام پنجره فعال در لحظه رو برمی گردونه برام و تو یه فایل ذخیره می کنه . ولی من تو اون برنامه از Timer داخل Winform استفاده کردم . بعد دوباره با بررسی های دیگه دیدم ما یه چیزی داریم با اسم UI Automation که بدون نیاز به تایمر گویا این مسئله رو حل می کنه نمونش هم این کدی هست که اینجا هست ولی الان مشکل اینه این کد روی کنسول هست من اگه بخوام این کد رو روی ویندوز فرم پیاده سازی کنم باید چه کاری انجام بدم ؟


  • 1398/09/18
  • ساعت 12:19

من واقعا متوجه نمیشم 

در پروژه جدید یه کلاس درست کنید و به اون منتقل کنید و فضاهای نام رو using کنید 

باید کار کنه 


logo-enamadlogo-samandehi