Rozlišení monitoru   zodpovězená otázka

VB.NET, WinForms

Mohl by mi prosím někdo poradit, jak ve VB 2008 zjistím aktuálně nastavené rozlišení. (640x480, 800x600, apod.)

Používám

        PloHoriz = My.Computer.Screen.WorkingArea.Size.Width
        PloVerti = My.Computer.Screen.WorkingArea.Size.Height

, ale to vrací pouze velikost pracovní plochy. A ta může být zmenšená o hlavní panel windows. Ať už je panel umístěn vodorovně, nebo svisle.

A nebo jak zjistit, jestli je panel zobrazen a kde. A jak je velký. Pak už není problém jej k pracovní ploše připočítat.

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

Vás bude asi zajímat toto:

For Each screen In System.Windows.Forms.Screen.AllScreens
With screen
   Console.WriteLine("Monitor {1}{0} - rozliseni {2}x{3}{0}", _
                                  Environment.NewLine, _
                                  screen.DeviceName, _
                                  screen.Bounds.Width, screen.Bounds.Height)
End With
Next

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

Moc děkuji.

Asi mne budete mít za úplného blba, ale já ve VB fakt teprve začínám.

Mohl by jste mi prosím upřesnit, jak z tohoto dostanu ty dvě souřadnice? (Výška a šířka)

MsgBox(.....

Jestli to totiž správně chápu, tohle mi pracuje s konzolí.

Já ty údaje ale potřebuji pro práci s formulářem.

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

Třeba takto

For Each screen In System.Windows.Forms.Screen.AllScreens
    MsgBox(screen.DeviceName & Environment.NewLine & _
           "Vyska: " & CStr(screen.Bounds.Height) & "   " & "Sirka: " & CStr(screen.Bounds.Width))
Next

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

Moc děkuji.

Sice jsem zprvu moc nechápal, protože mi to psalo pár zpětných lomítek a "Display1". Já ale potřebuji čísla pro další zpracování.

Ale po drobných úpravách je to OK.

        For Each screen In System.Windows.Forms.Screen.AllScreens
            MsgBox("Vyska: " & CInt(screen.Bounds.Height) & "   " & "Sirka: " & CInt(screen.Bounds.Width))
        Next

Ještě jednou díky.

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

Kód, který jsem uvedl, v cyklu zjistí jména všech k počítači připojených monitorů (uvědomte si, že k počítači můžete mít připojených dva a více monitorů) a k nim potom nastavené hodnoty rozlišení.

Víte-li na 100%, že máte pouze jeden monitor, je vámi upravená funkce v pořádku. V opačném případě se můžete dostat do problémů, protože nebudete vědět, ke kterému monitoru se právě zjištěné parametry vážou.

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