Čau, ona se hned nabízí otázka, jak poznáš že se aplikace používá? Když si uživatel pustí film, tak pokud ho nehodláš sledovat přes webku, nemáš šanci zjistit, jestli se po hodině ještě na ten film kouká, nebo šel pryč
.
Záleží tak trochu o jakou aplikaci jde. Asi bych začal s
focusem. Vždy když zachytíš událost, že aplikace ztratila focus, spustíš timer na 30 minut. Při získání fokusu ten timer zase zrušíš. Pokud ti doběhne na nulu, "můžeš" tu aplikaci zavřít.
Tady jsem našel C# zdroják, kterej monitoruje všechny tyto změny. Přes podmínku se případně můžeš zaměřit pouze na tu jednu aplikaci
- Kód: Vybrat vše
public class FocusMonitor
{
public FocusMonitor()
{
AutomationFocusChangedEventHandler focusHandler = OnFocusChanged;
Automation.AddAutomationFocusChangedEventHandler(focusHandler);
}
private void OnFocusChanged(object sender, AutomationFocusChangedEventArgs e)
{
AutomationElement focusedElement = sender as AutomationElement;
if (focusedElement != null)
{
int processId = focusedElement.Current.ProcessId;
using (Process process = Process.GetProcessById(processId))
{
Debug.WriteLine(process.ProcessName);
}
}
}
}
Dále bych si hlídal, kdy naposledy uživatel nějakým způsobem interagoval s OS. Opět od poslední interakce spustit časovat. Když tak
funkční kód v C#.
Nenapsal jsi v jakém jazyce ten skript chceš napsat. Tak si to pro ostatní když tak dogoogli
.