C# Winform获取INI文件信息失败

来源:百度知道 编辑:UC知道 时间:2024/06/29 01:25:54
开机自动启动C# Winform程序时获取账号密码信息失败,但是点击应用程序可以正常获取INI文件信息,请问是什么问题,怎么解决,谢谢!
代码如下:
/// 读取文件
public string ReadInivalue(string Section, string Key)
{
StringBuilder temp = new StringBuilder(1024);
int i = GetPrivateProfileString(Section, Key, "读取错误", temp, 1024, this.filePath);
return temp.ToString();
}

private void frmLogin_Load(object sender, EventArgs e)
{
if (File.Exists(Application.StartupPath + "\\Configland.ini"))
{
filePath = Path.GetFullPath(@"Configland.ini");
System_Remember_Password iniFile = new System_Remember_Password(filePath);
singleValue1 = iniFile.ReadInivalue("checkBox1", "checkBox1");
singleValue2 = iniFile.ReadInivalue("UserName", "UserName");
singleValue3 = iniFile.ReadInivalue("Password", "Password&qu

将 frmLogin_Load(object sender, EventArgs e){}中的前几行换成:
if (File.Exists(Path.GetFullPath(@"Configland.ini");))
{
filePath = Path.GetFullPath(@"Configland.ini");

或者

if (File.Exists(Application.StartupPath + "\\Configland.ini"))
{
filePath = Application.StartupPath + "\\Configland.ini";

哈。。

你的意思是不是说写了一个C#Windows窗体程序,在程序中读取一个ini账号密码配置文件,又把这程序做成开机自启动,程序会报错?但是直接点击启动应用程序时可以读取ini文件?如果是的话,没人看得到你的源码,谁也回答不了你。真的要有意义的回答,请贴上你的相关代码供参考!
从这个代码上看,既然直接执行程序可以读取Configland.ini文件,那证明读取文件的方法是可以的。但是问题可能出在iniFile.ReadInivalue这个方法中。也许读取文本需要特定的文本格式,但开机时候这个文本的初始化工作没做好。这样吧,你开机以后如果还是显示不能读取文件,先直接把那个ini文件拷贝出来。再直接执行一下应用程序,如果这时候一切正常,在比较一下原先的文件与现在的ini文件有什么不同。如果确实文本不一样,那读取方法就会出错。