Qprocess的一些使用问题

9 篇文章 0 订阅

使用Process的默认参数启动exe会造成子进程打开的句柄关闭不了,可能默认的参数使用CreateProcess使用了共享句柄的方式,记录一下,该使用Windows Api 就正常了,如下:

	if (mPid == 0 || checkEditorProcessExist() == false)
	{
		QString exeFile = g_appInfo->GetSetupPath() + "Tools/HLMSEditor/bin/HLMSEditor.exe";
		QString workPath= g_appInfo->GetSetupPath() + "Tools/HLMSEditor/bin";
		//QProcess::startDetached(exeFile, QStringList(), workPath, &mPid);
		STARTUPINFO pi = { sizeof(STARTUPINFO) };
		PROCESS_INFORMATION procinfo;
		BOOL success=CreateProcess(NULL, const_cast<LPSTR>(exeFile.toStdString().c_str()), NULL, NULL,
			false, CREATE_DEFAULT_ERROR_MODE|CREATE_UNICODE_ENVIRONMENT, NULL,
			const_cast<LPSTR>(workPath.toStdString().c_str()), &pi, &procinfo);
		if (success)
		{
			mPid = procinfo.dwProcessId;
			CloseHandle(procinfo.hThread);
			CloseHandle(procinfo.hProcess);
		}
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙行天下01

你的鼓励将是我的最大写作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值