RaUI/Source/Itrycn_Project2/OTools/FrmScan.cs
zilinsoft b4e236fd55 ### 2025-01-06 星期一更新
------
#### OnLineUpgradeConfig    V1.0.2501.0601
- *.[修复]修复用户管理列表无法默认勾选已选择用户的BUG。
#### RaUI    V4.0.2501.0601
- *.[新增]RyFiles类新增SetFileDate、SetFileCreationTime、SetFileLastWriteTime方法。
- *.[新增]RyFiles.CopyBigFile方法现在会同步来源文件的创建和修改时间。
- *.[新增]ryQuickSQL类新增GetPostData函数,将数据快速转成Post数据。
- *.[改进]执行MySQL下的ExecuteNonQuery时,如果遇到连接关闭错误,允许重连并重新执行。
- *.[改进]IDbInterface在执行新的SQL语句前,自动清空最后错误。
- *.[修复]修复LayeredForm窗体以正常窗体打开的时候,文本框无法编辑的BUG。
- *.[修复]修复ApkOp获取apk权限时可能带乱码的BUG。
- *.[修复]修复WeifenLuo.WinFormsUI.Docking的ResourceManager.GetString路径不对导致报错的BUG。
2025-01-06 11:14:35 +08:00

172 lines
6.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Itrycn_Project2;
using ryCommon;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows.Forms;
namespace Itrycn_Project2
{
public partial class FrmScan : RySkins.SKinForm
{
/// <summary>
/// 最大日志数量
/// </summary>
private int MaxLogsCount { get; set; } = 1000;
public FrmScan()
{
InitializeComponent();
//配置软件信息
OlvGameName.AspectGetter = delegate (object x) { return ((ItemInfo)x).Name; };
OlvAddTime.AspectGetter = delegate (object x) { return ((ItemInfo)x).AddTime.ToDateTimeStr(); };
OlvLogTime.AspectGetter = delegate (object x) { return ((LogInfo)x).LogTime.ToDateTimeStr(); };
OlvLogText.AspectGetter = delegate (object x) { return ((LogInfo)x).LogText; };
LvLogs.FormatRow += delegate (object x, BrightIdeasSoftware.FormatRowEventArgs e) {
LogInfo item = (LogInfo)e.Model;
if (item.Color != Color.Black)
{
e.Item.ForeColor = item.Color;
}
};
}
private void FrmStart_Shown(object sender, EventArgs e)
{
}
private void FrmStart_FormClosing(object sender, FormClosingEventArgs e)
{
}
private void FrmStart_Load(object sender, EventArgs e)
{
}
/// <summary>
/// 添加日志
/// </summary>
/// <param name="log"></param>
public void AddLog(string log)
{
AddLog(log, "", Color.Black);
}
/// <summary>
/// 添加日志
/// </summary>
/// <param name="log"></param>
/// <param name="color"></param>
public void AddLog(string log, Color color)
{
AddLog(log, "", color);
}
/// <summary>
/// 添加日志
/// </summary>
/// <param name="log"></param>
/// <param name="tag"></param>
/// <param name="color"></param>
public void AddLog(string log, string tag, Color color)
{
try
{
this.Invoke(new Action(() =>
{
var count = LvLogs.GetItemCount();
if (count > MaxLogsCount)
{
LvLogs.RemoveObject(LvLogs.GetModelObject(count - 1));
}
LvLogs.InsertObjects(0, new LogInfo[] { new LogInfo() { LogTime = DateTime.Now, LogText = log, LogTag = tag, Color = color } });
OlvLogTime.Text = "时间(" + LvLogs.GetItemCount() + ")";
}));
}
catch { }
}
/// <summary>
/// 显示状态
/// </summary>
/// <param name="state"></param>
private void ShowState(string state)
{
this.Invoke(new Action(() =>
{
TsState.Text = "状态:" + state;
}));
}
bool IsRunning = false;
#pragma warning disable CS0414 // 字段“FrmScan.IsExit”已被赋值但从未使用过它的值
bool IsExit = false;
#pragma warning restore CS0414 // 字段“FrmScan.IsExit”已被赋值但从未使用过它的值
private void BtnScan_Click(object sender, EventArgs e)
{
if (IsRunning) { IsExit = true; return; }
IsRunning = true;
BtnScan.Text = "停止";
LvCbResult.ClearObjects();
LvLogs.ClearObjects();
TabLogs.Text = "日志(" + LvLogs.GetItemCount() + ")";
TsState.Text = "状态:正在加载数据...";
OlvGameName.Text = "游戏名[" + LvCbResult.GetItemCount() + "]";
Thread th = new Thread(Start);
th.Start();
void Start()
{
List<ItemInfo> list = new List<ItemInfo>();
//RyWeb.QuickWeb ry3h3 = new RyWeb.QuickWeb();
//↓将扫描的代码写在下面
//↑将扫描的代码写在上面
IsExit = false;
IsRunning = false;
this.Invoke(new Action(() =>
{
//LvCbResult.AddObjects(list);
OlvGameName.Text = "游戏名[" + LvCbResult.GetItemCount() + "]";
TsState.Text = "状态:扫描完毕,共发现" + LvCbResult.GetItemCount() + "个.";
BtnScan.Text = "扫描";
}));
}
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (LvLogs.SelectedObject == null) { return; }
var item = (LogInfo)LvLogs.SelectedObject;
RyFiles.CopyToClip(item.LogText);
}
/// <summary>
/// 日志信息
/// </summary>
class LogInfo
{
/// <summary>
/// 日志时间
/// </summary>
public DateTime LogTime { get; set; } = DateTime.Now;
/// <summary>
/// 日志内容
/// </summary>
public string LogText { get; set; }
/// <summary>
/// 日志Tag
/// </summary>
public string LogTag { get; set; }
/// <summary>
/// 日志文字颜色
/// </summary>
public Color Color { get; set; } = Color.Black;
}
class ItemInfo
{
public string Name { get; set; } = "";
public DateTime AddTime { get; set; }
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
LvLogs.CopyObjectsToClipboard();
}
}
}