using System;
|
using System.Collections.Generic;
|
using System.IO;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.Windows;
|
using System.Windows.Controls;
|
using System.Windows.Data;
|
using System.Windows.Documents;
|
using System.Windows.Input;
|
using System.Windows.Media;
|
using System.Windows.Media.Imaging;
|
using System.Windows.Navigation;
|
using System.Windows.Shapes;
|
using SmartScanner.OperateLog;
|
using Microsoft.Win32;
|
|
namespace SmartScanner
|
{
|
/// <summary>
|
/// DownloadData.xaml 的交互逻辑
|
/// </summary>
|
public partial class DownloadData : Window
|
{
|
public static bool ImageSave;//图像保存
|
public static string ImageSavingPath;//保存路径
|
public static int ImageCompressionRatio_main;//图像压缩比率
|
public static int ImageDeleteData_main;//图像定期删除
|
public static string ImageFormat_main;//图像保存格式
|
public static bool MemoryAlarm_main;//存储空间报警
|
public static int ImageMemoryAlarm_main;//存储空间报警
|
private bool isF = false;
|
public static bool isOP = true;
|
public DownloadData()
|
{
|
InitializeComponent();
|
isF = true;
|
Init();
|
// 窗口关闭时保存设置
|
this.Closed += (s, e) => Properties.Settings.Default.Save();
|
}
|
public void SetControlsEnabled(bool isEnabled)
|
{
|
// 禁用或启用所有可编辑的控件
|
//LoadConfig_RJ.IsEnabled = isEnabled;
|
SelectFilePath.IsEnabled = isEnabled;
|
ImageDeleteCheck.IsEnabled = isEnabled;
|
Data_deleteImage.IsEnabled = isEnabled;
|
ImageSaveCheck.IsEnabled = isEnabled;
|
ImageFormat.IsEnabled = isEnabled;
|
ImageCompressionRatio.IsEnabled = isEnabled;
|
MemoryAlarmCheck.IsEnabled = isEnabled;
|
MemoryAlarm.IsEnabled = isEnabled;
|
SetDataSavingRoad.IsEnabled = isEnabled;
|
// ... 其他需要控制的控件
|
}
|
public void Init()
|
{
|
ImageSave = (bool)ImageSaveCheck.IsChecked;
|
MemoryAlarm_main = (bool)MemoryAlarmCheck.IsChecked;
|
ImageMemoryAlarm_main = (int)MemoryAlarm.Value;
|
ImageSavingPath = SetDataSavingRoad.Text;
|
ImageCompressionRatio_main = (int)ImageCompressionRatio.Value;
|
ImageDeleteData_main = (int)Data_deleteImage.Value;
|
switch (ImageFormat.SelectedIndex)
|
{
|
case 0:
|
ImageFormat_main = ".BMP";
|
break;
|
case 1:
|
ImageFormat_main = ".JPG";
|
break;
|
case 2:
|
ImageFormat_main = ".PNG";
|
break;
|
default:
|
break;
|
}
|
if (ImageFormat.SelectedIndex == 0)
|
{
|
CompressionVisible.Visibility = Visibility.Collapsed;
|
}
|
else
|
{
|
CompressionVisible.Visibility = Visibility.Visible;
|
}
|
}
|
private void SetDataSavingRoad_MouseDoubleClick(object sender, MouseButtonEventArgs e)
|
{
|
var folderDialog = new System.Windows.Forms.FolderBrowserDialog
|
{
|
Description = "选择图像存储路径",
|
SelectedPath = Properties.Settings.Default.DataSavingRoad
|
};
|
|
if (folderDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
|
{
|
Properties.Settings.Default.DataSavingRoad = folderDialog.SelectedPath;
|
SetDataSavingRoad.Text = folderDialog.SelectedPath;
|
}
|
// 记录日志
|
OperateLogService.LogOperation(
|
"图像存储路径修改",
|
$"路径修改为: {folderDialog.SelectedPath}",
|
null);
|
}
|
|
private void SelectFilePath_Click(object sender, RoutedEventArgs e)
|
{
|
var folderDialog = new System.Windows.Forms.FolderBrowserDialog
|
{
|
Description = "选择图像存储路径",
|
SelectedPath = Properties.Settings.Default.DataSavingRoad
|
};
|
|
if (folderDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
|
{
|
Properties.Settings.Default.DataSavingRoad = folderDialog.SelectedPath;
|
SetDataSavingRoad.Text = folderDialog.SelectedPath;
|
}
|
// 记录日志
|
OperateLogService.LogOperation(
|
"图像存储路径修改",
|
$"路径修改为: {folderDialog.SelectedPath}",
|
null);
|
}
|
|
private void ImageDeleteCheck_Unchecked(object sender, RoutedEventArgs e)
|
{
|
|
}
|
|
private void ImageDeleteCheck_Checked(object sender, RoutedEventArgs e)
|
{
|
|
}
|
|
private void ImageSaveCheck_Unchecked(object sender, RoutedEventArgs e)
|
{
|
ImageSave = false;
|
// 记录日志
|
OperateLogService.LogOperation(
|
"图像是否保存修改",
|
$"修改为: 不保存",
|
null);
|
}
|
|
private void ImageSaveCheck_Checked(object sender, RoutedEventArgs e)
|
{
|
ImageSave = true;
|
// 记录日志
|
OperateLogService.LogOperation(
|
"图像是否保存修改",
|
$"修改为: 保存",
|
null);
|
}
|
|
private void Confirm_Btn_Click(object sender, RoutedEventArgs e)
|
{
|
Properties.Settings.Default.Save();
|
MessageBox.Show("设置成功 注:定期清图功能需重启软件后生效", "成功", MessageBoxButton.OK, MessageBoxImage.Asterisk);
|
}
|
|
private void ImageCompressionRatio_LostFocus(object sender, RoutedEventArgs e)
|
{
|
if (ImageCompressionRatio.Value == null) { return; }
|
ImageCompressionRatio_main = (int)ImageCompressionRatio.Value;
|
// 记录日志
|
OperateLogService.LogOperation(
|
"图像压缩比率修改",
|
$"修改为: {ImageCompressionRatio_main}",
|
null);
|
}
|
|
private void Data_deleteImage_LostFocus(object sender, RoutedEventArgs e)
|
{
|
if (Data_deleteImage.Value == null) { return; }
|
ImageDeleteData_main = (int)Data_deleteImage.Value;
|
// 记录日志
|
OperateLogService.LogOperation(
|
"清图周期修改",
|
$"修改为: {ImageDeleteData_main}",
|
null);
|
}
|
|
private void ImageFormat_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
if (!isF) return;
|
switch (ImageFormat.SelectedIndex)
|
{
|
case 0:
|
ImageFormat_main = ".BMP";
|
break;
|
case 1:
|
ImageFormat_main = ".JPG";
|
break;
|
case 2:
|
ImageFormat_main = ".PNG";
|
break;
|
default:
|
break;
|
|
}
|
if (ImageFormat.SelectedIndex == 0)
|
{
|
CompressionVisible.Visibility = Visibility.Collapsed;
|
}
|
else
|
{
|
CompressionVisible.Visibility = Visibility.Visible;
|
}
|
// 记录日志
|
OperateLogService.LogOperation(
|
"图片保存格式修改",
|
$"修改为: {ImageFormat_main}",
|
null);
|
}
|
|
private void ImageFormat_LostFocus(object sender, RoutedEventArgs e)
|
{
|
if (!isF) return;
|
switch (ImageFormat.SelectedIndex)
|
{
|
case 0:
|
ImageFormat_main = ".BMP";
|
break;
|
case 1:
|
ImageFormat_main = ".JPG";
|
break;
|
case 2:
|
ImageFormat_main = ".PNG";
|
break;
|
default:
|
break;
|
}
|
if (ImageFormat.SelectedIndex == 0)
|
{
|
CompressionVisible.Visibility = Visibility.Collapsed;
|
}
|
else
|
{
|
CompressionVisible.Visibility = Visibility.Visible;
|
}
|
// 记录日志
|
OperateLogService.LogOperation(
|
"图片保存格式修改",
|
$"修改为: {ImageFormat_main}",
|
null);
|
}
|
|
private void MemoryAlarmCheck_Unchecked(object sender, RoutedEventArgs e)
|
{
|
MemoryAlarm_main = false;
|
}
|
|
private void MemoryAlarmCheck_Checked(object sender, RoutedEventArgs e)
|
{
|
MemoryAlarm_main = true;
|
}
|
|
private void MemoryAlarm_LostFocus(object sender, RoutedEventArgs e)
|
{
|
if (MemoryAlarm.Value == null) { return; }
|
ImageMemoryAlarm_main = (int)MemoryAlarm.Value;
|
}
|
|
private (double usedPercentage, string driveName) GetDriveUsage()
|
{
|
// 获取系统盘
|
DownloadData downloadData = new DownloadData();
|
DriveInfo drive = new DriveInfo($"{downloadData.SetDataSavingRoad.Text}");
|
double totalSpace = drive.TotalSize;
|
double freeSpace = drive.AvailableFreeSpace;
|
double usedPercentage = 100 - (freeSpace / totalSpace * 100);
|
|
return (usedPercentage, drive.Name);
|
}
|
public async void CheckStorage()
|
{
|
while (isOP)
|
{
|
if (MemoryAlarm_main)
|
{
|
var (usedPercentage, driveName) = GetDriveUsage();
|
int threshold = 100 - (int)MemoryAlarm.Value;
|
Dispatcher.Invoke(() =>
|
{
|
if (usedPercentage >= threshold)
|
{
|
// 报警:显示红色警告
|
MessageBox.Show($"{driveName} 盘已使用 {usedPercentage:F1}%!", "警告", MessageBoxButton.OK, MessageBoxImage.Warning);
|
|
}
|
else
|
{
|
Console.WriteLine($"{driveName} 盘已使用 {usedPercentage:F1}%!");
|
}
|
});
|
await Task.Delay(10000);
|
}
|
else
|
{
|
await Task.Delay(10000);
|
}
|
}
|
}
|
}
|
}
|