Nel mio progetto ho bisogno di un blocco dell'applicazione (come il blocco di Windows). Se l'applicazione è inattiva per un periodo di tempo, l'applicazione deve essere bloccata, quindi verrà visualizzata la finestra di accesso per l'applicazione. Come posso farlo in un'applicazione WPF C#?Verificare se un'applicazione è inattiva per un periodo di tempo e bloccarla
risposta
È possibile utilizzare queste funzioni
vedono questo codice, è necessario aggiungere un timer al form e impostare this.timer1.Enabled = true;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace WindowsFormsApplication9
{
internal struct LASTINPUTINFO
{
public uint cbSize;
public uint dwTime;
}
public partial class Form1 : Form
{
[DllImport("User32.dll")]
public static extern bool LockWorkStation();
[DllImport("User32.dll")]
private static extern bool GetLastInputInfo(ref LASTINPUTINFO Dummy);
[DllImport("Kernel32.dll")]
private static extern uint GetLastError();
public static uint GetIdleTime()
{
LASTINPUTINFO LastUserAction = new LASTINPUTINFO();
LastUserAction.cbSize = (uint)System.Runtime.InteropServices.Marshal.SizeOf(LastUserAction);
GetLastInputInfo(ref LastUserAction);
return ((uint)Environment.TickCount - LastUserAction.dwTime);
}
public static long GetTickCount()
{
return Environment.TickCount;
}
public static long GetLastInputTime()
{
LASTINPUTINFO LastUserAction = new LASTINPUTINFO();
LastUserAction.cbSize = (uint)System.Runtime.InteropServices.Marshal.SizeOf(LastUserAction);
if (!GetLastInputInfo(ref LastUserAction))
{
throw new Exception(GetLastError().ToString());
}
return LastUserAction.dwTime;
}
public Form1()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
if (GetIdleTime() > 10000) //10 secs, Time to wait before locking
LockWorkStation();
}
private void Form1_Load(object sender, EventArgs e)
{
timer1.Start();
}
}
}
Impostare un timeout sul carico e ogni volta che si verifica un'azione "attiva" (è necessario collegarsi ad essi), reimpostare il timer fino all'inizio.
Sono disponibili applicazioni di esempio? – Sauron
IMO la risposta accettata, non è buono come questo metodo:
http://www.codeproject.com/Articles/30345/Application-Idle
L'articolo CodeProject utilizza i messaggi di Windows che farà sì che la componente di prendere in considerazione l'applicazione non inattivo, ad esempio
public enum ActivityMessages : int
{
/// <summary>
/// Cursor moved while within the nonclient area.
/// </summary>
WM_NCMOUSEMOVE = 0x00A0,
/// <summary>
/// Mouse left button pressed while the cursor was within the nonclient area.
/// </summary>
WM_NCLBUTTONDOWN = 0x00A1,
/// <summary>
/// Mouse left button released while the cursor was within the nonclient area.
/// </summary>
WM_NCLBUTTONUP = 0x00A2,
/// <summary>
- 1. Ritardare un'azione per un periodo di tempo
- 2. Dividere un periodo di tempo in più periodi di tempo
- 3. Aggregazione per periodo di tempo in lubridato
- 4. In un database, è meglio memorizzare un periodo di tempo come data di inizio/fine, o una data di inizio e un periodo di tempo?
- 5. Come raggruppare DataFrame per un periodo di tempo?
- 6. WPF - Rileva il mouse per un determinato periodo di tempo
- 7. Forza disconnessione utenti se gli utenti sono inattivi per un determinato periodo di tempo
- 8. ClickOnce e finestra principale inattiva
- 9. Verificare se è un oggetto
- 10. Come nascondere un div dopo un certo periodo di tempo?
- 11. Valori aggregati di colonne SQL per periodo di tempo
- 12. Filtrare i dati su un periodo di tempo in Fabric.io
- 13. Rails: acquisizione di un array di valori da un modello per un periodo di tempo
- 14. Periodo di tempo JavaScript nei giorni
- 15. Verificare se un metodo è un override?
- 16. Javascript: chiama una funzione dopo un periodo di tempo specifico
- 17. Come avviare un'attività dopo un certo periodo di tempo?
- 18. Reindirizza sito Web dopo un certo periodo di tempo
- 19. chiusura opzionale e verificare se è nil
- 20. Java: funzione di data JPQL per aggiungere un periodo di tempo per un'altra data
- 21. Come verificare se l'oggetto è un vettore
- 22. AS3: verificare se un dizionario è vuoto
- 23. JobScheduler Android: se pianifichi lo stesso lavoro con un tempo periodico, ricomincia il periodo?
- 24. Come verificare se un contenitore è stabile
- 25. Verificare se è selezionato un valore ComboBox
- 26. Come verificare se un indirizzo e-mail è falso?
- 27. Come verificare se java.lang.reflect.Type è un Enum
- 28. Come verificare se un puntatore è valido?
- 29. Come verificare se un buffer è vuoto?
- 30. Verificare se è stato definito un metodo
Sai come ottenere per l'applicazione MVC? – alice7
Rileva quando il sistema nel suo complesso è inattivo, non quando un'applicazione specifica è inattiva. –