我正在尝试记录用户不活动状态,但是当我尝试调用获取系统空闲时间的方法时,它会抛出错误说
"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;
}
任何和所有帮助将不胜感激=]
答案 0 :(得分:3)
静态方法不需要对其类的对象进行实例引用才能运行,因为它们不引用任何非静态字段,属性或方法。
当C#编译器检测到您在对象引用上调用static
方法时,它怀疑您想要调用其他方法,并发出您看到的错误。
替换
inactivity.GetIdleTime();
与
NotifyIcon.Inactivity.GetIdleTime();
解决此问题。
答案 1 :(得分:1)
不需要使用静态方法进行实例引用。
试试这个:
NotifyIcon.Inactivity.GetIdleTime();
答案 2 :(得分:0)
public static uint GetIdleTime()
不是实例方法。
相反,您需要致电:
NotifyIcon.Inactivity.GetIdleTime();