0

我正在尝试记录用户不活动,但是当我尝试调用获取系统空闲时间的方法时,它会抛出一个错误说

"Member 'NotifyIcon.Inactivity.GetIdleTime()' cannot be accessed with an instance reference; qualify it with a type name instead"

这是我获取用户空闲时间的自定义事件

private void Inactivity_Inactive(object sender, EventArgs e)
{
    inactivity.GetIdleTime();
}

以及获取空闲时间的代码方法

public static uint GetIdleTime()
{
    LASTINPUTINFO lastInput = new LASTINPUTINFO();
    lastInput.cbSize = (uint)Marshal.SizeOf(lastInput);
    GetLastInputInfo(ref lastInput);

    return (uint)Environment.TickCount - lastInput.dwTime;
}

任何和所有的帮助将不胜感激=]

4

3 回答 3

3

静态方法不需要对其类的对象的实例引用即可运行,因为它们不引用任何非静态字段、属性或方法。

当 C# 编译器检测到您static在对象引用上调用方法时,它会怀疑您想要调用其他方法,并发出您看到的错误。

代替

inactivity.GetIdleTime();

NotifyIcon.Inactivity.GetIdleTime();

来解决这个问题。

于 2013-07-03T09:52:43.043 回答
1

无需使用静态方法进行实例引用。

尝试这个:

NotifyIcon.Inactivity.GetIdleTime();
于 2013-07-03T09:53:44.443 回答
0

public static uint GetIdleTime()不是实例方法。

相反,您需要调用:

NotifyIcon.Inactivity.GetIdleTime();
于 2013-07-03T09:54:35.333 回答