using ivf_tl_Control;
using ivf_tl_ControlMain;
using IvfTl.Control.Entity.GlobalEnums;
using IvfTl.Control.Services;
using ivf_tl_UtilHelper;
using System;
using System.ComponentModel;
using System.Configuration;
using System.IO;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media.Imaging;
using System.Xml;
namespace ivf_tl_ControlTest
{
///
/// Window1.xaml 的交互逻辑
///
public partial class Window1 : Window
{
bool stop = false;
int stopPro = 15;
public Window1()
{
InitializeComponent();
if (int.TryParse(ConfigurationManager.AppSettings["StopPro"].ToString(), out int newTime12)) stopPro = newTime12;
AppData.Instance.StopProEvent += Instance_StopProEvent;
string mvcFileName = @"C:\Windows\System32\MVCCamera.ini";
if (File.Exists(mvcFileName)) File.Delete(mvcFileName);
Loaded += Window1_Loaded1;
//Closed += Window1_Closed;
//Closing += Window1_Closing;
}
private void Window1_Closing(object? sender, CancelEventArgs e)
{
Log4netHelper.WriteLog("Window1_Closing");
}
private void Window1_Closed(object? sender, EventArgs e)
{
Log4netHelper.WriteLog("窗口关闭");
}
private void Window1_Loaded1(object sender, RoutedEventArgs e)
{
string account = ConfigurationManager.AppSettings["userName"].ToString();
string password = ConfigurationManager.AppSettings["passWord"].ToString();
string cacheDisk = ConfigurationManager.AppSettings["cacheDisk"].ToString();
this._account_TextBox.Text = account;
this._password_TextBox.Password = password;
this._button.IsEnabled = false;
this._button1.IsEnabled = true;
Task.Run(() =>
{
if (string.IsNullOrEmpty(account) || string.IsNullOrEmpty(password))
{
AppData.Instance.LogService.TLLog($"请输入账号或密码", LogEnum.RunRecord);
Environment.Exit(0);
return;
}
if (!AppData.Instance.Login(account, password))
{
AppData.Instance.LogService.TLLog($"登录失败", LogEnum.RunRecord);
Environment.Exit(0);
return;
}
PathHelper.pan = cacheDisk;
AppData.Instance.LogService.Pan = cacheDisk;
SetApp1(account, password);
StartMain startMain = new StartMain();
string ss = startMain.StartRun();
if (!string.IsNullOrEmpty(ss))
{
AppData.Instance.LogService.TLLog($"启动失败:{ss}", LogEnum.RunRecord);
Environment.Exit(0);
return;
}
SetApp1(AppData.Instance.TLSetting.tmpDir);
});
}
private void Window1_Loaded(object sender, RoutedEventArgs e)
{
this._account_TextBox.Text = ConfigurationManager.AppSettings["userName"].ToString();
this._password_TextBox.Password = ConfigurationManager.AppSettings["passWord"].ToString();
}
//[DllImport("user32.dll", SetLastError = true)]
//static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
//[DllImport("user32.dll", CharSet = CharSet.Auto)]
//static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
//delegate bool EnumWindowsProc(IntPtr hWnd, IntPtr lParam);
//[DllImport("user32.dll")]
//static extern bool EnumChildWindows(IntPtr hWndParent, EnumWindowsProc lpEnumFunc, IntPtr lParam);
//[DllImport("user32.dll")]
//static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount);
//[DllImport("user32.dll", CharSet = CharSet.Auto)]
//static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);
//const uint WM_CLOSE = 0x0010;
//const uint BM_CLICK = 0x00F5;
///
/// 开始按钮
///
///
///
private void Button_Click(object sender, RoutedEventArgs e)
{
//AppData.Instance.TestEvent();
//return;
//var aaa = MessageBoxResult.Cancel;
//var dialogTask = Task.Run(() =>
//{
// aaa = MessageBox.Show("messageinfo", "提示", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No, MessageBoxOptions.DefaultDesktopOnly);
// Debug.WriteLine(1);
//});
//Task.Delay(3000).ContinueWith(t =>
//{
// if (!dialogTask.IsCompleted)
// {
// IntPtr hWnd = FindWindow("#32770", "提示");
// if (hWnd != IntPtr.Zero)
// {
// EnumChildWindows(hWnd, (childHwnd, lParam) =>
// {
// StringBuilder className = new StringBuilder(256);
// GetClassName(childHwnd, className, className.Capacity);
// if (className.ToString() == "Button")
// {
// StringBuilder text = new StringBuilder(256);
// GetWindowText(childHwnd, text, text.Capacity);
// if (text.ToString().Contains("Y"))
// {
// SendMessage(childHwnd, BM_CLICK, IntPtr.Zero, IntPtr.Zero);
// return false;
// }
// }
// return true;
// }, IntPtr.Zero);
// }
// Debug.WriteLine(2);
// }
//});
//dialogTask.Wait();
//Debug.WriteLine(aaa);
//return;
string account = this._account_TextBox.Text.Trim();
string password = this._password_TextBox.Password.Trim();
if (string.IsNullOrEmpty(account) || string.IsNullOrEmpty(password))
{
MessageBox.Show("请输入账号或密码");
return;
}
if (!AppData.Instance.Login(account, password))
{
MessageBox.Show("登录失败");
return;
}
SetApp1(account, password);
//var aa = AppData.Instance.SerialBinController.SearchPictureController("3_1_7_69_2023-09-28-22-41-41_71900_75000.jpg", "NEO-1-20230107");
StartMain startMain = new StartMain();
MessageBox.Show(startMain.StartRun());
this._button.IsEnabled = false;
this._button1.IsEnabled = true;
}
private object lockObject = new object();
private void Instance_StopProEvent()
{
return;
AppData.Instance.LogService.TLLog($"拍照异常退出软件", LogEnum.RunError);
lock (lockObject)
{
if (stop) return;
stop = true;
}
Dispatcher.Invoke(() =>
{
StopWindow stopWindow = new StopWindow(this, stopPro);
stopWindow.Show();
});
}
private void SetApp(string name, string pass)
{
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings["userName"].Value = name;
config.AppSettings.Settings["passWord"].Value = pass;
config.Save(ConfigurationSaveMode.Modified);
System.Configuration.ConfigurationManager.RefreshSection("appSettings");
}
public void SetApp1(string name, string pass)
{
try
{
string fileName = $"{System.AppDomain.CurrentDomain.BaseDirectory}ivf_tl_ControlMain.dll.config";
if (!File.Exists(fileName)) return;
var xmlDoc = new XmlDocument();
xmlDoc.Load(fileName);
var tags = xmlDoc.GetElementsByTagName("appSettings");
XmlNode appSettingsNode = xmlDoc.SelectSingleNode("configuration/appSettings");
if (appSettingsNode != null)
{
XmlNodeList addNodes = appSettingsNode.SelectNodes("add");
foreach (XmlNode addNode in addNodes)
{
//string key = addNode.Attributes["key"].Value;
//string value = addNode.Attributes["value"].Value;
//Debug.WriteLine("键: " + key + ", 值: " + value);
if (addNode.Attributes["key"].Value == "userName")
{
addNode.Attributes["value"].Value = name;
}
if (addNode.Attributes["key"].Value == "passWord")
{
addNode.Attributes["value"].Value = pass;
}
}
}
xmlDoc.Save(fileName);
System.Configuration.ConfigurationManager.RefreshSection("appSettings");
xmlDoc = null;
}
catch (Exception ex)
{
return;
}
}
private void SetApp(string newDisk)
{
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings["cacheDisk"].Value = newDisk;
config.Save(ConfigurationSaveMode.Modified);
System.Configuration.ConfigurationManager.RefreshSection("appSettings");
}
public void SetApp1(string newDisk)
{
try
{
string fileName = $"{System.AppDomain.CurrentDomain.BaseDirectory}ivf_tl_ControlMain.dll.config";
if (!File.Exists(fileName)) return;
var xmlDoc = new XmlDocument();
xmlDoc.Load(fileName);
var tags = xmlDoc.GetElementsByTagName("appSettings");
XmlNode appSettingsNode = xmlDoc.SelectSingleNode("configuration/appSettings");
if (appSettingsNode != null)
{
XmlNodeList addNodes = appSettingsNode.SelectNodes("add");
foreach (XmlNode addNode in addNodes)
{
//string key = addNode.Attributes["key"].Value;
//string value = addNode.Attributes["value"].Value;
//Debug.WriteLine("键: " + key + ", 值: " + value);
if (addNode.Attributes["key"].Value == "cacheDisk")
{
addNode.Attributes["value"].Value = newDisk;
break;
}
}
}
xmlDoc.Save(fileName);
System.Configuration.ConfigurationManager.RefreshSection("appSettings");
xmlDoc = null;
}
catch (Exception ex)
{
return;
}
}
private void End_Click(object sender, RoutedEventArgs e)
{
//Log4netHelper.WriteLog("点击退出按钮");
//Application.Current.Shutdown();
//e.Handled = true;
//return;
Log4netHelper.WriteLog("点击退出按钮");
AppData.Instance.SerialBinController.PushMessageController(AppData.Instance.TLSetting.tlSn, 0, null);
Application.Current.Shutdown();
e.Handled = true;
}
private void Button1_Click(object sender, RoutedEventArgs e)
{
if (AppData.Instance.MqttService != null)
{
AppData.Instance.MqttService.DisconnectAsync();
}
//string account = this._account_TextBox.Text.Trim();
//string password = this._password_TextBox.Password.Trim();
//if (string.IsNullOrEmpty(account) || string.IsNullOrEmpty(password))
//{
// MessageBox.Show("请输入账号或密码");
// return;
//}
//if (!AppData.Instance.Login(account, password))
//{
// MessageBox.Show("登录失败");
// return;
//}
//AppData.Instance.UpdateSetting("NEO-1-20230107");
}
private void Button2_Click(object sender, RoutedEventArgs e)
{
if (AppData.Instance.MqttService != null)
{
AppData.Instance.MqttService.ClientMqtt();
}
}
private void End_1Click(object sender, RoutedEventArgs e)
{
System.Diagnostics.Process.Start("shutdown", " /r /t 0");
}
}
}