首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

用BCB制作windows补丁批量安装程序的有关问题

2012-04-07 
用BCB制作windows补丁批量安装程序的问题 - C++ Builder / Windows SDK/API本机上有若干个windows系统补丁

用BCB制作windows补丁批量安装程序的问题 - C++ Builder / Windows SDK/API
本机上有若干个windows系统补丁,做了一个程序批量安装这些补丁,
程序界面用stringgrid列出了这批补丁的名字,现在想每安装完成一个补丁,就在stringgrid中对应补丁名字的那行显示"完成"二字,然后再装下一个补丁,而不是全部安装完后再一次过显示全部安装完成.
问题是,程序如何判断一个补丁安装完成,然后及时在stringgrid显示结果?即一个windows补丁安装完成后,我的

附:我执行补丁的方法是Winexec("补丁文件名 /quiet /passive /nobackup /norestart", SW_HIDE)


[解决办法]
不要用Winexec,因为它是多线程执行的,用CreateProcess,且你可以得到它的返回值

PROCESS_INFORMATION pi;
STARTUPINFO si;

// Set up the start up info struct.
ZeroMemory(&si,sizeof(STARTUPINFO));

si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_HIDE;

CreateProcess(NULL,"补丁文件名 /quiet /passive /nobackup /norestart", NULL, NULL, 0,
NULL, NULL, NULL, &si, &pi);
WaitForSingleObject(pi.hThread,INFINITE);
CloseHandle(pi.hThread);
DWORD excode=0;
GetExitCodeProcess(pi.hProcess,&excode);
一般情况下excode为0表示程序执行成功

热点排行