在WIN7下通过在IIS中发布WebService,其中用到了cjwdev.windowsapi.dll的APP_Start(),然后调用本地应用程式,可以成功调用并显示界面,但部署到服务器上时,可以看到进程,却不能显示界面,和未使用cjwdev.windowsapi.dll在本地测试的情况一样,这是因为SERVER下权限管控更严了吗?导致cjwdev.windowsapi.dll失效了?有哪位大拿可以指点一下吗?public void AppStart(string appPath, string arg)
{
try
{ string appStartPath = appPath;
IntPtr userTokenHandle = IntPtr.Zero;
ApiDefinitions.WTSQueryUserToken(ApiDefinitions.WTSGetActiveConsoleSessionId(), ref userTokenHandle); Cjwdev.WindowsApi.ApiDefinitions.PROCESS_INFORMATION procInfo = new ApiDefinitions.PROCESS_INFORMATION();
ApiDefinitions.STARTUPINFO startInfo = new ApiDefinitions.STARTUPINFO();
startInfo.cb = (uint)Marshal.SizeOf(startInfo); ApiDefinitions.CreateProcessAsUser(
userTokenHandle,
appStartPath,
arg,
IntPtr.Zero,
IntPtr.Zero,
false,
0,
IntPtr.Zero,
null,
ref startInfo,
out procInfo); if (userTokenHandle != IntPtr.Zero)
ApiDefinitions.CloseHandle(userTokenHandle); int _currentAquariusProcessId = (int)procInfo.dwProcessId;
}
catch (Exception ex)
{ }
}
{
try
{ string appStartPath = appPath;
IntPtr userTokenHandle = IntPtr.Zero;
ApiDefinitions.WTSQueryUserToken(ApiDefinitions.WTSGetActiveConsoleSessionId(), ref userTokenHandle); Cjwdev.WindowsApi.ApiDefinitions.PROCESS_INFORMATION procInfo = new ApiDefinitions.PROCESS_INFORMATION();
ApiDefinitions.STARTUPINFO startInfo = new ApiDefinitions.STARTUPINFO();
startInfo.cb = (uint)Marshal.SizeOf(startInfo); ApiDefinitions.CreateProcessAsUser(
userTokenHandle,
appStartPath,
arg,
IntPtr.Zero,
IntPtr.Zero,
false,
0,
IntPtr.Zero,
null,
ref startInfo,
out procInfo); if (userTokenHandle != IntPtr.Zero)
ApiDefinitions.CloseHandle(userTokenHandle); int _currentAquariusProcessId = (int)procInfo.dwProcessId;
}
catch (Exception ex)
{ }
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货