Advertisement
Savelyev_Vyacheslav

OS_laba2_master

May 5th, 2021
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.79 KB | None | 0 0
  1. //Программа master
  2. #define _CRT_SECURE_NO_WARNINGS
  3. #include <windows.h>
  4. #include <iostream>
  5. #include <stdio.h>
  6. #include <string.h>
  7. using namespace std;
  8.  
  9. LPWSTR winApiFormat(char text[], wchar_t wtext2[128]) {
  10.     mbstowcs(wtext2, text, strlen(text) + 1);//Plus null
  11.     LPWSTR ptr = wtext2;
  12.     return ptr;
  13. }
  14. void titleSet(char a[]) {
  15.     wchar_t wtext2[128];
  16.     LPWSTR ptr2 = winApiFormat(a, wtext2);
  17.     SetConsoleTitle(ptr2);
  18. }
  19.  
  20. void setIntArg(char* cmd,int pid) {
  21.     sprintf(cmd + strlen(cmd), " %d", pid);
  22. }
  23. void setCharArg(char* cmd, char* arg) {
  24.     sprintf(cmd + strlen(cmd), " %s", arg);
  25. }
  26.  
  27.  
  28.  
  29. //         master.exe
  30. int main(int argc, char* argv[]) {
  31.     char cmd[128];
  32.     if (argc != 1) strcpy(cmd, argv[1]);
  33.     else strcpy(cmd, "slave.exe");
  34.  
  35.     char title[128] = "master";
  36.     titleSet(title);
  37.  
  38.     int pid = GetCurrentProcessId();////////////////////////////////////
  39.     char Process[128] = "Process1";
  40.     char Prioritet[128] = "Prioritet1";
  41.     setIntArg(cmd, pid);
  42.     setCharArg(cmd, Process);
  43.     setCharArg(cmd, Prioritet);
  44.     cout <<"Master: Start ___ " <<cmd << " ___" << "\n";
  45.     //createProcess(cmd);
  46.     wchar_t wtext[128];
  47.     LPWSTR ptr = winApiFormat(cmd, wtext);
  48.  
  49.  
  50.     //mbstowcs(wtext, cmd, strlen(cmd) + 1);//Plus null
  51.     //LPWSTR ptr = wtext;
  52.  
  53.     STARTUPINFO info;
  54.     memset(&info, 0, sizeof(info));
  55.     info.cb = sizeof(info);
  56.     PROCESS_INFORMATION pinfo;
  57.     cin.get();
  58.     if (!CreateProcess(NULL, ptr, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS,
  59.         NULL, NULL, &info, &pinfo)) {
  60.         cout << "Master: Slave protsess ne zapushchen!!!!!!!!!!!!!\n";
  61.         cout << "Master: проверьте правильность указания имени процесса в коммандной строке";
  62.     }
  63.  
  64.     cout << "Master: Sleeping\n";
  65.     Sleep(10000);
  66.  
  67.     exit(0);
  68.     cout << "Master: EXIT\n";
  69.     cin.get();
  70.     return 0;
  71. }
  72.  
  73.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement