23 Kasım 2020 Pazartesi

WindowProc CallBack

Giriş
Gelen mesajları işleyen koddur. Bu kodda kendi swith/case kodumuzdan sonra en altta return DefWindowProc() çağrısı yapmak gerekir.

Örnek - WM_CREATE
Şöyle yaparız. Bir EditBox ve bir Button yaratır. Düğmeye tıklanınca MessageBox gösterir.
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
  int wmId, wmEvent;
  PAINTSTRUCT ps;
  HDC hdc;
  TCHAR heading[] = _T("CD ROM READER");
  TCHAR CSCI_No_Inst[] = _T("Please enter the CSCI No below:");
  TCHAR CSCI_NO[60];
  switch (message)
  {
    case WM_CREATE:
    {
      TextBox = CreateWindow(TEXT("EDIT"), TEXT(""),
        WS_VISIBLE | WS_CHILD | WS_BORDER,
        150, 140, 250, 25,
        hWnd, NULL, NULL, NULL);

      HWND hwndButton_Enter = CreateWindow(
        L"BUTTON", L"ENTER",
        WS_VISIBLE | WS_CHILD | WS_BORDER,  //Styles
        405, 140, 70, 25,
        hWnd, (HMENU)ENTER_BUTTON, NULL, NULL);
      return 0;
    }

    case WM_COMMAND:
    {
      switch (LOWORD(wParam))
      {
        case ENTER_BUTTON:
          int gwtstat = 0;
          TCHAR title[] = _T("CSCI_NO");
          gwtstat = GetWindowText(TextBox, &CSCI_NO[0], 60);

          TCHAR buff[100] = L"";
          TCHAR name[] = _T("CSCI_NO");
          wsprintf(buff, L"The CSCI No you entered is: %s", CSCI_NO);
          MessageBox(hWnd, buff, title, MB_OK);
          break;
      }
      return 0;
    }
    case WM_DESTROY:
      PostQuitMessage(0);
      return 0;
    }
  return DefWindowProc(hWnd, message, wParam, lParam);
}
Örnek - WM_DESTROY
Şöyle yaparız
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM  lParam)
{
  switch (uMsg)
  {
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;

    case WM_PAINT:
    {
      PAINTSTRUCT ps;
      HDC hdc = BeginPaint(hwnd, &ps);

      FillRect(hdc, &ps.rcPaint, (HBRUSH) (COLOR_WINDOW + 1));

      EndPaint(hwnd, &ps);
    }
      return 0;
  }
  return DefWindowProc(hwnd,uMsg,wParam,lParam);
}

6 Kasım 2020 Cuma

wmic komutu - Windows Management Instrumentation Command-line

Giriş
wmic Windows Management Instrumentation Command-line anlamına gelir.

/? seçeneği
Yardımı gösterir

CPU seçeneği
Şöyle yaparız.
wmic CPU
Bazı alanları görmek istersek şöyle yaparız.
wmic CPU get Name,NumberOfCores,NumberOfLogicalProcessors
Çıktı olarak şunu alırız.
Name                                     NumberOfCores  NumberOfLogicalProcessors
Intel(R) Core(TM) i7-xxxx CPU @ x.xxGHz  8              16
Monitor seçeneği
Örnek
Şöyle yaparız
wmic path Win32_DesktopMonitor get /format:list
Örnek
Şöyle yaparız
twmic path Win32_VideoController get /format:list
Örnek
Şöyle yaparız
wmic path CIM_VideoControllerResolution get /format:list
Pil Seçeneği
Şöyle yaparız
wmic path Win32_Battery get Caption,Description,DeviceID,Name
Process Seçeneği
Şöyle yaparız
wmic process > processes.txt

4 Kasım 2020 Çarşamba

Hosts Dosyası

Giriş
Açıklaması şöyle
The hosts file in windows is located at C:\Windows\System32\Drivers\etc\hosts.