【问题标题】:C# processstartinfo start process excelC# processstartinfo 启动进程excel
【发布时间】:2017-05-21 11:06:53
【问题描述】:

我正在尝试使用文件启动 excel。当我用同一个用户运行它时它工作正常。但是对于不同的用户,只有 excel 启动,而且还有未知的错误。

private void button1_Click(object sender, EventArgs e)
        {
            SecureString securePwd = new SecureString();

            string password = "P@ssw0rd1";
            SecureString sec_pass = new SecureString();
            Array.ForEach(password.ToArray(), sec_pass.AppendChar);
            sec_pass.MakeReadOnly();

            ProcessStartInfo ps = new ProcessStartInfo();
            ps.FileName = "c:\\Program Files\\Microsoft Office\\Office15\\EXCEL.EXE";
            ps.Arguments = "c:\\test_folder\\test.xlsx";
            ps.WorkingDirectory = "c:\\test_folder";
            ps.Domain = "test.local";
            ps.UserName = "testuser";
            ps.Password = sec_pass;
            ps.UseShellExecute = false;
            Process.Start(ps);
        }

通过更改流程,相同的代码可以完美运行 ps.FileName = "c:\Program Files\Microsoft Office\Office15\EXCEL.EXE"; 到 ps.FileName = "notepad.EXE";

如果有任何权限问题,即使notepad.exe也不应该工作。

【问题讨论】:

  • 这段代码不会让你去任何地方。实际上注销Windows,重新登录并使用“testuser”帐户。并启动 Excel。如果您没有收到更好的错误消息,那么您至少已经创建了使用您的代码运行 Excel 所需的配置文件。
  • 它适用于notepad.exe

标签: c# excel process processstartinfo


【解决方案1】:

知道这是一个旧帖子,仍然为像我这样有类似问题的人留下回复。 查看您的代码,您似乎需要将“ps.UseShellExecute”设置为“true”。我在我的 WPF 应用程序中使用按钮尝试了类似的代码(如下所示),它打开了 excel 文件没有问题。

private void Button_Click(object sender, RoutedEventArgs e)
    {
        string myPath = @"C:\Users\Lenovo\Documents\MyFile.xlsx";
        ProcessStartInfo ps = new ProcessStartInfo();
        ps.FileName = "excel"; // "EXCEL.EXE" also works
        ps.Arguments = myPath;
        ps.UseShellExecute = true;
        Process.Start(ps);
    }

当然,不要忘记在 .cs 脚本的顶部添加以下行。

using System.Diagnostics;

那么,快乐编码:)

【讨论】:

    【解决方案2】:

    代码似乎没有任何问题。因为没有改变一点,它又开始正常工作了。简直什么都没有。这只是提出了一个问题,比如问题是什么。?

    有什么建议吗?

    【讨论】:

      【解决方案3】:

      这是很正常的事情。例如,如果您在公司工作并与您的朋友打开共享 Excel 文件,您将获得“文件已被其他用户打开”的信息,您可以解决这种情况,将此文件复制到例如 C:/Temp 并稍后将其替换为共享空间。

      【讨论】:

      • 似乎不是问题。 Bcz 如果使用 notepad.exe 打开相同的文件,则可以正常打开。
      猜你喜欢
      • 1970-01-01
      • 2014-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多