アイドル時間の後にマウスカーソルを非表示にしたいとき、マウスを動かすと表示されます。私はタイマーを使用しようとしましたが、うまく動作しませんでした。誰か助けてくれますか?お願いします!アイドル時間の後にマウスカーソルを隠す
答えて
ここでは、それを行う方法の人為的な例があります。あなたはリサイズを使用していて、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. Linuxのプロセスのアイドル時間
- 3. MediaWIkiセッションのアイドル時間
- 4. glfwでマウスカーソルを隠す
- 5. ユーザのアイドル時間をモニタする
- 6. VBアイドル時間を検出する
- 7. アイドル時マウスシステム全体を隠す、C#アプリケーションから移動時に表示
- 8. マルチスクリーンの設定でマウスカーソルを隠す
- 9. Linuxで30秒後にユーザーのアイドル時間が0にリセットされる
- 10. 制御アイドル時間外部ページ
- 11. アイドル後のスフィンクスパフォーマンス
- 12. タブ間でもアイドル時間を検出できますか?
- 13. 私のiPhone App内でアイドル時間を実装する
- 14. イオンアプリのシステムプロバイダ、時間、バッテリを隠す
- 15. Pythonを使用してアイドル時間を検出する
- 16. 与えられた開始時間と終了時間の合計アイドル時間を求めるアルゴリズム
- 17. JOGL2を使ってマウスカーソルを隠すには?
- 18. CakePHP - ユーザがアイドル状態になるまでの時間制限後に自動的にログアウトする
- 19. アプリケーション入力アイドル時間を取得する
- 20. ブラウザのアイドル時間を調べる方法
- 21. WPFアプリケーションの非アクティブ/アイドル時間の取得
- 22. VimScript:アイドル時間後に実行されるアクションの自動作成はありますか?
- 23. DispatcherTimerを使用したアイドル時間 - 動作しません。
- 24. google.maps.event.addListener(マップ、「アイドル」、関数は() - それは、アイドル時間を指定することが可能です
- 25. 最後にキーが押されてからの非アクティブ/アイドル時間の検出方法
- 26. 時間ラベルを表示して別の時間ラベルを隠す方法Wpfツールキットチャート
- 27. 特定の時間後にリダイレクトする
- 28. statusnet - 時間間隔の経過後にページコンテンツを更新する
- 29. x時間後のMYSQLテーブルドロップ
- 30. 最後の時間から
? Winforms、WPF、silverlight、ASP.Net –