유휴 시간이 지난 후 마우스 커서를 숨기고 마우스를 움직이면 표시됩니다. 타이머를 사용하려고했지만 제대로 작동하지 않았습니다. 아무도 나를 도울 수 있습니까? 부디!유휴 시간이 지난 후 마우스 커서를 숨기기
답변
다음은이를 수행하는 방법에 대한 인위적인 예제입니다. 당신이 윈폼을 사용하고 있습니다 만 Windows 시스템에 배포 할 경우
public partial class Form1 : Form
{
public TimeSpan TimeoutToHide { get; private set; }
public DateTime LastMouseMove { get; private set; }
public bool IsHidden { get; private set; }
public Form1()
{
InitializeComponent();
TimeoutToHide = TimeSpan.FromSeconds(5);
this.MouseMove += new MouseEventHandler(Form1_MouseMove);
}
void Form1_MouseMove(object sender, MouseEventArgs e)
{
LastMouseMove = DateTime.Now;
if (IsHidden)
{
Cursor.Show();
IsHidden = false;
}
}
private void timer1_Tick(object sender, EventArgs e)
{
TimeSpan elaped = DateTime.Now - LastMouseMove;
if (elaped >= TimeoutToHide && !IsHidden)
{
Cursor.Hide();
IsHidden = true;
}
}
}
커서가 'Cursor.Hide'를 찾을 수 없습니다. – lindexi
다음은 마우스와 키보드 모두 공회전 처리 할 수 user32 GetLastInputInfo
을 아주 쉽게 사용할 수있다 : 당신은 아마 커서의 가시성을 무시하고 일부 누락 된 논리를 가지고 있었다.
public static class User32Interop
{
public static TimeSpan GetLastInput()
{
var plii = new LASTINPUTINFO();
plii.cbSize = (uint)Marshal.SizeOf(plii);
if (GetLastInputInfo(ref plii))
return TimeSpan.FromMilliseconds(Environment.TickCount - plii.dwTime);
else
throw new Win32Exception(Marshal.GetLastWin32Error());
}
[DllImport("user32.dll", SetLastError = true)]
static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
struct LASTINPUTINFO
{
public uint cbSize;
public uint dwTime;
}
}
다음 Form
public partial class MyForm : Form
{
Timer activityTimer = new Timer();
TimeSpan activityThreshold = TimeSpan.FromMinutes(2);
bool cursorHidden = false;
public Form1()
{
InitializeComponent();
activityTimer.Tick += activityWorker_Tick;
activityTimer.Interval = 100;
activityTimer.Enabled = true;
}
void activityWorker_Tick(object sender, EventArgs e)
{
bool shouldHide = User32Interop.GetLastInput() > activityThreshold;
if (cursorHidden != shouldHide)
{
if (shouldHide)
Cursor.Hide();
else
Cursor.Show();
cursorHidden = shouldHide;
}
}
}
우아한 해결책, 고맙습니다. – frameworkninja
환경을 설명하기 위해. – mikesl
이 Environment.Tickcount가 부정적이라고 설명 할 필요 :
public static class User32Interop
{
public static TimeSpan GetLastInput()
{
var plii = new LASTINPUTINFO();
plii.cbSize = (uint)Marshal.SizeOf(plii);
if (GetLastInputInfo(ref plii))
{
int idleTime = unchecked(Environment.TickCount - (int)plii.dwTime);
return TimeSpan.FromMilliseconds(idleTime);
}
else
throw new Win32Exception(Marshal.GetLastWin32Error());
}
[DllImport("user32.dll", SetLastError = true)]
static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
struct LASTINPUTINFO
{
public uint cbSize;
public uint dwTime;
}
}
- 1. glfw를 사용하여 마우스 커서를 숨기기
- 2. 특정 시간이 지난 후 타이머를 중지하는 중
- 3. 일정 시간이 지난 후 로그 아웃
- 4. VimScript : 유휴 시간이 지난 후 수행 할 작업에 대한 자동 작성 기능이 있습니까?
- 5. 시간이 지난 경우
- 6. 시간이 지난 후에 스레드를 중지하십시오.
- 7. Linux에서 30 초 후 사용자 유휴 시간이 0으로 재설정 됨
- 8. 마우스 커서를 화살표로 변경
- 9. 일정 시간이 지난 후 ASP.NET에서 함수를 자동으로 호출하는 방법은 무엇입니까?
- 10. 일정 시간이 지난 후 작업을 실행하는 방법은 무엇입니까?
- 11. 몇 시간이 지난 후 qtip 툴팁을 숨기는 방법?
- 12. Qt 임의의 시간이 지난 후 meego에 응용 프로그램을 적용
- 13. 주어진 시간이 지난 후 MFC 대화 상자를 닫거나 버리십시오.
- 14. python3 특정 시간이 지난 후 자동 로그 아웃
- 15. X 시간이 지난 후 아이콘 이미지가 바뀌는 Java
- 16. 마우스 팝업시 마우스 입력시 숨기기
- 17. 웹 브라우저 : 마우스 커서 숨기기
- 18. ASP.NET VS2008 웹 사이트 응용 프로그램 긴 유휴 시간이 지난 후 첫 번째로드시로드하는 데 너무 오래 걸립니다.
- 19. C에서 화면에서 마우스 커서를 옮기기
- 20. PythonCard에서 마우스 커서를 변경하는 방법
- 21. jquery로 마우스 커서를 숨기는 방법
- 22. 마우스 포인터 숨기기
- 23. Java 응용 프로그램은 사용자 유휴 시간이 10 분이 경과 한 후 화면이 응답하지 않게합니다.
- 24. 여러 사용자 로그인 후 어느 정도 시간이 지난 후 ASP.Net C# 응용 프로그램이 느림
- 25. 유휴 시간 후 PHP가 MongoDB에 연결됨
- 26. 리눅스 유휴 이벤트 Python
- 27. JavaScript를 사용하여 유휴 상태 일 때 마우스 커서가 보이지 않게하기
- 28. 지난 5 분 동안 페이지가 유휴 상태인지 여부를 묻는 메시지
- 29. 마우스 위치에 따라 커서를 변경하는 방법은 무엇입니까?
- 30. 자바에서 마우스 커서를 변경하는 방법은 무엇입니까?
어떤 기술? Winforms, WPF, silverlight, ASP.Net –