WindowManager.cs 1.3 KB
using Common;
using OnlineStore.Common;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace TheMachine
{
    internal class WindowManager
    {
        public static List<WindInfo> windInfos = new List<WindInfo>();
        static string baseDir = @".\Modules\";
        public static void Start()
        {
            foreach (var item in windInfos)
            {
                try
                {
                    item.ProcessInfo = ProcessUtil.StartProcess(item.Name, baseDir + $"{item.Name}\\", 60000);
                }
                catch (Exception ex)
                {
                    LogUtil.error($"程序{item.Name}启动失败", ex);
                }
            }
        }
        public static void Show()
        {
            foreach (var item in windInfos)
                item.WindowHandle = WindowUtil.PutIntoForm(item.Parent, item.Name);
        }
    }
    class WindInfo
    {
        public string Name { get; set; }
        public IntPtr WindowHandle { get; set; }
        public Panel Parent { get; set; }
        public Process ProcessInfo { get; set; }

        public const string IPCamera = "IPCamera";
    }
}