相关疑难解决方法(0)

空闲时间后隐藏鼠标光标

我希望在空闲时间后隐藏鼠标光标,当我移动鼠标时它会显示出来.我试图使用计时器,但它不能正常工作.有谁能够帮我?请!

c#

12
推荐指数
2
解决办法
2万
查看次数

Application.Idle事件未在WPF应用程序中触发

我正在使用第三方Windows窗体控件,使用Application.Idle事件执行一些"延迟"操作.

现在我们将应用程序移动到WPF,这些操作停止了.我发现没有按预期引发System.Windows.Forms.Application.Idle事件.

如何在WPF应用程序中触发Idle事件,以便我可以继续使用该第三方控件(在WindowsFormsHost中)?这是不是可以修改Windows窗体控件.

wpf windowsformshost winforms

5
推荐指数
1
解决办法
8959
查看次数

WPF如何有效检测用户活动

我有一个应用程序,在其中 x 秒不活动后我必须注销。因此,我有一个计时器正在运行,并根据上次重置的用户活动计算时间跨度:

dtLastActivity = DateTime.Now;
Run Code Online (Sandbox Code Playgroud)

所以问题是,我认为这不是将程序中的每个事件与上述代码相关联的最佳方法。但最终我不需要每个事件:所有有用的就是跟踪 KEYPRESS 和 MOUSEUP。

在主窗口中跟踪这两个事件是否正确?

我必须承认,我仍然没有付诸实践(但我会),因为我不确定这是否是达到标题目的的最佳方法。

作为 WPF 新手,我也不清楚在主窗口中跟踪键盘和鼠标是否不会影响子级(即实际上是事件目标的控件)的行为。

预先感谢您的任何帮助。

---编辑--- 建议的解决方案非常优雅。特别是这个:

    public static class IdleTimeDetector
    {
        [DllImport("user32.dll")]
        static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);

        public static IdleTimeInfo GetIdleTimeInfo()
        {
            int systemUptime = Environment.TickCount,
                    lastInputTicks = 0,
                    idleTicks = 0;

            LASTINPUTINFO lastInputInfo = new LASTINPUTINFO();
            lastInputInfo.cbSize = (uint)Marshal.SizeOf(lastInputInfo);
            lastInputInfo.dwTime = 0;

            if (GetLastInputInfo(ref lastInputInfo))
            {
                lastInputTicks = (int)lastInputInfo.dwTime;
                idleTicks = systemUptime - lastInputTicks;
            }

            return new IdleTimeInfo
            {
                LastInputTime = DateTime.Now.AddMilliseconds(-1 * idleTicks), …
Run Code Online (Sandbox Code Playgroud)

c# wpf events android-activity

3
推荐指数
1
解决办法
2117
查看次数

标签 统计

c# ×2

wpf ×2

android-activity ×1

events ×1

windowsformshost ×1

winforms ×1