Win32 API FAQ
Страница 22.


 

50)--------------------------------------------------------------------------

Q> Как программно поменять IP адрес?

 

1. Открываем HKEY_LOCAL_MACHINE

2. Ищем subKey = SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards
\"netcard# "

"netcard# " номер сетевой карты (обычно 1)

3. Берем значение "ServiceName"

4. Ищем subKey = SYSTEM\CurrentControlSet\Services\"ServiceName"
\Parameters\TcpIp"

5. Устанавливаем "IpAddress" для смены IP адреса

6. Устанавливаем "SubnetMask" для смены subnet mask

7. Устанавливаем "DefaultGateway" для смены default gateway

8. Перегружаемся.

Q> Как программно поменять HostName?

1. Открываем HKEY_LOCAL_MACHINE

2. Ищем subKey = SYSTEM\CurrentControlSet\Services\TcpIp\Parameters

3. Устанавливаем значение "HostName"

4. Ищем subKey = SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName

5. Устанавливаем значение "ComputerName"

6. Перегружаемся.

Внимание: Неправильное исправление этих значений регистри может вызвать
большие проблемы. Использовать на свой страх и риск.

51)----------------------------------------------------------------------------

Q> Как программно нажать кнопку "Start" ?

 

#include

void main(void)
{
       HWND hTaskBar, hButton;
       HDC hDCScreen = GetDC(NULL);
       DWORD ScreenHeight=GetDeviceCaps(hDCScreen,VERTRES);
       ReleaseDC(NULL, hDCScreen);
          
       hTaskBar= FindWindow("Shell_TrayWnd",NULL);
       hButton= GetWindow(hTaskBar, GW_CHILD);
       // Hажать кнопку "Пуск"
       SendMessage(hButton, WM_LBUTTONDOWN,MK_LBUTTON,LOWORD(5)+
       HIWORD(ScreenHeight-20));

       // Дальше только ради прикола...
       // Спрячем кнопку "Пуск"
       ShowWindow(hButton, SW_HIDE);
       // Насладимся эрелищем 2 секунды
       Sleep(2000);
       // Покажем кнопку "Пуск"
       ShowWindow(hButton, SW_NORMAL);
}

52)---------------------------------------------------------------------------

Q> Как убрать таскбар?

 

       HWND H;
       H=FindWindow("Shell_TrayWnd",NULL); //находим хандл окна таскбара
       ShowWindow(H, SW_HIDE);//делаем его невидимым
       Sleep(2000);
       ShowWindow(H, SW_SHOW);//делаем его видимым
}
53)----------------------------------------------------------------------------

Q> Как в GUI приложении открыть консоль и назначить stdin,stdout,stderr?

 

#include
#include
#include
#include

BOOL CreateConsole(void)
{
     FreeConsole(); //на всякий случай
     if ( AllocConsole() )
      {
            int hCrt = _open_osfhandle((long)
        GetStdHandle(STD_OUTPUT_HANDLE), _O_TEXT);
            *stdout = *(::_fdopen(hCrt, "w"));
        ::setvbuf(stdout, NULL, _IONBF, 0);
        *stderr = *(::_fdopen(hCrt, "w"));
        ::setvbuf(stderr, NULL, _IONBF, 0);
            return TRUE;
       }return FALSE;
}

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                        LPSTR lpCmdLine, int nCmdShow)
{
CreateConsole();
printf("WinMain with Console test\n");

MSG msg;
       while (GetMessage(&msg, NULL, 0, 0))
       {
          TranslateMessage(&msg);
          DispatchMessage(&msg);
       }
      return TRUE;
}

 
« Предыдущая статья   Следующая статья »