我编写了一个Windows服务,允许我远程运行和停止应用程序.这些应用程序使用CreateProcess运行,这对我有用,因为它们中的大多数只执行后端处理.最近,我需要运行将GUI呈现给当前登录用户的应用程序.如何在C++中编码以允许我的服务找到当前活动的桌面并在其上运行GUI?
我正在一个受控的,仅限xp,仅限Intranet的环境中运行,我需要从PHP应用程序启动外部进程.(备份,报告等)
我可以让系统或exec启动静默工作的进程.这是一个简单的例子
<?php exec ("echo hello > hello.txt");?>
Run Code Online (Sandbox Code Playgroud)
我可以让它执行一个没有可见输出的bat文件.
我无法获得任何具有运行屏幕的程序,例如报告生成器或记事本......
<?php exec ("explorer");?>
Run Code Online (Sandbox Code Playgroud)
什么都不做 或系统相同
嘿,我正在尝试获得一项服务来启动我的程序,但它没有显示GUI.该过程开始但没有显示任何内容.我尝试启用"允许服务与桌面交互",但仍然无效.我的程序是一个计算机锁定设备,用于阻止未经授权的用户访问计算机.我正在运行带有64位操作系统的Windows 7.
这是我服务的代码:
protected override void OnStart(string[] args)
{
Process p = new Process();
p.StartInfo.FileName = "notepad.exe";
p.Start();
FileStream fs = new FileStream(@"C:\Users\David\Documents\Visual Studio 2010\Projects\LockPCService\LockPCService\bin\Debug\ServiceLog.dj",
FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter m_streamWriter = new StreamWriter(fs);
m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);
m_streamWriter.WriteLine(" LockPCService: Service Started " + DateTime.Now + "\n" + "\n");
m_streamWriter.Flush();
m_streamWriter.Close();
}
protected override void OnStop()
{
FileStream fs = new FileStream(@"C:\Users\David\Documents\Visual Studio 2010\Projects\LockPCService\LockPCService\bin\Debug\ServiceLog.dj",
FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter m_streamWriter = new StreamWriter(fs);
m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);
m_streamWriter.WriteLine(" LockPCService: Service Stopped " + DateTime.Now + "\n"); m_streamWriter.Flush();
m_streamWriter.Close(); …Run Code Online (Sandbox Code Playgroud)