forodo
یک شنبه 06 بهمن 1392, 11:49 صبح
سلام
من می خوام مثلاً بعد از 60 ثانیه که هیچ کاری در برنامه ام انجام نشد برنامه Minimize شود.
با تابع کتابخانه ای زیر می شود این کار رو انجام داد ولی این کد برای کل سیستم هستش یعنی وقتی که من حتی دارم درون ورد چیزی می نویسم برنامه ام هم از حالت بیکاری در میاد.
مشکل دیگه ای که هست اینه که وقتی مثلاً Power DVD در حال پخش فیلم هستش هر 10 ثانیه نمی دونم چه اتفاقی می افته که سیستم از حالت بیکاری درمیاد به همین دلیل اصلاً نمی تونم از اون تابع کتابخانه ای استفاده کنم.
لطفاً بگید چه کاری می تونم انجام بدم.
این هم کدای تابع کتابخانه ای که به دردم نمی خوره :
struct LASTINPUTINFO
{
public uint cbSize;
public uint dwTime;
}
[DllImport("User32.dll")]
private static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
public static uint GetIdleTime()
{
LASTINPUTINFO lastInPut = new LASTINPUTINFO();
lastInPut.cbSize = (uint)System.Runtime.InteropServices.Marshal.SizeO f(lastInPut);
GetLastInputInfo(ref lastInPut);
return ((uint)Environment.TickCount - lastInPut.dwTime);
}
private void timer1_Tick(object sender, EventArgs e)
{
this.Text = (GetIdleTime() / 1000).ToString();
if ((GetIdleTime() / 1000) > 60)
{
this.WindowState = FormWindowState.Minimized;
}
}
من می خوام مثلاً بعد از 60 ثانیه که هیچ کاری در برنامه ام انجام نشد برنامه Minimize شود.
با تابع کتابخانه ای زیر می شود این کار رو انجام داد ولی این کد برای کل سیستم هستش یعنی وقتی که من حتی دارم درون ورد چیزی می نویسم برنامه ام هم از حالت بیکاری در میاد.
مشکل دیگه ای که هست اینه که وقتی مثلاً Power DVD در حال پخش فیلم هستش هر 10 ثانیه نمی دونم چه اتفاقی می افته که سیستم از حالت بیکاری درمیاد به همین دلیل اصلاً نمی تونم از اون تابع کتابخانه ای استفاده کنم.
لطفاً بگید چه کاری می تونم انجام بدم.
این هم کدای تابع کتابخانه ای که به دردم نمی خوره :
struct LASTINPUTINFO
{
public uint cbSize;
public uint dwTime;
}
[DllImport("User32.dll")]
private static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
public static uint GetIdleTime()
{
LASTINPUTINFO lastInPut = new LASTINPUTINFO();
lastInPut.cbSize = (uint)System.Runtime.InteropServices.Marshal.SizeO f(lastInPut);
GetLastInputInfo(ref lastInPut);
return ((uint)Environment.TickCount - lastInPut.dwTime);
}
private void timer1_Tick(object sender, EventArgs e)
{
this.Text = (GetIdleTime() / 1000).ToString();
if ((GetIdleTime() / 1000) > 60)
{
this.WindowState = FormWindowState.Minimized;
}
}