Hardwarová akcelerace   zodpovězená otázka

VB.NET

Dobrý den, ve své aplikaci potřebuji za běhu měnit hardwarovou akceleraci z maxima na minimum. Prozatím jsem to vyřešil tím, že spustím dialog Poradce při potížích a tam programově kliknu myší na ten slider a posunu ho. Existuje ve VB .net nějaké elegantnější řešení, případně ví někdo, kde jsou tato data uložena? Stačí nakopnout. Díky.

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

Ok, nakonec jsem to našel. Pro Win XP v registrech "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet \Control\Video\{8F87A268-E8E0-49B0-97FB-DC514505BC3C}\0000" položka "Acceleration.Level" hodnota 5 je minimum, hodnota 0 je úplná akcelerace. Jen se to asi bude lišit podle typu grafické karty.

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

No pochybuju o tom, že pouhou změnou hodnoty v registru se docílí nějakého výsledku. Podle mě se musí nějak "upozornit" systém že byla provedená změna HW akcelerace, protože to je celkem klíčová věc pro systém.

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

Ne, vyzkoušeno, stačí pouze změnit hodnotu, slider se posune a akcelerace se změní.

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

Pro všechny, kteří to přepínání budou řešit ušetřím hledání na googlu, kde k tomuto moc informací není. Přiložený kód by měl fungovat na všech PC, vyzkoušeno ve Win XP.

 Public Sub Akcelerace(ByVal Stav As Boolean)

        Dim UmisteniKlice As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("HARDWARE\DEVICEMAP\VIDEO")
        Dim cesta As String = UmisteniKlice.GetValue("\Device\Video0")

        Dim Cesta1() As String = cesta.Split("\")
        Dim Delka As Integer = Cesta1.Length - 1
        Dim HotovaCesta As String = ""
        Dim level As String

        Select Case Stav
            Case True
                level = "0"
            Case False
                level = "5"
            Case Else
                level = "0"
        End Select


        For i As Integer = 0 To Delka
            Select Case i
                Case Delka - 1
                    HotovaCesta = (Cesta1(i))
                Case Delka
                    HotovaCesta = HotovaCesta & "\" & (Cesta1(i)) & "\"
            End Select
        Next

        Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SYSTEM\CurrentControlSet\Control\Video\" & HotovaCesta, True).SetValue("Acceleration.Level", Level, Microsoft.Win32.RegistryValueKind.DWord)
        Microsoft.Win32.Registry.LocalMachine.Close()
    End Sub

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