zákaz režimu spánku   otázka

VB.NET

Zdravím,

nemáte náký jednoduchý kod , který vložim do aplikačky, který zabrání přechodu do režimu spánku, s tím že to nastavení potřebuju měnít povolit/zakázat a nechci menít profil uživatele ve windows.Četl jsem spousta kódu jak tomu zabráni přes timer a následně třeba pohybování myší ale to my příjde jak oprava počítače kladivem :).

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zdravím,

řešil jsem přesně opačný problém když jsem náhrával audio ze zvukovky. Dělal jsem to pomocí WASAPI a pokud k němu zůstane aplikace připojena, je sleep a hibernate deaktivován. K připojení k WASAPI jsem používal open source FW NAudio.

Chápu, že je to docela podobné jako pohybování myší za uživatele, ale třeba se vám to bude líbit více :-)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zdravím,

kouknu na to a dám vědět děkuji.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak jsem to zatim udělal na inspiraci te zvukovky přes microfon nevim jak to bude fungovat jestli je to hovadina tak dejte vědet protože nevim jak je to s ukladaním zaznamu nebo když dotyčnej nebude mít zvukovku atd..


Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick

Private Declare Function record Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As   String, ByVal lpstrReturnString As String, ByVal uReturnLength As Integer, ByVal hwndCallback As Integer) As Integer

If My.Settings.RezimSpanku = False Then
                record("open new Type waveaudio Alias recsound", "", 0, 0)
                record("record recsound", "", 0, 0)

            End If
            If My.Settings.RezimSpanku = True Then
                record("close recsound", "", 0, 0)
            End If
End Sub

zapnutí a vypnutí=My.Settings.RezimSpanku

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Toto bude nejspíše fungovat, ale špatně se vám budou ošetřovat různé chybové stavy, které zmiňujete.

Použil bych implementaci WasapiCapture z NAudio, která to řeší za vás.

Stačí použít metody StartRecording a StopRecording

https://github.com/naudio/NAudio/blob/39...

Je to teda jako dobývat stanové městečko tankovou brigádou, ale nic lepšího poradit neumím. :-) Pořád lepší než hýbat myší za uživatele :-)

Možná by byla i cesta kouknout se do zdrojových kódů nějakého video přehrávače například VLC, ty to také musí

nějak řešit aby se počítač neuspal uprostřed filmu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jednoduše takto:

public class Utils
{
    [DllImport("kernel32.dll")]
    static extern uint SetThreadExecutionState(uint esFlags);
    const uint ES_CONTINUOUS = 0x80000000;
    const uint ES_SYSTEM_REQUIRED = 0x00000001;

    public static bool PreventComputerSleep()
    {
        return (SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED) != 0);
    }

    public static bool AllowComputerSleep()
    {
        return (SetThreadExecutionState(ES_CONTINUOUS) != 0);
    }
}
nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback