zoukankan      html  css  js  c++  java
  • CreateProcess注意的几个地方

    1.CreateProcess失败,GetLastError返回998,应该是最后两个参数没有初始化导致的。

    2.要使外部程序隐藏窗口运行,需要将STARTUPINFO的dwFlags指定为STARTF_USESHOWWINDOW,并且将wShowWindow指定为SW_HIDE.

    3.第2条创建的进程确实是隐藏运行的,但是程序启动时会导致屏幕闪烁,为了避免屏幕闪烁我们应该创建一个桌面并指定给该进程的STARTUPINFO.

    HDESK hDesk = CreateDesktop(_T("MyDesk"), NULL, NULL, 0, GENERIC_ALL, NULL);
    ASSERT(hDesk);
                
    STARTUPINFO si = {sizeof(si)};
    si.lpDesktop = _T("MyDesk");
    si.dwFlags = STARTF_USESHOWWINDOW;
    si.wShowWindow = SW_HIDE;
                
    PROCESS_INFORMATION pi = {0};
    CreateProcess(g_strExePath + _T("DeleteFiles.exe"),
                  NULL, 
                  NULL, 
                  NULL, 
                  FALSE, 
                  CREATE_DEFAULT_ERROR_MODE | NORMAL_PRIORITY_CLASS, 
                  NULL, 
                  NULL, 
                  &si, 
                  &pi);
    CloseHandle(pi.hThread);
    CloseHandle(pi.hProcess);
  • 相关阅读:
    64_l2
    64_l1
    64_k2
    64_k1
    64_j2
    64_j1
    64_g6
    64_g5
    64_g4
    64_g3
  • 原文地址:https://www.cnblogs.com/mforestlaw/p/3566541.html
Copyright © 2011-2022 走看看