将程序添加到 Windows 启动
Adding Program to Windows Startup
我的程序将用户的输入保存到当前位置的 txt 文件
TextWriter ts = new StreamWriter("url.txt");
ts.WriteLine(textBox2.Text.ToString());
ts.Close();
应用程序启动时显示
if (File.Exists("url.txt")) {
TextReader tr = new StreamReader("url.txt");
readUrl = tr.ReadLine().ToString();
textBox2.Text = readUrl;
tr.Close();
}
我使用这些代码将此程序添加到 Windows 启动程序
using (RegistryKey key = Registry.CurrentUser.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true)) {
key.SetValue("House Party Protocol", "\"" + Application.ExecutablePath + "\"");
}
我用 ClickOnce 发布了它并将它安装到我的计算机上。它在 windows 启动时启动,但不读取 txt 文件。当我手动打开它时,它起作用了。我认为 ClickOnce 安装路径和 windows 启动路径不同。我应该如何更改我的启动代码以避免这种情况
您可以尝试使用特定目录。例如,您可以将 url.txt 文件保存到 LocalApplicationData(当前非漫游用户使用的应用程序特定数据的目录)。
static void Main(string[] args)
{
string inputText = string.Empty;
//string directory = Environment.CurrentDirectory;
string directory = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
string path = Path.Combine(directory, "url.txt");
if (File.Exists(path))
{
TextReader tr = new StreamReader(path);
string readUrl = tr.ReadLine().ToString();
inputText = readUrl;
tr.Close();
}
string text = "abc";
TextWriter ts = new StreamWriter(path);
ts.WriteLine(text);
ts.Close();
}
如果你真的想使用应用程序所在的目录 运行 那么你可以尝试使用 Environment.CurrentDirectory
(在上面的示例代码中被注释掉)。这可能会给您带来与之前相同的错误(使用相对路径时),但它可能会通过显示它尝试使用的目录来帮助您解决问题。
这是其他特殊文件夹的列表:
Environment.SpecialFolder
我的程序将用户的输入保存到当前位置的 txt 文件
TextWriter ts = new StreamWriter("url.txt");
ts.WriteLine(textBox2.Text.ToString());
ts.Close();
应用程序启动时显示
if (File.Exists("url.txt")) {
TextReader tr = new StreamReader("url.txt");
readUrl = tr.ReadLine().ToString();
textBox2.Text = readUrl;
tr.Close();
}
我使用这些代码将此程序添加到 Windows 启动程序
using (RegistryKey key = Registry.CurrentUser.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true)) {
key.SetValue("House Party Protocol", "\"" + Application.ExecutablePath + "\"");
}
我用 ClickOnce 发布了它并将它安装到我的计算机上。它在 windows 启动时启动,但不读取 txt 文件。当我手动打开它时,它起作用了。我认为 ClickOnce 安装路径和 windows 启动路径不同。我应该如何更改我的启动代码以避免这种情况
您可以尝试使用特定目录。例如,您可以将 url.txt 文件保存到 LocalApplicationData(当前非漫游用户使用的应用程序特定数据的目录)。
static void Main(string[] args)
{
string inputText = string.Empty;
//string directory = Environment.CurrentDirectory;
string directory = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
string path = Path.Combine(directory, "url.txt");
if (File.Exists(path))
{
TextReader tr = new StreamReader(path);
string readUrl = tr.ReadLine().ToString();
inputText = readUrl;
tr.Close();
}
string text = "abc";
TextWriter ts = new StreamWriter(path);
ts.WriteLine(text);
ts.Close();
}
如果你真的想使用应用程序所在的目录 运行 那么你可以尝试使用 Environment.CurrentDirectory
(在上面的示例代码中被注释掉)。这可能会给您带来与之前相同的错误(使用相对路径时),但它可能会通过显示它尝试使用的目录来帮助您解决问题。
这是其他特殊文件夹的列表: Environment.SpecialFolder