我是编程新手,并陷入了一些小问题。我的 Windows 应用程序上有一个按钮,我想在单击该按钮时打开记事本。我使用了互联网上从
process.start()
到甚至 envirnoment.path
的所有可用代码,但按钮不显示记事本。这是我已经尝试过的。
private void btnNotepad_Click(object sender, EventArgs e)
{
string notepadPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.SystemX86), "notepad.exe");
System.Diagnostics.Process.Start(notepadPath);
}
或者简单地说:
system.diagnostics.process.start(@"notepad.exe");
还做了这个:
string theData = txtbxRepeat.Text;
FileStream aFile = new FileStream("myTextFile.txt", FileMode.OpenOrCreate);
StreamWriter sw = new StreamWriter(aFile);
txtbxRepeat.Text = theData;
sw.WriteLine(theData);
sw.Close();
请帮助我。
您可以使用 btnStart_Click 启动应用程序
private void btnStart_Click(对象发送者,EventArgs e) { 尝试 { 使用(进程myProcess =新进程()) { 字符串 fn = @"C:\Windows\system32 记事本.exe”; myProcess.StartInfo.UseShellExecute = false; myProcess.StartInfo.FileName = fn; myProcess.StartInfo.CreateNoWindow = true; myProcess.Start(); }
}
catch
{
//
}
}
并使用 btnClose_Click
停止进程private void btnClose_Click(对象发送者,EventArgs e) {
Process[] workers = Process.GetProcessesByName("notepad");
foreach (Process worker in workers)
{
try
{
worker.CloseMainWindow();
break; // if working properly, break here.
}
catch
{
//worker.Kill();
Thread.Sleep(2000);
//worker.Kill();
worker.CloseMainWindow();
}
finally
{
}
}
worker.Dispose();
}
}
通过第一个和第二个代码片段,您正朝着正确的方向前进。但是,您需要指定 notepad++ exe 的完整路径。
private void button1_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), "Notepad++", @"notepad++.exe"));
}
但是,请记住用户可能已将 notepad++ 安装在不同的目录中(例如,他们没有 x86 目录)。
更新:更新为包括环境路径而不是硬编码路径。