建立可繼承的程序

2021-10-07 16:50:58 字數 2357 閱讀 8247

本文演示如何通過 createprocess 建立乙個程序控制代碼和主線程控制代碼可以被繼承的子程序。

bool createprocess(

lptstr lpcommandline, // command line string

lpsecurity_attributes lpsecurity_attributes , // sd

lpsecurity_attributes lpthreadattributes, // sd

bool binherithandles, // handle inheritance option

dword dwcreationflags, // creation flags

lpvoid lpenvironment, // new environment block

lpctstr lpcurrentdirectory, // current directory name

lpstartupinfo lpstartupinfo, // startup information

lpprocess_information lpprocessinformation // process information);

createprocess 的第三,第四引數分別表示新程序的程序屬性和主線程屬性,如果希望建立乙個新程序,使得新程序的程序控制代碼和主線程控制代碼在當前程序的控制代碼表中可以被繼承,則需要對 lpsecurity_attributes 進行設定。

下面通過乙個例子來測試程序控制代碼繼承。

****現的路徑,請在您的機器上做相應的修改。

主程序 inheritprocesshandle.exe

// 測試建立可繼承的程序

#include "stdafx.h"

#include int main(int argc, char* ar**)

; sia.cb = sizeof(sia);

process_information pia;

char szcmd[256] = "c:\\notepad.exe";

createprocess(null, szcmd, &saprocess, &sathread, false, create_new_console, null, null, &sia, &pia);

// 建立程序b,繼承當前程序控制代碼表中程序a的主線程控制代碼和a的程序控制代碼,控制代碼通過命令列引數傳遞給b程序

memset(szcmd, 0, 256);

sprintf(szcmd, "f:\\myprojects\\inheritprocesshandle2\\debug\\inheritprocesshandle2.exe %x %x", pia.hprocess, pia.hthread);

startupinfo sib = ;

sib.cb = sizeof(sib);

process_information pib;

createprocess(null, szcmd, null, null, true, create_new_console, null, null, &sib, &pib);

//printf("error: %d\n", getlasterror());

return 0;}

子程序 inheritprocesshandle2.exe

// 主程序通過 createprocess 建立該程序,兩個命令列引數分別表示notepad的程序控制代碼和主線程控制代碼

// 在該程序中繼承得到notepad的控制代碼,並對notepad進行控制操作

#include "stdafx.h"

#include int main(int argc, char* ar**)

主程序執行結果

子程序啟動後,notepad程序被掛起5秒,可以看到notepad的介面已經阻塞

5秒後notepad恢復執行

子程序可以關閉notepad程序,通過繼承notepad的程序控制代碼。

css 可繼承和不可繼承的屬性

一 有繼承性的屬性 1 字型系列屬性 font 組合字型 font family 規定元素的字型系列 font weight 設定字型的粗細 font size 設定字型的尺寸 font size繼承的是計算後的實際值 font style 定義字型的風格 font variant 設定小型大寫字母...

css中可繼承與不可繼承

不可繼承的 display margin border padding background height min height max height width min width max width overflow position left right top bottom z index ...

css中可繼承和不可繼承的屬性

一 無繼承性的屬性 1 display 規定元素應該生成的框的型別 2 文字屬性 vertical align 垂直文字對齊 text decoration 規定新增到文字的裝飾 text shadow 文字陰影效果 white space 空白符的處理 unicode bidi 設定文字的方向 3...