GetSystemMetrics
komputer098
Zwraca ustawienia metryki systemu.
Niestety, nie wszystkie wartości funkcji podane przez Microsoft zostały przetłumaczone przeze mnie. Za utrudnienia przepraszam.
Wzór:
int WINAPI GetSystemMetrics( int nIndex ) ;
Parametr funkcji
nIndex[ in ]
Funkcja wymaga wartości integer z poniższej listy udostępnionych przez Microsoft:
<b>SM_ARRANGE = 56</b>
Flaga określająca sposób minimalizacji okien. Nie wiem, co dokładnie oznacza.
SM_CLEANBOOT = 67
Ta wartość określa rodzaj startu systemu:
* 0 normalny
* 1 tryb awaryjny
* 2 tryb awaryjny z obsługą sieci
Tryb awaryjny nie uruchamia plików znajdujących się w autostarcie użytkownika.
<b>SM_CMONITORS = 80 </b>
Liczba monitorów wykrytych przez system.
SM_CMOUSEBUTTONS = 43
Liczba przycisków w myszce. Zwraca 0, jeżeli myszka nie jest zainstalowana.
<b>SM_CXBORDER = 5</b>
Szerokość tablicy formularza.
<b>SM_CXCURSOR = 13</b>
Szerokość kursora myszy. System nie może obsłużyć ani stworzyć innych wymiarów.
<b>SM_CXDLGFRAME = 7</b>
Takie same znaczenie jak SM_CXFIXEDFRAME.
<b>SM_CXDOUBLECLK = 36</b>
Tolerancja przesunięcia kursora myszy w poziomie przy podwójnym kliknięciu w pikselach.
<b>SM_CXDRAG = 68</b>
Ilość pikseli którą może się poruszyć myszka z wciśniętym przyciskiem zanim rozpocznie się operacja przeciągania.
<b>SM_CXEDGE = 45</b>
Rozmiar lini 3D w pikselach.
<b>SM_CXFIXEDFRAME = 7</b>
Nie wiem co to.
<b>SM_CXFOCUSBORDER = 83</b>
Nie wiem co to.
Windows 2000: Ta wartość nie jest obsługiwana.
<b>SM_CXFRAME = 32</b>
Wartość jest taka sama jak SM_CXSIZEFRAME.
<b>SM_CXFULLSCREEN = 16</b>
Szerokość okna klienta w trybie pełnoekranowym na pierwotnym monitorze, w pikselach.
<b>SM_CXHSCROLL = 21</b>
Szerokość poziomego scrolla, w pikselach.
<b>SM_CXHTHUMB = 10</b>
Szerokość suwaka(ten pasek między strzałkami) na poziomym scrollu, w pikselach.
<b>SM_CXICON = 11</b>
Domyślna szerokość ikony, w pikselach.
<b>SM_CXICONSPACING = 38</b>
Szerokość siatki ikon w folderach i na pulpicie, w pikselach.
<b>SM_CXMAXIMIZED = 61</b>
Domyślna szerokość zmaksylizowanego okna, w pikselach.
<b>SM_CXMAXTRACK = 59</b>
Domyślna szerokość okna, które jest typu bsSizeable.
<b>SM_CXMENUCHECK = 71</b>
Szerokość domyślnego menu check-mark(taki ptaszek), w pikselach.
<b>SM_CXMENUSIZE = 54</b>
Szerokość pozycji w main menu, w pikselach.
<b>SM_CXMIN = 28</b>
Minimalna szerokość okna, w pikselach.
<b>SM_CXMINIMIZED = 57</b>
Szerokość zminimalizowanego okna, w pikselach.
<b>SM_CXMINSPACING = 47</b>
Odległość między zakładkami aplikacji, w pikselach.
<b>SM_CXMINTRACK = 34</b>
Nie wiem co to.
<b>SM_CXPADDEDBORDER = 92</b>
Nie wiem co to.
Windows XP/2000: Wartość nie obsługiwana.
<b>SM_CXSCREEN = 0</b>
Szerokość ekranu domyślnego monitora, w pikselach.
<b>SM_CXSIZE = 30</b>
Szerokość przycisków w pasku tytułowym aplikacji.
<b>SM_CXSIZEFRAME = 32</b>
Nie wiem co to.
Ta wartość jest taka sama dla SM_CXFRAME.
<b>SM_CXSMICON = 49</b>
Zalecana szerokość dla małych ikon(np. pasek tytułowy aplikacji), w pikselach.
<b>SM_CXSMSIZE = 52</b>
Szerokość etykiety przycisku, w pikselach.
<b>SM_CXVIRTUALSCREEN = 78</b>
Szerokość wirtualnego ekranu, w pikselach.
<b>SM_CXVSCROLL = 2</b>
Szerokość pionowego scrolla, w pikselach.
<b>SM_CYBORDER = 6</b>
Wysokość powierzchni okna, w pikselach.
<b>SM_CYCAPTION = 4</b>
Wysokość strefy caption, w pikselach.
<b>SM_CYCURSOR = 14</b>
Wysokość kursora, w pikselach.
<b>SM_CYDLGFRAME = 8</b>
Ta wartość jest taka sama jak SM_CYFIXEDFRAME.
<b>SM_CYDOUBLECLK = 37</b>
Tolerancja przesunięcia kursora w wysokości przy podwójnym kliknięciu, w pikselach.
<b>SM_CYDRAG = 69</b>
Patrz SM_CXDRAG.
<b>SM_CYEDGE = 46</b>
Nie wiem co to.
<b>SM_CYFIXEDFRAME = 8</b>
Nie wiem, co to.
SM_CYFOCUSBORDER = 84
Wysokość prostokąta fokusa, w pikselach.
Windows 2000: Ta wartość nie jest obsługiwana.
<b>SM_CYFRAME = 33</b>
Wartość jest taka sama jak SM_CYSIZEFRAME.
<b>SM_CYFULLSCREEN = 17</b>
Wysokość okna klienta, w pikselach.
<b>SM_CYHSCROLL = 3</b>
Wysokość poziomego scrolla, w pikselach.
<b>SM_CYICON = 12</b>
Domyślna wysokość ikon, w pikselach.
<b>SM_CYICONSPACING = 39</b>
Wysokość siatki ikon, w pikselach.
<b>SM_CYKANJIWINDOW = 18</b>
Wysokość okna kanji, w pikselach.
<b>SM_CYMAXIMIZED = 62</b>
Domyślna wysokość zmaksylizowanego okna, w pikselach.
<b>SM_CYMAXTRACK = 60</b>
Domyślna wysokość okna typu bsNormal, w pikselach.
<b>SM_CYMENU = 15</b>
Wysokość pozycji w main menu, w pikselach.
<b>SM_CYMENUCHECK = 72</b>
Wysokość menu check-mark(taki ptaszek), w pikselach.
<b>SM_CYMENUSIZE = 55</b>
Wysokość pozycji main menu, w pikselach.
<b>SM_CYMIN = 29</b>
Minimalna wysokość okna, w pikselach.
<b>SM_CYMINIMIZED = 58</b>
Wysokość zminimalizowanego okna, w pikselach.
<b>SM_CYMINSPACING = 48</b>
Wysokość zakładki aplikacji na pasku narzedziowym Windows, w pikselach.
<b>SM_CYMINTRACK = 35</b>
Nie wiem co to.
<b>SM_CYSCREEN = 1</b>
Wysokość ekranu domyślnego monitora, w pikselach.
<b>SM_CYSIZE = 31</b>
Wysokość przycisków w pasku tytułowym okna, w pikselach.
<b>SM_CYSIZEFRAME = 33</b>
Nie wiem co to.
<b>SM_CYSMCAPTION = 51</b>
Wysokość małego opisu, w pikselach.
<b>SM_CYSMICON = 50</b>
Zalecana wysokość małych ikon(np. w pasku tytułowym aplikacji) w pikselach.
<b>SM_CYSMSIZE = 53</b>
Wysokość małych opisów, w pikselach.
<b>SM_CYVIRTUALSCREEN = 79</b>
Wysokość wirtualnego ekranu, w pikselach.
<b>SM_CYVSCROLL = 20</b>
Wysokość pionowego scrolla, w pikselach.
<b>SM_CYVTHUMB = 9</b>
Wysokość suwaka(tego paska) scrolla w pikselach.
<b>SM_DBCSENABLED = 42</b>
Zwraca niezerową wartość jeżeli używana jest biblioteka User32.dll wspierająca DBCS.
<b>SM_DEBUG = 22</b>
Zwraca niezerową wartość jeżeli wersja debug User.exe jest zainstalowana.
<b>SM_IMMENABLED = 82</b>
Zwraca niezerową wartość jeżeli pochodne Input Method Manager/Input Method Editor są włączone.
<b>SM_MEDIACENTER = 87</b>
Zwraca niezerową wartość jeżeli bieżą cy system operacyjny to XP lub Media Center Edition.
<b>SM_MENUDROPALIGNMENT = 40</b>
Nie wiem co to.
<b>SM_MIDEASTENABLED = 74</b>
Zwraca niezerową wartość jeżeli system ma włączoną obsługę Hebrajskiego lub Arabskiego języka.
<b>SM_MOUSEPRESENT = 19</b>
Zwraca niezerową wartość jeżeli mysz jest zainstalowana.
<b>SM_MOUSEHORIZONTALWHEELPRESENT = 91</b>
Zwraca niezerową wartość jeżeli zainstalowana mysz posiada kółko poziomego scrollowania.
<b>SM_MOUSEWHEELPRESENT = 75</b>
Zwraca niezerową wartość jeżeli zainstalowana mysz posiada kółko.
<b>SM_NETWORK = 63</b>
Nie wiem co to.
<b>SM_PENWINDOWS = 41</b>
Nie zero jeśli dodatek Microsoft Windows for Pen zainstalowany. W innym przypadku 0.
<b>SM_REMOTECONTROL = 0x2001</b>
Zwraca niezerową wartość jeżeli bieżąca sesja jest zdalnie sterowana.
<b>SM_REMOTESESSION = 0x1000</b>
Nie wiem co to.
<b>SM_SAMEDISPLAYFORMAT = 81</b>
Zwraca niezerową wartość jeżeli wszystkie monitory mają takie same profile kolorów.
<b>SM_SECURE = 44</b>
Zawsze zwraca 0. Ignorować.
<b>SM_SERVERR2 = 89</b>
Zwraca wartość wersji Windows Server 2003 R2. Jeżeli nie ma tego, zwraca 0.
<b>SM_SHOWSOUNDS = 70</b>
Zero jeśli użytkownik nie wymaga od aplikacji(i) prezentowania danych w formie wizualnej i dźwiękowej. Normalnie aplikacja prezentowałaby informacje tylko w formie dźwiękowej. W innym przypadku nie zero.
<b>SM_SHUTTINGDOWN = 0x2000</b>
Zwraca niezerową wartość jeżeli bieżąca sesja jest zamykana.
Windows 2000: Ta wartość nie jest obsługiwana.
<b>SM_SLOWMACHINE = 73</b>
Zwraca niezerową wartość jeżeli komputer posiada wolny procesor.
<b>SM_STARTER = 88</b>
Zwraca niezerową wartość jeżelibieżący system to Windows XP Starter Edition.
SM_SWAPBUTTON = 23
Zwraca niezerową wartość jeżeli przyciski myszy są zamienione.
<b>SM_TABLETPC = 86</b>
Zwraca niezerową wartość jeżeli bieżący system to Windows XP Tablet PC edition.
<b>SM_XVIRTUALSCREEN = 76</b>
Koordynaty pozycji X wirtualnego monitora.
<b>SM_YVIRTUALSCREEN = 77</b>
Koordynaty pozycji Y wirtualnego monitora.
Zwracane wartości, ogółem
Jeżeli wykonanie funkcji się powiedze, zostanie zwrócona wartość argumentu w przeciwnym razie funkcja zwraca 0. GetLastError nieuwzględnia tej funkcji.
Pliki nagłówkowe: Winuser.h; include Windows.h.
Biblioteki .lib
User32.lib.
Biblioteki .DLL
User32.dll.
Jak widać ta funkcja daje wiele możliwości wykorzystania.
Źródło:
http://msdn.microsoft.com/en-us/library/ms724385.aspx
<font size="1"><font color="grey">// dodane SM_CXDRAG i SM_SHOWSOUNDS by sasser.64</span></span>
SM_ARRANGE
zamknij sobie explorer.exe i zacznij minimalizować okna, będą one minimalizowane do belek, tego typu sposoby określa ten parametr...
Ok, zajrzę do <url>msdn.microsoft.com</url> i postaram się uaktualnić artykuł
hehe.. GetSystemMetrics już z pół roku jest do napisania, jakoś nikt się za to nie brał, pewnie ze względu na wielkość zagadnienia :>