台州海关TD3600上线版本
This commit is contained in:
284
JJMediSys/ErrMsgShow.cs
Normal file
284
JJMediSys/ErrMsgShow.cs
Normal file
@@ -0,0 +1,284 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace JJMediSys
|
||||
{
|
||||
public partial class ErrMsgShow : Form
|
||||
{
|
||||
|
||||
[DllImport("Gdi32.dll", EntryPoint = "CreateRoundRectRgn")]
|
||||
private static extern IntPtr CreateRoundRectRgn
|
||||
(
|
||||
int nLeftRect, // x-coordinate of upper-left corner
|
||||
int nTopRect, // y-coordinate of upper-left corner
|
||||
int nRightRect, // x-coordinate of lower-right corner
|
||||
int nBottomRect, // y-coordinate of lower-right corner
|
||||
int nWidthEllipse, // height of ellipse
|
||||
int nHeightEllipse // width of ellipse
|
||||
);
|
||||
|
||||
[DllImport("dwmapi.dll")]
|
||||
public static extern int DwmExtendFrameIntoClientArea(IntPtr hWnd, ref MARGINS pMarInset);
|
||||
|
||||
[DllImport("dwmapi.dll")]
|
||||
public static extern int DwmSetWindowAttribute(IntPtr hwnd, int attr, ref int attrValue, int attrSize);
|
||||
|
||||
[DllImport("dwmapi.dll")]
|
||||
public static extern int DwmIsCompositionEnabled(ref int pfEnabled);
|
||||
|
||||
private bool m_aeroEnabled; // variables for box shadow
|
||||
private const int CS_DROPSHADOW = 0x00020000;
|
||||
private const int WM_NCPAINT = 0x0085;
|
||||
private const int WM_ACTIVATEAPP = 0x001C;
|
||||
|
||||
public struct MARGINS // struct for box shadow
|
||||
{
|
||||
public int leftWidth;
|
||||
public int rightWidth;
|
||||
public int topHeight;
|
||||
public int bottomHeight;
|
||||
}
|
||||
|
||||
private const int WM_NCHITTEST = 0x84; // variables for dragging the form
|
||||
private const int HTCLIENT = 0x1;
|
||||
private const int HTCAPTION = 0x2;
|
||||
|
||||
protected override CreateParams CreateParams
|
||||
{
|
||||
get
|
||||
{
|
||||
m_aeroEnabled = CheckAeroEnabled();
|
||||
|
||||
CreateParams cp = base.CreateParams;
|
||||
if (!m_aeroEnabled)
|
||||
cp.ClassStyle |= CS_DROPSHADOW;
|
||||
|
||||
return cp;
|
||||
}
|
||||
}
|
||||
|
||||
private bool CheckAeroEnabled()
|
||||
{
|
||||
if (Environment.OSVersion.Version.Major >= 6)
|
||||
{
|
||||
int enabled = 0;
|
||||
DwmIsCompositionEnabled(ref enabled);
|
||||
return (enabled == 1) ? true : false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
protected override void WndProc(ref Message m)
|
||||
{
|
||||
switch (m.Msg)
|
||||
{
|
||||
case WM_NCPAINT: // box shadow
|
||||
if (m_aeroEnabled)
|
||||
{
|
||||
var v = 2;
|
||||
DwmSetWindowAttribute(this.Handle, 2, ref v, 4);
|
||||
MARGINS margins = new MARGINS()
|
||||
{
|
||||
bottomHeight = 1,
|
||||
leftWidth = 1,
|
||||
rightWidth = 1,
|
||||
topHeight = 1
|
||||
};
|
||||
DwmExtendFrameIntoClientArea(this.Handle, ref margins);
|
||||
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
base.WndProc(ref m);
|
||||
|
||||
if (m.Msg == WM_NCHITTEST && (int)m.Result == HTCLIENT) // drag the form
|
||||
m.Result = (IntPtr)HTCAPTION;
|
||||
|
||||
}
|
||||
public Dispensing fordispensing;
|
||||
public ErrMsgShow(Dispensing dispensing)
|
||||
{
|
||||
m_aeroEnabled = false;
|
||||
InitializeComponent();
|
||||
fordispensing = dispensing;
|
||||
|
||||
}
|
||||
|
||||
public ErrMsgShow()
|
||||
{
|
||||
m_aeroEnabled = false;
|
||||
InitializeComponent();
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void ErrMsgShow_Load(object sender, EventArgs e)
|
||||
{
|
||||
//int x = fordispensing.Location.X + (fordispensing.Width - this.Width) / 2;
|
||||
//int y = fordispensing.Location.Y + (fordispensing.Height - this.Height) / 2;
|
||||
//this.Location = new Point(x, y);
|
||||
//Msg.Text = fordispensing.ErrorInfoStr;
|
||||
|
||||
Msg.Text = "蓝牙连接失败";
|
||||
if (Msg.Text.Contains("蓝牙11"))
|
||||
{
|
||||
BRetry.Location = new System.Drawing.Point(16, 171);
|
||||
BCancel.Location = new System.Drawing.Point(362, 171);
|
||||
ResetBLE.Visible = true;
|
||||
ResetBLE.Location = new System.Drawing.Point(190, 171);
|
||||
}
|
||||
else
|
||||
{
|
||||
BRetry.Location = new System.Drawing.Point(77, 171);
|
||||
BCancel.Location = new System.Drawing.Point(305, 171);
|
||||
ResetBLE.Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void BRetry_Click(object sender, EventArgs e)
|
||||
{
|
||||
DialogResult = DialogResult.Retry;
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private void BCancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
DialogResult = DialogResult.Cancel;
|
||||
//Form1.CancelDispensing = true; //手动点击终止后 ,TubeLabelTool.cs中的循环将退出 并返回手动取消状态
|
||||
//if (!fordispensing.isStop)//处于可手动终止状态
|
||||
// fordispensing.DispenseCancel = true; //
|
||||
//fordispensing.Closewin();
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private async void ResetBLE_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 停止蓝牙服务
|
||||
await StopBluetoothServiceAsync();
|
||||
|
||||
// 等待几秒钟以确保服务完全停止
|
||||
// await Task.Delay(5000);
|
||||
// 启动蓝牙服务
|
||||
// await StartBluetoothServiceAsync();
|
||||
|
||||
Console.WriteLine("蓝牙服务已成功重启。");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"发生错误: {ex.Message}");
|
||||
}
|
||||
|
||||
DialogResult = DialogResult.Retry;
|
||||
this.Close();
|
||||
}
|
||||
|
||||
static async Task StopBluetoothServiceAsync()
|
||||
{
|
||||
string scriptPath = @"D:\\BuleToothOff.ps1";
|
||||
|
||||
// 创建 ProcessStartInfo 对象
|
||||
ProcessStartInfo startInfo = new ProcessStartInfo
|
||||
{
|
||||
FileName = "cmd.exe", // 指定 cmd.exe 可执行文件
|
||||
Arguments = $"powershell -ExecutionPolicy Bypass -File {scriptPath}", // 使用 cmd.exe 启动 PowerShell 并运行脚本
|
||||
//RedirectStandardOutput = true, // 重定向标准输出
|
||||
// RedirectStandardError = true, // 重定向标准错误
|
||||
// UseShellExecute = false , // 不使用外壳程序
|
||||
Verb = "runas"
|
||||
//CreateNoWindow = true // 不创建新窗口
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
// 创建 Process 对象
|
||||
using (Process process = new Process { StartInfo = startInfo })
|
||||
{
|
||||
// 启动进程
|
||||
process.Start();
|
||||
|
||||
// 读取标准输出
|
||||
string output = process.StandardOutput.ReadToEnd();
|
||||
// 读取标准错误
|
||||
string error = process.StandardError.ReadToEnd();
|
||||
|
||||
// 等待进程退出
|
||||
process.WaitForExit();
|
||||
|
||||
// 输出结果
|
||||
Console.WriteLine("Output:");
|
||||
Console.WriteLine(output);
|
||||
|
||||
if (!string.IsNullOrEmpty(error))
|
||||
{
|
||||
Console.WriteLine("Error:");
|
||||
Console.WriteLine(error);
|
||||
}
|
||||
}
|
||||
|
||||
Console.WriteLine("脚本执行完毕。");
|
||||
|
||||
}
|
||||
|
||||
static async Task StartBluetoothServiceAsync()
|
||||
{
|
||||
string scriptPath = @".\BuleToothOn.ps1";
|
||||
|
||||
// 创建 ProcessStartInfo 对象
|
||||
ProcessStartInfo startInfo = new ProcessStartInfo
|
||||
{
|
||||
FileName = "powershell.exe", // 指定 PowerShell 可执行文件
|
||||
Arguments = $"-ExecutionPolicy Bypass -File \"{scriptPath}\"", // 指定脚本文件路径
|
||||
RedirectStandardOutput = true, // 重定向标准输出
|
||||
RedirectStandardError = true, // 重定向标准错误
|
||||
UseShellExecute = false, // 不使用外壳程序
|
||||
CreateNoWindow = true // 不创建新窗口
|
||||
};
|
||||
|
||||
// 创建 Process 对象
|
||||
using (Process process = new Process { StartInfo = startInfo })
|
||||
{
|
||||
// 启动进程
|
||||
process.Start();
|
||||
|
||||
// 读取标准输出
|
||||
string output = process.StandardOutput.ReadToEnd();
|
||||
// 读取标准错误
|
||||
string error = process.StandardError.ReadToEnd();
|
||||
|
||||
// 等待进程退出
|
||||
process.WaitForExit();
|
||||
|
||||
// 输出结果
|
||||
Console.WriteLine("Output:");
|
||||
Console.WriteLine(output);
|
||||
|
||||
if (!string.IsNullOrEmpty(error))
|
||||
{
|
||||
Console.WriteLine("Error:");
|
||||
Console.WriteLine(error);
|
||||
}
|
||||
}
|
||||
|
||||
Console.WriteLine("脚本执行完毕。");
|
||||
}
|
||||
|
||||
static async Task<string> ReadOutputAsync(System.IO.StreamReader reader)
|
||||
{
|
||||
return await reader.ReadToEndAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user