Tag: shellexecute

检测在c#中使用openas_rundll打开的所选程序

我在c#的openas_rundll的帮助下使用openfile对话框打开一个文件。 Process.Start(“rundll32.exe”, string.Format(“shell32.dll,OpenAs_RunDLL \”{0}\””, tempFilePath)); 现在我想检测用于打开文件的程序。 我想跟踪这个过程。 我的目标是在用户关闭程序时删除该文件。

如何在SELECTED打印机中打印任何文档

我想使用.net打印选定打印机中的任何文档,如pdf,word,excel或文本文件。我已成功在默认打印机中进行此类打印。现在唯一的问题是在所选打印机中打印。 这是打印的代码。 public bool Print(string FilePath) { if (File.Exists(FilePath)) { if (ShellExecute((System.IntPtr )1, “Print”, FilePath, “”, Directory.GetDirectoryRoot(FilePath), SW_SHOWNORMAL).ToInt32() <= 32) { return false; } else { return true; } } else { return false; } }

如何启动优先级较低的流程? C#

我想执行命令行工具来处理数据。 它不需要阻止。 我希望它是低优先级。 所以我写了下面的内容 Process app = new Process(); app.StartInfo.FileName = @”bin\convert.exe”; app.StartInfo.Arguments = TheArgs; app.PriorityClass = ProcessPriorityClass.BelowNormal; app.Start(); 但是,我收到一个System.InvalidOperationException ,并显示消息“没有进程与此对象关联”。 为什么? 如何以低优先级正确启动此应用程序? 没有行app.PriorityClass = ProcessPriorityClass.BelowNormal; 该应用运行正常。

无论如何,在生成进程时是否指定了PrintTo打印机?

是)我有的 我目前正在编写一个程序,它接受一个指定的文件并用它执行一些操作。 目前,它打开它,和/或将其附加到电子邮件并将其邮寄到指定的地址。 该文件可以是以下格式:Excel,Excel报表,Word或PDF。 我目前正在做的是使用文件路径生成进程,然后启动进程; 但是我也正在尝试修复我添加的错误function,它根据指定的设置将动词“PrintTo”添加到启动信息中。 我需要的 我想要完成的任务是我想打开文档,然后将自己打印到程序本身命名的指定打印机。 然后,文件应自动关闭。 如果没有办法一般地执行此操作,我们可能能够为每种单独的文件类型提供一种方法。 你需要什么 这是我正在使用的代码: ProcessStartInfo pStartInfo = new ProcessStartInfo(); pStartInfo.FileName = FilePath; // Determine wether to just open or print if (Print) { if (PrinterName != null) { // TODO: Add default printer. } pStartInfo.Verb = “PrintTo”; } // Open the report file unless only set to […]

从C#执行另一个程序,我是否需要自己解析注册表中的“命令行”?

从注册表中,对于给定的文件类型,我得到一个包含以下内容的字符串: “C:\Program Files\AppName\Executable.exe” /arg1 /arg2 /arg3 或有时: “C:\Program Files\AppName\Executable.exe” /arg1 /arg2 /arg3 “%1″ 为了让我执行这个程序,并传递一个文件名作为参数(我知道它接受),我是否必须自己解析这个字符串,或者是否有一个运行时类为我做这个? 请注意,我不是要求处理两者之间是否有“%1”的区别,而是我需要拆分可执行文件的名称,分别获取命令行参数。 我尝试只是附加/注入文件的完整路径和文件的名称传递到上面的字符串并将整个shebang传递给Process.Start,但当然它只需要文件名作为单个参数,所以这不是工作。 基本上,上面必须像这样手动完成: Process proc = new Process(); proc.StartInfo.FileName = @”C:\Program Files\AppName\Executable.exe”; proc.StartInfo.Arguments = “/arg1 /arg2 /arg3 \”” + fileName + “\””; proc.Start(); 我尝试使用UseShellExecute ,但这没有帮助。 还有其他指针吗? 要清楚,我想要这个: String commandPath = ReadFromRegistry(); String fullCommand = commandPath + ” ” + fileName; // […]