Commit e02b03c4 by 李定达

1.添加启动失败,运行脚本启动的功能

parent b588250f
......@@ -141,7 +141,8 @@ bool FmControl::_LaunchProcess(const QString &exePath, QString& error)
if(pfnWTSQueryUserToken == NULL)
{
error = QString("get WTSQueryUserToken failed");
return QProcess::startDetached(exePath, QStringList(exePath));
QLOG_ERROR() << error;
return QProcess::startDetached(QString(qApp->applicationDirPath() + "/upstart.bat"), QStringList(exePath));
}
// 进程信息
STARTUPINFO si;
......@@ -156,7 +157,9 @@ bool FmControl::_LaunchProcess(const QString &exePath, QString& error)
if (pfnWTSQueryUserToken(dwSessionID, &hToken) == FALSE)
{
error = QString("get session failed [%1]").arg(QString::number(::GetLastError()));
return false;
QLOG_ERROR() << error;
return QProcess::startDetached(QString(qApp->applicationDirPath() + "/upstart.bat"), QStringList(exePath));
//return false;
}
// 复制令牌
HANDLE hDuplicatedToken = NULL;
......@@ -170,7 +173,9 @@ bool FmControl::_LaunchProcess(const QString &exePath, QString& error)
CloseHandle(hToken);
}
error = QString("copy token failed [%1]").arg(QString::number(::GetLastError()));
return false;
//return false;
QLOG_ERROR() << error;
return QProcess::startDetached(QString(qApp->applicationDirPath() + "/upstart.bat"), QStringList(exePath));
}
// 创建用户Session环境
LPVOID lpEnvironment = NULL;
......@@ -181,7 +186,9 @@ bool FmControl::_LaunchProcess(const QString &exePath, QString& error)
CloseHandle(hDuplicatedToken);
}
error = QString("create environment failed [%1]").arg(QString::number(::GetLastError()));
return false;
//return false;
QLOG_ERROR() << error;
return QProcess::startDetached(QString(qApp->applicationDirPath() + "/upstart.bat"), QStringList(exePath));
}
// 在复制的用户Session下执行应用程序,创建进程。
if (CreateProcessAsUser(hDuplicatedToken,
......@@ -194,7 +201,9 @@ bool FmControl::_LaunchProcess(const QString &exePath, QString& error)
DestroyEnvironmentBlock(lpEnvironment);
}
error = QString("CreateProcessAsUser failed [%1]").arg(QString::number(::GetLastError()));
return false;
//return false;
QLOG_ERROR() << error;
return QProcess::startDetached(QString(qApp->applicationDirPath() + "/upstart.bat"), QStringList(exePath));
}
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment