gpt4 book ai didi

c# - 如何将当前运行的程序集复制到 Windows 启动项

转载 作者:行者123 更新时间:2023-12-02 17:18:59 25 4
gpt4 key购买 nike

我正在编写一个小型 TaskExplorer,它将所有正在运行的进程保存到 .ini 文件中。它会在当前用户的桌面上创建一个名为“Überwachung”的文件夹,并以日期为名称保存文件。

我希望该程序在用户登录后启动,但在将当前运行的程序集复制到 Windows 启动时,我不断收到 system.unauthorizedaccessexception

这是我的复制代码:

if (!File.Exists(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Startup), "ProzessManager")))
File.Copy(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Startup), "ProzessManager"),false);
File.SetAttributes(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), FileAttributes.Normal);

最佳答案

您需要“所有用户的启动”文件夹

using System.IO;
using System.Reflection;

private string pathStartUp = Environment.GetFolderPath(Environment.SpecialFolder.CommonStartup);

var exe = Assembly.GetExecutingAssembly().Location;
var destiny = Path.Combine(pathStartUp, Path.GetFileName(exe));
var data = File.ReadAllBytes(exe);
File.WriteAllBytes(destiny, data);

读取和写入主应用程序的所有字节更简单。

编辑:将变量 pathStartUp 更改为使用 GetFolderPath,因此它甚至可以在 Windows XP 上运行,因为 Windows XP 的启动路径与 Windows Vista/7/8 不同。

关于c# - 如何将当前运行的程序集复制到 Windows 启动项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21764987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com