14 Ocak 2019 Pazartesi

CreateToolhelp32Snapshot metodu

Giriş
Process'leri dolaşabilmeyi sağlar.
1. CreateToolhelp32Snapshot() ile handle açılır
2. Process32First() ile okuma yapılır
3. Process32Next() ile döngü içinde okuma yapılır

Örnek
Şöyle yaparız.
DWORD get_process_id_by_process_name(const char* process_name_){
  PROCESSENTRY32 process_entry = { sizeof(PROCESSENTRY32) };
  HANDLE processes_snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

  // loop through all process to find one that matches the process_name_
  if (Process32First(processes_snapshot, &process_entry)){
    do{
      if (strcmp(process_entry.szExeFile, process_name_) == 0){
        CloseHandle(processes_snapshot);
        return process_entry.th32ProcessID;
      }
    } while (Process32Next(processes_snapshot, &process_entry));
  }

  CloseHandle(processes_snapshot);
  return NULL;
}
Örnek
Şöyle yaparız
HANDLE hSnapshot;

PROCESSENTRY32  hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
proc32.dwSize = sizeof(PROCESSENTRY32);

if(Process32First(hSnapshot, &proc32))
{
  cout << proc32.szExeFile << endl;
  while(Process32Next(hSnapshot, &proc32))
     cout << proc32.szExeFile << endl;
}

28 Aralık 2018 Cuma

FindWindow metodu

Örnek
Şöyle yaparız.
HWND hwnd = FindWindowA(NULL, "C:\\Example\\App.exe");
Örnek
Şöyle yaparız.
DWORD get_process_id_by_window_title(const char* window_title_){
  // get a handle to window using the window name
  HWND window_handle = FindWindow(NULL, window_title_);
  if (window_handle == NULL){
    return NULL;
  }

  // return the process id of the window handle we found
  DWORD process_id;
  GetWindowThreadProcessId(window_handle, &process_id);
  return process_id;
}

10 Ekim 2018 Çarşamba

getnameinfo metodu

Örnek
Şöyle yaparız.
struct sockaddr_in saGNI;
char servInfo[NI_MAXSERV];

saGNI.sin_family = AF_INET;
saGNI.sin_addr.s_addr = inet_addr("10.80.101.162");
saGNI.sin_port = htons(64);

char host[512]; // <-- information to obtain
getnameinfo((struct sockaddr *) &saGNI, sizeof(struct sockaddr),
 host, NI_MAXHOST, servInfo, NI_MAXSERV, NI_NUMERICSERV);
Örnek
Şöyle yaparız.
std::string computer_name;
computer_name.resize(NI_MAXHOST);
struct sockaddr_in socket_address = ...;
char service_info[NI_MAXSERV] = {};


getnameinfo((struct sockaddr *) &socket_address,
            sizeof(socket_address),
            &computer_name[0],
            NI_MAXHOST, service_info, NI_MAXSERV, NI_NUMERICSERV);

InetPton metodu

Giriş
Socket programlama için kullanılır.

Örnek
Şöyle yaparız.
const std::string ip_address = ...;
struct sockaddr_in socket_address;
socket_address.sin_family = AF_INET;
const auto result = InetPtonA(AF_INET, &ip_address[0], &socket_address.sin_addr.s_addr);

WSAStartup metodu

Giriş
Socket programlama için kullanılır.

Örnek
Şöyle yaparız.
WSADATA wsa_data;
WSAStartup(MAKEWORD(2, 2), &wsa_data);