我正在尝试使用文件启动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也不行。
答案 0 :(得分: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;
那么,祝您编码愉快:)
答案 1 :(得分:0)
这是很正常的事情。如果您在公司工作并且与朋友打开共享Excel文件,其中一个人将获得信息"文件由另一个用户打开"您可以解决此问题,将此文件复制到例如C:/ Temp,然后在共享空间上替换它。
答案 2 :(得分:0)
代码似乎没有任何问题。由于没有改变一点,它刚刚开始正常工作。什么都没有。这只会引发一个问题,例如问题所在。?
有任何建议。?