Commit e02b03c4 by 李定达

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

parent b588250f
...@@ -141,7 +141,8 @@ bool FmControl::_LaunchProcess(const QString &exePath, QString& error) ...@@ -141,7 +141,8 @@ bool FmControl::_LaunchProcess(const QString &exePath, QString& error)
if(pfnWTSQueryUserToken == NULL) if(pfnWTSQueryUserToken == NULL)
{ {
error = QString("get WTSQueryUserToken failed"); 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; STARTUPINFO si;
...@@ -156,7 +157,9 @@ bool FmControl::_LaunchProcess(const QString &exePath, QString& error) ...@@ -156,7 +157,9 @@ bool FmControl::_LaunchProcess(const QString &exePath, QString& error)
if (pfnWTSQueryUserToken(dwSessionID, &hToken) == FALSE) if (pfnWTSQueryUserToken(dwSessionID, &hToken) == FALSE)
{ {
error = QString("get session failed [%1]").arg(QString::number(::GetLastError())); 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; HANDLE hDuplicatedToken = NULL;
...@@ -170,7 +173,9 @@ bool FmControl::_LaunchProcess(const QString &exePath, QString& error) ...@@ -170,7 +173,9 @@ bool FmControl::_LaunchProcess(const QString &exePath, QString& error)
CloseHandle(hToken); CloseHandle(hToken);
} }
error = QString("copy token failed [%1]").arg(QString::number(::GetLastError())); 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环境 // 创建用户Session环境
LPVOID lpEnvironment = NULL; LPVOID lpEnvironment = NULL;
...@@ -181,7 +186,9 @@ bool FmControl::_LaunchProcess(const QString &exePath, QString& error) ...@@ -181,7 +186,9 @@ bool FmControl::_LaunchProcess(const QString &exePath, QString& error)
CloseHandle(hDuplicatedToken); CloseHandle(hDuplicatedToken);
} }
error = QString("create environment failed [%1]").arg(QString::number(::GetLastError())); 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下执行应用程序,创建进程。 // 在复制的用户Session下执行应用程序,创建进程。
if (CreateProcessAsUser(hDuplicatedToken, if (CreateProcessAsUser(hDuplicatedToken,
...@@ -194,7 +201,9 @@ bool FmControl::_LaunchProcess(const QString &exePath, QString& error) ...@@ -194,7 +201,9 @@ bool FmControl::_LaunchProcess(const QString &exePath, QString& error)
DestroyEnvironmentBlock(lpEnvironment); DestroyEnvironmentBlock(lpEnvironment);
} }
error = QString("CreateProcessAsUser failed [%1]").arg(QString::number(::GetLastError())); 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.hProcess);
CloseHandle(pi.hThread); 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