如果需要查看更多文章,请微信搜索公众号 csharp编程大全,需要进C#交流群群请加微信z438679770,备注进群, 我邀请你进群! ! !
---------------------------------
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using Microsoft.Win32;using System.IO;namespace WindowsFormsApp1{ public partial class Form1 : Form { public Form1() { InitializeComponent(); // Class1.test(); // Environment.CurrentDirectory = AppDomain.CurrentDomain.BaseDirectory; } private void button1_Click(object sender, EventArgs e) { MessageBox.Show("软件自启动"); String LogPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Log"); MessageBox.Show(Environment.CurrentDirectory+"\n"+LogPath); //Class1.test(); } private void Form1_Load(object sender, EventArgs e) { AutoStart(); } private void AutoStart(bool isAuto = true, bool showinfo = true) { try { if (isAuto == true) { RegistryKey R_local = Registry.CurrentUser;//RegistryKey R_local = Registry.CurrentUser; RegistryKey R_run = R_local.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"); R_run.SetValue("应用名称", Application.ExecutablePath); R_run.Close(); R_local.Close(); } else { RegistryKey R_local = Registry.CurrentUser;//RegistryKey R_local = Registry.CurrentUser; RegistryKey R_run = R_local.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"); R_run.DeleteValue("应用名称", false); R_run.Close(); R_local.Close(); } } // if (showinfo) // MessageBox.Show("您需要管理员权限修改", "提示"); // Console.WriteLine("您需要管理员权限修改"); catch (Exception ex) { String LogPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Log"); if (!Directory.Exists(LogPath)) Directory.CreateDirectory(LogPath); if (!File.Exists(LogPath + "\\log.txt")) File.Create(LogPath + "\\log.txt").Close(); string fileName = LogPath + "\\log.txt"; string content = DateTime.Now.ToLocalTime() + " 0001_" + "您需要管理员权限修改" + "\n" + ex.StackTrace + "\r\n"; Logger(fileName, content); } } public static void disPlay(string path) { MessageBox.Show(path); } public void Logger(string fileName, string content) { using (StreamWriter sw = new StreamWriter(fileName, true)) { sw.Write(content); sw.Close(); sw.Dispose(); } } }}

发现没?开机自动启动后
Environment.CurrentDirectory 发生了变更,
这样在在我们程序中原本如果使用相对路径进行处理的,就找不见相应的文件了,
怎么处理?
方法1:
在程序初始化的时候改变下当前路径
public Form1() { InitializeComponent(); Environment.CurrentDirectory = AppDomain.CurrentDomain.BaseDirectory; }方法2:添加环境变量 , 计算行--属性--高级系统设置--环境变量--系统变量里面设置.
---------------------------------------------------------------------
如果需要查看更多文章,请微信搜索公众号 csharp编程大全,需要进C#交流群群请加微信z438679770,备注进群, 我邀请你进群! ! !
原文转载:http://www.shaoqun.com/a/480944.html
asiabill:https://www.ikjzd.com/w/1014
深兰科技:https://www.ikjzd.com/w/1517
feedly:https://www.ikjzd.com/w/754
如果需要查看更多文章,请微信搜索公众号csharp编程大全,需要进C#交流群群请加微信z438679770,备注进群,我邀请你进群!!!---------------------------------usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem
邮乐网:https://www.ikjzd.com/w/1776
aicpa:https://www.ikjzd.com/w/1373
为什么要做亚马逊CPC广告,亚马逊CPC广告有哪些技巧?:https://www.ikjzd.com/home/99503
亚马逊最低价格政策反转?卖家改完价格丧失销售权?:https://www.ikjzd.com/home/19154
Wish更新商户服务条款,这几点需重点关注!:https://www.ikjzd.com/home/13675
没有评论:
发表评论