アイドル時間の後にマウスカーソルを非表示にしたいとき、マウスを動かすと表示されます。私はタイマーを使用しようとしましたが、うまく動作しませんでした。誰か助けてくれますか?お願いします!アイドル時間の後にマウスカーソルを隠す
答えて
ここでは、それを行う方法の人為的な例があります。あなたはリサイズを使用していて、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のための '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
Environment.Tickcountが負であることを説明する: – 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. アイドル時にカーソルを隠す
- 2. 隠すマウスカーソル
- 3. レッグシステムのアイドル時間
- 4. Linuxのプロセスのアイドル時間
- 5. RTOSでのアイドル時間
- 6. MediaWIkiセッションのアイドル時間
- 7. アイドル時間後にネーミングコンテキストが停止するJBoss EAP 6.4.0
- 8. glfwでマウスカーソルを隠す
- 9. ループ時のアイドル時間の挿入
- 10. ユーザのアイドル時間をモニタする
- 11. Firebase onChildAdded()イベントがアイドル時間の後で/時には起動されない
- 12. VBアイドル時間を検出する
- 13. マルチスクリーンの設定でマウスカーソルを隠す
- 14. Chrome DevToolsのフレームレンダリングでのアイドル時間
- 15. ブラウザでのアイドル時間のカウント
- 16. アプリケーションでのタイマーベースのアイドル時間トラッキング
- 17. アイドル時マウスシステム全体を隠す、C#アプリケーションから移動時に表示
- 18. KafkaConsumerとKafkaProducerのアイドル時間設定
- 19. WebSocket上のAkkaアクターを停止またはアイドル時間後に終了
- 20. Linuxで30秒後にユーザーのアイドル時間が0にリセットされる
- 21. 制御アイドル時間外部ページ
- 22. アイドル時間30分後にADFS authがADFSサーバーにリダイレクトされる
- 23. アイドル後のスフィンクスパフォーマンス
- 24. タブ間でもアイドル時間を検出できますか?
- 25. アイドル時間1時間後にASE 15がPB開発環境(DBプロファイル接続)から切断される
- 26. ページスクロール/アイドルのスクロール時にトグルクラス
- 27. Unixの時間を隠す方法.Golangの時間?
- 28. 私のiPhone App内でアイドル時間を実装する
- 29. イオンアプリのシステムプロバイダ、時間、バッテリを隠す
- 30. JOGL2を使ってマウスカーソルを隠すには?
? Winforms、WPF、silverlight、ASP.Net –