Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
обновлён 2 декабря!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Программисты долго мучаются с кодом прогаммы, изучают С++, WinAPI функции, MSDN. Потом пишут банальную систему защиты или навешивают банальный протектор, а крэкеры и реверсеры справляются с такой защитой за 5 минут. В итоге, продажи программы почти нулевые. Чтобы такого не допустить, тут самому надо немного поднабрать опыта отладки, реверсинга, тот же отладчик Ollydbg изучить или дизассемблер IDA Pro. Но где искать по крохам эти знания? Нет, конечно можно годами "методом тыка" разбираться, но куда быстрее видеокурс специальный посмотреть. Вот тут он есть: ссылка. Автор курса с большим опытом и объясняет понятно, я из этого курса много узнал про то как работает компьютер, процессор, про инструменты специальные и как с ними работать. Мои коллеги программисты на работе ничего такого и не знают, теперь я им нос утру.

Экран и рабочий стол

  1. Изменение картинки на рабочем столе
  2. Изменение картинки на рабочем столе(вариант 2)
  3. Изменение параметров экрана
  4. Как узнать частоту обновления экрана
  5. Как узнать разрешение экрана (VCL вариант)
  6. Как узнать разрешение экрана (WinAPI вариант)
  7. Как узнать разрешение экрана
  8. Отображение свойств дисплея
  9. Как поместить вид рабочего стола в буфер
  10. [+] Как рисовать на Десктопе
  11. [+] Как закрасить рабочий стол по пикселю
  1. Изменение картинки на рабочем столе

    // Для изменения картинки на рабочем столе
    // используйте следующий код:
    SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "pic.bmp",
    SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
    // где pic.bmp - имя вашего файла с картинкой

  2. Изменение картинки на рабочем столе(вариант 2)

    //Первый вариант в C++Builder 5 вызывает ругань
    // BoundsChecker'a, хотя и работает.
    // Нижеприведенный вариант никакой ругани не вызывает, но
    // почему-то работает не на всех машинах. Для изменения картинки
    // на рабочем столе используйте следующий код:
    SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "pic.bmp",
    SPIF_UPDATEINIFILE);
    // где pic.bmp - имя вашего файла с картинкой

  3. Изменение параметров экрана

    // Для изменения параметров экрана используйте следующий
    // код:
    DEVMODE DM;
    DM.dmSize = sizeof(DEVMODE);
    DM.dmBitsPerPel = 16; // глубина цвета, бит на пиксель
    DM.dmPelsWidth = 1024; // разрешение по горизонтали
    DM.dmPelsHeight = 768; // разрешение по вертикали
    DM.dmFields = DM_BITSPERPEL +
    DM_PELSWIDTH +
    DM_PELSHEIGHT +
    DM_DISPLAYFREQUENCY;
    DM.dmDisplayFrequency = 75; // частота обновления экрана
    ChangeDisplaySettings(&DM, 0);
    // ЗАМЕЧАНИЕ: при изменении параметров смотрите чтобы
    монитор поддерживал это режим

  4. Как узнать частоту обновления экрана

    // Для получения частоты обновления экрана напишите следующий код:
    HDC hDCScreen = GetDC(NULL);
    int Refresh = GetDeviceCaps(hDCScreen, VREFRESH);
    ReleaseDC(NULL, hDCScreen);
    // в Refresh содержится частота обновления экрана по горизонтали

  5. Как узнать разрешение экрана (VCL вариант)

    // Разрешение экрана можно узнать, прочитав значения
    // свойств Screen->Width и Screen->Height:
    int HorzRes = Screen->Width;
    int VertRes = Screen->Height;

  6. Как узнать разрешение экрана (WinAPI вариант)

    // Для получения разрешения экрана напишите следующий код:
    HDC hDCScreen = GetDC(NULL);
    int Horres = GetDeviceCaps(hDCScreen, HORZRES);
    int Vertres = GetDeviceCaps(hDCScreen, VERTRES);
    ReleaseDC(NULL, hDCScreen);
    // в Horres содержится разрешение экрана по горизонтали,
    // в Vertres содержится разрешение экрана по вертикали.

  7. Как узнать разрешение экрана

    // Для получения разрешения экрана напишите следующий код:
    int screenW=GetSystemMetrics(SM_CXSCREEN);//Получить ширину экрана
    int screenH=GetSystemMetrics(SM_CYSCREEN);//Получить высоту экрана
    // в screenW содержится разрешение экрана по горизонтали,
    // в screenH содержится разрешение экрана по вертикали.

  8. Отображение свойств дисплея

    // Следующий код отобразит на экране диалоговое
    // окно свойств дисплея:

    ShellExecute(NULL, "", "Desk.cpl", "", "", SW_SHOWNORMAL);

  9. Как поместить вид рабочего стола в буфер

    Напишите следующий код:
    #include <Clipbrd.hpp>
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    unsigned DataHandle;
    HPALETTE APalette;
    Word Format;
    Graphics::TBitmap *Bitmap=new Graphics::TBitmap;
    HDC DC=GetDC(0);
    try{
    Bitmap->Height=Screen->Height;
    Bitmap->Width=Screen->Width;
    BitBlt(Bitmap->Canvas->Handle , 0, 0, Screen->Width,
    Screen->Height,DC, 0, 0, SRCCOPY);
    //Изображение экрана теперь в Bitmap, запишем его в бyфеp обмена
    Bitmap->SaveToClipboardFormat(Format,DataHandle,APalette);
    Clipboard()->SetAsHandle(Format,DataHandle);
    }
    __finally
    {
    delete Bitmap;
    ReleaseDC(0,DC);
    }
    }

  10. Как рисовать на Десктопе

    Напишите следующий код:
    HDC hdc = CreateDC ( TEXT("DISPLAY"), NULL, NULL, NULL );
    Rectangle( hdc, 100,100, 200, 200);
    DeleteDC ( hdc );

  11. Как закрасить рабочий стол по пикселю

    Напишите следующий код:
    void __fastcall TForm1::Button1Click(TObject *Sender)
    { TCanvas *dt = new TCanvas ;
    randomize();
    dt->Handle = GetDC(0);
    while (dt)
    {
    dt->Pixels[random(1024)][random(768)]= 0 ;
    }
    }



<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS