Skocz do zawartości

Projekt->Monitor ,prosze o pomoc ....


acid

Recommended Posts

Witajcie ,potrzebuje zrobic projekt ktory bedzie wykrywal wszelkie informacje o monitorze ,no i najlepiej jesli moglby je zmieniac. Niestety o WinAPI nie wiem nic ,wiem ze znam jezyk c++ na poziomie wystarczajacym poslugiwac sie WinAPI jednak nie wiem jak sie za to zabrac a nie mam zbyt duzo czasu ..... ,prosze o wszelka pomoc i z gory dziekuje ,najlepiej jakis przyklad ... pozdrawiam.

P.S. Najlepszym przykladem dla mnie bylby np kod ktory wygasilby monitor przy kliknieciu np myszka na formularz oraz wlaczal go przy nastepnym kliknieciu. Thx

Link do komentarza
Udostępnij na innych stronach

Witam

...potrzebuje zrobic projekt ktory bedzie wykrywal wszelkie informacje o monitorze ,no i najlepiej jesli moglby je zmieniac...

Niestety obawiam się że z twoją wiedzą takiego programu nie napiszesz :(

Ciężko cokolwiek na ten temat z pamięci powiedzieć... Może ktoś inny będzie wiedział.
Spróbuj może użyć Google

P.S. Najlepszym przykladem dla mnie bylby np kod ktory wygasilby monitor przy kliknieciu np myszka na formularz oraz wlaczal go przy nastepnym kliknieciu

Napisałem trochę inaczej :) Po kliknięciu na okienko program wyłącza monitor, czeka 10 sek. i włącza go spowrotem (nie chciałem Cię narazać na próbę szukania okienka przy wyłączonym monitorze). Jak widać to co wydawało Ci się najtrudniejsze w rzeczywistości jest najprostrze :D

//----
case WM_LBUTTONDOWN: 
     SendMessage(hWnd, WM_SYSCOMMAND, SC_MONITORPOWER,0);  //Wył Monitor        
    Sleep(10000);  //Poczekaj 10 sekund
    SendMessage(hWnd, WM_SYSCOMMAND, SC_MONITORPOWER,1);  //Wł Monitor
    break ;
//---- 

Pozdro

Link do komentarza
Udostępnij na innych stronach

Jednak czy wygaszanie monitora działa na systemach xp. Kiedyś pisałem taki niezbyt przyjazny program i u mojego kumpla nie odegrało się do końca całe przedstawienie ;) Jak jest już wygaszanie to może też włączanie wygaszacza się przyda:

SendMessage(hWnd, WM_SYSCOMMAND, SC_SCREENSAVE,0) ;

Co do pobierania informacji...hmm...część z nich, chociaż nich może jakoś uda się wyłuskać funckją GetDeviceCaps...ale to tylko liczby i takie tam..może się przyda..opis znajdziesz w helpie. Obacz sobie w helpie rozdział System Infromation Functions...coś tam może znajdziesz.

Pozdrawiam

Link do komentarza
Udostępnij na innych stronach

  • 2 weeks later...

Witam

stuku napisał:
Coś w asemblerze było chyba o monitorach, bodajże jakieś przerywania, ale wątpie aby to pod windosem działało, chyba że byś kożystał z przerywań biosowych...

Niestety (a może na szczęscie) pisząc program pod Windows nie można kożystać bezpośrednio z przerwań. Wyjątkiem są sterowniki VXD ,które były obecne w starszych wersjach Windows, w Windows XP nie mozna uruchomić statycznego sterownika VXD pozostają jeszcze pliki SYS. Niestety Microsoft publicznie nie udostępnia żadnego SDK (DDK) (przynajmniej ja nie widziałem) na temat sterowników pod Windows. Ale to w tym wypadku nie ma znaczenia bo niesądzę, że aby uzyskać informacje o monitorze trzeba było korzystać z przerwań.
Pozdro

Link do komentarza
Udostępnij na innych stronach

Ja kiedyś zmieniałem rozdzielczość i ilość koloru w ten sposób :


        DEVMODE dm;                //Struktura DEVMODE
                memset(&dm,0,sizeof(dm));  //Zerujemy strukture
                dm.dmSize=sizeof(dm);      //Pobieramy jej rozmiar
                dm.dmBitsPerPel=16;        //Ile bitowy kolor
                dm.dmPelsWidth=640;        //Jaka szerokość ekranu (pixele)
                dm.dmPelsHeight=480;       //Jaka wysokość ekranu (pixele)
                dm.dmFields=DM_BITSPERPEL|DM_PELSHEIGHT|DM_PELSWIDTH; //Kombinacja flag mówiących
                                                              //które pola struktury wypełniliśmy

        ChangeDisplaySettings(&dm,CDS_UPDATEREGISTRY);   //Funkcja zmienia nam ustawienia na te podane w strukturze DEVMODE.
Link do komentarza
Udostępnij na innych stronach

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...