如何EXE使用C#从Windows服务运行程序?
这是我的代码:
System.Diagnostics.Process.Start(@"E:\PROJECT XL\INI SQLLOADER\ConsoleApplication2\ConsoleApplication2\ConsoleApplication2\bin\Debug\ConsoleApplication2.exe");
Run Code Online (Sandbox Code Playgroud)
当我运行此服务时,应用程序无法启动.
我的代码出了什么问题?
更新 **仍然正在寻找一个正确的答案**我的Windows服务中有以下代码,我想运行一个批处理文件.我想要命令提示窗口,以便我可以看到进度
这是我的代码,但我的批处理文件代码不起作用
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.IO;
namespace Watcher
{
public partial class Watcher : ServiceBase
{
public Watcher()
{
InitializeComponent();
FolderWatcher.Created += FolderWatcher_Created;
FolderWatcher.Deleted += FolderWatcher_Deleted;
FolderWatcher.Renamed += FolderWatcher_Renamed;
}
protected override void OnStart(string[] args)
{
// Start the child process.
Process p = new Process();
// Redirect the output stream of the child process.
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "C:\\myFile.bat";
p.Start(); …Run Code Online (Sandbox Code Playgroud) 我最近实现了CreateProcessAsUser.我一直试图将输出结果重定向或管道传输到文件.优先流.我试过这个没有运气
更新
要求是:
码:
public class CreateProcess
{
#region Constants
const UInt32 INFINITE = 0xFFFFFFFF;
const UInt32 WAIT_FAILED = 0xFFFFFFFF;
#endregion
#region ENUMS
[Flags]
public enum LogonType
{
LOGON32_LOGON_INTERACTIVE = 2,
LOGON32_LOGON_NETWORK = 3,
LOGON32_LOGON_BATCH = 4,
LOGON32_LOGON_SERVICE = 5,
LOGON32_LOGON_UNLOCK = 7,
LOGON32_LOGON_NETWORK_CLEARTEXT = 8,
LOGON32_LOGON_NEW_CREDENTIALS = 9
}
[Flags]
public enum LogonProvider
{
LOGON32_PROVIDER_DEFAULT = 0,
LOGON32_PROVIDER_WINNT35,
LOGON32_PROVIDER_WINNT40,
LOGON32_PROVIDER_WINNT50
}
#endregion
#region Structs
[StructLayout(LayoutKind.Sequential)]
public struct STARTUPINFO
{
public Int32 cb; …Run Code Online (Sandbox Code Playgroud) 我有一个执行批处理文件的Windows窗体.我想将我控制台中发生的所有事情转移到我表单中的面板.我怎样才能做到这一点?我的DOS控制台如何与我的Windows窗体面板通信???
谢谢