在线等待:shellexecute运行起来的程序,如何获取它的进程号? 谢谢~~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Eastunfail(浴血雏龙)==(恶鱼杀手) 说的不对吧 ShellExecute返回的是进程句柄.好像API函数有直接获取进程ID的,自己查查.如果没有,就只能枚举当前进程了. 使用ShellExecuteEx()就可以了,以下是C++的代码,转成delphi就行了。SHELLEXECUTEINFO se;ZeroMemory ( &se, sizeof ( SHELLEXECUTEINFO));se.cbSize = sizeof(SHELLEXECUTEINFO);se.fMask = SEE_MASK_NOCLOSEPROCESS;se.hwnd = NULL;se.lpFile = lpszCmd;se.nShow = SW_MAXIMIZE;se.lpVerb = TEXT("open");se.lpParameters = NULL;se.lpDirectory = NULL;se.nShow = SW_MAXIMIZE;se.hProcess = 0;se.hInstApp = NULL;if (ShellExecuteEx(&se) > 0) s_hInstallProcess = se.hProcess; ShellExecute和ShellExecuteEx只能取出进程句柄来。要取进程号(ID)用CreateProcess Delphi调用VB写的Com问题,提示“没有注册类别” 怎么关闭子窗体 关于内存分配失败的问题 如何在动态创建的窗体上再动态创建控件 如何将当前应用程序设为系统进程 一个不好意思提的问题 高分请教!怎样把一个窗体数据表格dbgrid的数据集的字段记录提取到另一个窗体dbgrid的数据集对应字段中来? FRAME关闭自身的问题 怎样清空ADOQuerey中查询出来的所有数据? 我做过的,但是忘了,请大虾们指教(很简单,蹭分题)。 怎样得到Sqlsever2000的服务器名称? 一个操作Access表的SQL语句问题
说的不对吧
好像API函数有直接获取进程ID的,自己查查.
如果没有,就只能枚举当前进程了.
SHELLEXECUTEINFO se;
ZeroMemory ( &se, sizeof ( SHELLEXECUTEINFO));
se.cbSize = sizeof(SHELLEXECUTEINFO);
se.fMask = SEE_MASK_NOCLOSEPROCESS;
se.hwnd = NULL;
se.lpFile = lpszCmd;
se.nShow = SW_MAXIMIZE;
se.lpVerb = TEXT("open");
se.lpParameters = NULL;
se.lpDirectory = NULL;
se.nShow = SW_MAXIMIZE;
se.hProcess = 0;
se.hInstApp = NULL;if (ShellExecuteEx(&se) > 0)
s_hInstallProcess = se.hProcess;