C# 从其文件夹运行exe

C# 从其文件夹运行exe,c#,process,executable,wkhtmltopdf,C#,Process,Executable,Wkhtmltopdf,这是我的场景:我有一个将html文件转换为pdf的可执行文件。 此exe仅在从其文件夹启动时才能工作。 示例:exe在C:\HtmlToPdf中,因此,在提示符中,我将执行以下操作: C:\> cd HtmlToPdf C:\HtmlToPdf> htmltopdf.exe htmlFile pdfFile 那么,在c#中有一种方法可以做到这一点?因为我试过这个: FileInfo htmlInfo = new FileInfo(executablePath + @"\" + fi

这是我的场景:我有一个将html文件转换为pdf的可执行文件。 此exe仅在从其文件夹启动时才能工作。 示例:exe在C:\HtmlToPdf中,因此,在提示符中,我将执行以下操作:

C:\> cd HtmlToPdf
C:\HtmlToPdf> htmltopdf.exe htmlFile pdfFile
那么,在c#中有一种方法可以做到这一点?因为我试过这个:

FileInfo htmlInfo = new FileInfo(executablePath + @"\" + filename);
var procInfo = new ProcessStartInfo("wkhtmltopdf.exe",htmlInfo.FullName + " " + htmlInfo.FullName.Replace(".html",".pdf"));

procInfo.WorkingDirectory=executablePath;
procInfo.UseShellExecute = false;
Process.Start(procInfo);
但它不起作用。

指出,如果使用文件的完整路径,它将很难找到文件。您需要在文件名的开头追加
文件://

请注意,在Windows上,目前无法将绝对路径名用于HTML文件的驱动器:

wkhtmltopdf d:\temp\x.html x.pdf

将失败。您需要使用file:///url:

wkhtmltopdffile:///d:/tmp/x.html x、 pdf

可能有助于添加

说明,如果您使用文件的完整路径,它将很难找到文件。您需要在文件名的开头追加
文件://

请注意,在Windows上,目前无法将绝对路径名用于HTML文件的驱动器:

wkhtmltopdf d:\temp\x.html x.pdf

将失败。您需要使用file:///url:

wkhtmltopdffile:///d:/tmp/x.html x、 pdf


可能有助于从调用EXE的位置追加

。无论是Windows窗体应用程序还是Web窗体

If its windows forms it will work

else

if its Webforms like asp.net you have to change the properties of IIS Server to start the exe

Because due to some security reasons microsoft will not allow you to start the process class from IIS server... but the same code will work from Visualstudio ..
这是我的密码

获取当前Exe可执行文件路径的步骤

 string sCurrentPAth =  Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

  Process.Start(@"E:\Debug\MyExe.exe", "arg1 arg2 arg3");

它工作正常….

从您调用EXE的位置。无论是Windows窗体应用程序还是Web窗体

If its windows forms it will work

else

if its Webforms like asp.net you have to change the properties of IIS Server to start the exe

Because due to some security reasons microsoft will not allow you to start the process class from IIS server... but the same code will work from Visualstudio ..
这是我的密码

获取当前Exe可执行文件路径的步骤

 string sCurrentPAth =  Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

  Process.Start(@"E:\Debug\MyExe.exe", "arg1 arg2 arg3");

它工作正常….

您能让我看看html文件中引用图像的代码吗?因为在我的html中,图像在下面的代码中:它在C:\htmlToPdf\TEST中,exe在C:\htmlToPdf中,它在C#中无法在@aravindsriniv中工作,正如您所需要的那样。。。是否要通过使用process class或..传递参数来启动exe。。你需要把Html转换成Pdf吗?我的意思是你真正的问题是什么?我已经简化了我的代码,先试试这个,然后运行你的exe,不管你的exe是否接受参数???你能让我看看html文件中引用图像的代码段吗?因为在我的html中,图像在下面的代码中:它在C:\htmlToPdf\TEST中,exe在C:\htmlToPdf中,它在C#中无法在@aravindsriniv中工作,正如您所需要的那样。。。是否要通过使用process class或..传递参数来启动exe。。你需要把Html转换成Pdf吗?我的意思是你真正的问题是什么?我已经简化了我的代码,先试试这个,然后运行你的exe,不管你的exe是否有参数???它的工作原理与Aravind答案类似,但图像没有显示在pdf中,图像应该在一个白色的正方形中。是的,我也有这个问题,但不记得我是如何解决的。。我想我将进程的工作目录设置为html页面所在的文件夹,原因是html具有指向图像的本地路径我解决了它!解决方案是只传递参数的名称,而不是完整路径!无论如何谢谢你!不用担心,就像我回答的第一行说的“如果你使用完整路径,它将很难找到文件”:)它的工作原理与Aravind回答类似,但是图像没有显示在pdf中,图像应该在一个白色的正方形中。是的,我也有这个问题,但不记得我是如何解决的。。我想我将进程的工作目录设置为html页面所在的文件夹,原因是html具有指向图像的本地路径我解决了它!解决方案是只传递参数的名称,而不是完整路径!无论如何谢谢你!不用担心,就像我回答的第一行说的“如果你使用文件的完整路径,它将很难找到文件”:)我添加了一个标签,这样你的问题就更谷歌友好了我添加了一个标签,这样你的问题就更谷歌友好了