Windows mobile-jak zakázat uspávání   zodpovězená otázka

VB.NET

Zdravím, takže se mi zdárně povedlo udělat si z mého HTC diamond dalkové ovládání k myši a to včetně použití polohového senzoru (tímto děkuji za potřebné knihovny které jsem si vypůjčil ze hry Helicopter).

Už dolaďuji pouze citlivost protože to zatím není uplně plynulé, ale když si člověk zvykne tak se s tim počítač dá ovládat. Trápí mě poslední věc a to je automatické uspávání mobilu. Když s mobilem chvíli nic nedělám (mám to myslim nastavené na 30 sekund) mobil se uspí aby šetřil baterii. Tím dojde mimo jiné zřejmě k odpojení wifi což mi působí problémy. Nevěděl by někdo jak se dá mobil přimět k tomu, aby pokud běží moje aplikace nepřecházel do režimu spánku? Zkoušel jsem googlit ale o Visual Basicu pro windows mobile jsem toho příliš nenašel.

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

Na tento problém jsem jednou narazil, potřeboval jsem udržet mobil při životě na minimálním osvětlení, zatímco jsem timerem čekal na nějakou dobu. Nevyhnul jsem se využití Windows API:

Imports System.Runtime.InteropServices

Public Class SystemCalls
    'See more at http://msdn2.microsoft.com/en-us/library/ms927178.aspx
    Public Const VK_NONAME As Byte = 252
    ' Do nothing
    Public Const VK_ESC As Byte = 27
    ' Smartphone back-button
    Public Const VK_F4 As Byte = 115
    ' Home Screen
    Public Const VK_APP6 As Byte = 198
    ' Lock the keys on Smartphone
    Public Const VK_F22 As Byte = 133
    ' Lock the keys on PocketPC (VK_KEYLOCK)
    Public Const VK_F16 As Byte = 127
    ' Toggle Speakerphone
    Public Const VK_OFF As Byte = 127
    ' Power button
    ''' <summary>
    ''' Puts `key` into to global keyboard buffer
    ''' </summary>
    ''' <param name="key"></param>
    Public Shared Sub SendKey(ByVal key As Byte)
        Const KEYEVENTF_KEYUP As Integer = 2
        Const KEYEVENTF_KEYDOWN As Integer = 0
        keybd_event(key, 0, KEYEVENTF_KEYDOWN, 0)
        keybd_event(key, 0, KEYEVENTF_KEYUP, 0)
    End Sub

    <DllImport("coredll", SetLastError:=True)> _
    Private Shared Sub keybd_event(ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)
    End Sub
End Class

Poté stačí timerem co nějakou dobu (třeba sekundu) spouštět tuto proceduru (Imituje zmáčknutí tlačítka v parametru přes Windows API - VK_NONAME znamená, že se nic nestane, pouze se oživí podsvícení a podobně...)

SystemCalls.SendKey(SystemCalls.VK_NONAME)

Hodně štěstí...

nahlásit spamnahlásit spam 3 / 3 odpovědětodpovědět

Díky, vyzkouším hned jak příjdu domů:)

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

Funguje to výborně, moc děkuji:)

nahlásit spamnahlásit spam 0 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