解决刷卡登录问题

This commit is contained in:
2026-09-03 16:42:44 +08:00
parent f2c645f5b3
commit 84f1a16598
2 changed files with 28 additions and 11 deletions
+4 -2
View File
@@ -82,14 +82,16 @@ namespace JinYuan.Helper
}
private int KeyboardHookProc(int nCode, Int32 wParam, IntPtr lParam)
{
EventMsg msg = (EventMsg)Marshal.PtrToStructure(lParam, typeof(EventMsg));
codes.Add(msg);
if (ScanerEvent != null && msg.message == 13 && msg.paramH > 0 && !string.IsNullOrEmpty(codes.Result))
{
ScanerEvent(codes);
// 返回一个非零值,阻断键盘消息继续向下传递
return 1;
}
return CallNextHookEx(hKeyboardHook, nCode, wParam, lParam);
}
public class ScanerCodes
+24 -9
View File
@@ -207,6 +207,11 @@ namespace LargeSquareOne
idleTimer.Interval = 1000;
idleTimer.Tick += (s, e) =>
{
if (CommonMethods.LoginOut)
{
return;
}
if ((DateTime.Now - lastActivityTime).TotalMinutes >= 1)
{
idleTimer.Stop();
@@ -220,10 +225,15 @@ namespace LargeSquareOne
private void btn_logOut_Click(object sender, EventArgs e)
{
idleTimer.Stop();
//idleTimer.Stop();
// 处理用户超时
this.BeginInvoke(new Action(() => LoginLocalOut()));
this.BeginInvoke(new Action(() => {
LoginLocalOut();
// 为了取消当前按钮的焦点
avMesicon.Focus();
}));
}
private async void FrmNewMain_Load(object sender, EventArgs e)
@@ -533,11 +543,14 @@ namespace LargeSquareOne
}
CommonMethods.IsLoginOk = true;
CommonMethods.LoginOut = false;
//存储用户对象
CommonMethods.currentAdmin = sysAdmin;
//1.设置登录用户
this.lbl_LoginLevel.Text = CommonMethods.currentAdmin?.LoginLevel;
this.lbl_LoginName.Text = CommonMethods.currentAdmin?.LoginName;
this.lbl_LoginName.Visible = true;
//登录日志
CommonMethods.AddOPLog(false, "登录成功,登录用户".Translated() + $":{CommonMethods.currentAdmin?.LoginName}," + "权限".Translated() + $":{CommonMethods.currentAdmin?.LoginLevel}");
@@ -678,13 +691,13 @@ namespace LargeSquareOne
}
// 登录状态:只在状态变化时更新
bool isSwipeCardMode = CommonMethods.sysConfig.SwipeCardMode && !CommonMethods.IsLoginOk;
if (lbl_LoginName.Visible == isSwipeCardMode)
{
lbl_LoginName.Visible = !isSwipeCardMode;
if (isSwipeCardMode)
lbl_LoginLevel.Text = "未登录";
}
//bool isSwipeCardMode = CommonMethods.sysConfig.SwipeCardMode && !CommonMethods.IsLoginOk;
//if (lbl_LoginName.Visible == isSwipeCardMode)
//{
// lbl_LoginName.Visible = !isSwipeCardMode;
// if (isSwipeCardMode)
// lbl_LoginLevel.Text = "未登录";
//}
}
System.Diagnostics.Debug.Print("ShowButtonEven_Run end at " + DateTime.Now.ToString("HH:mm:ss.fff"));
@@ -1311,6 +1324,8 @@ namespace LargeSquareOne
LogHelper.Instance.WriteLog("用户".Translated() + $":{CommonMethods.currentAdmin?.LoginName} - " + "退出".Translated());
CommonMethods.LoginOut = true;
CommonMethods.IsLoginOk = false;
this.lbl_LoginName.Visible = false;
lbl_LoginLevel.Text = "未登录";
}
/// <summary>