文件

来源:互联网 发布:htpc播放软件 编辑:程序博客网 时间:2024/04/26 14:08
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace Demo1
{
    
/// <summary>
    
/// 配置文件操作
    
/// </summary>
    public partial class Form1 : Form
    {
        
/// <summary>
        
/// 在初始化文件指定小节内设置一个字串
        
/// </summary>
        
/// <param name="section">要在其中写入新字串的小节名称。这个字串不区分大小写 </param>
        
/// <param name="key">要设置的项名或条目名。这个字串不区分大小写。用vbNullString可删除这个小节的所有设置项</param>
        
/// <param name="val">指定为这个项写入的字串值。用vbNullString表示删除这个项现有的字串</param>
        
/// <param name="filePath">初始化文件的名字。如果没有指定完整路径名,则windows会在windows目录查找文件。如果文件没有找到,则函数会创建它</param>
        
/// <returns>非零表示成功,零表示失败。会设置GetLastError </returns>
        [DllImport("kernel32")]
        
private static extern long WritePrivateProfileString(String section, String key, String val, String filePath);

        
/// <summary>
        
/// 为初始化文件中指定的条目获取一个整数值
        
/// </summary>
        
/// <param name="section">指定在其中查找条目的小节。注意这个字串是不区分大小写的 </param>
        
/// <param name="key">欲获取的设置项或条目。这个支持不区分大小写 </param>
        
/// <param name="val">指定条目未找到时返回的默认值 </param>
        
/// <param name="filePath">初始化文件的名字。如果没有指定完整的路径名,windows就会在Windows目录中搜索文件注解</param>
        
/// <returns>找到的条目的值;如指定的条目未找到,就返回默认值。如找到的数字不是一个合法的整数,函数会返回其中合法的一部分。如,对于“xyz=55zz”这个条目,函数返回55。这个函数也能理解采用标准C语言格式的十六进制数字:用0x作为一个十六进制数字的前缀——所以0x55ab等价于vb的&H55AB</returns>
        [DllImport("kernel32")]
        
private static extern int GetPrivateProfileInt(String section, String key, int val, String filePath);

        
/// <summary>
        
/// 为初始化文件中指定的条目取得字串
        
/// </summary>
        
/// <param name="section">欲在其中查找条目的小节名称。这个字串不区分大小写。如设为vbNullString,就在lpReturnedString缓冲区内装载这个ini文件所有小节的列表</param>
        
/// <param name="key">欲获取的项名或条目名。这个字串不区分大小写。如设为vbNullString,就在lpReturnedString缓冲区内装载指定小节所有项的列表</param>
        
/// <param name="def">指定的条目没有找到时返回的默认值。可设为空("")</param>
        
/// <param name="retVal">指定一个字串缓冲区,长度至少为nSize </param>
        
/// <param name="size">指定装载到lpReturnedString缓冲区的最大字符数量 </param>
        
/// <param name="filePath">初始化文件的名字。如没有指定一个完整路径名,windows就在Windows目录中查找文件</param>
        
/// <returns>复制到lpReturnedString缓冲区的字节数量,其中不包括那些NULL中止字符。如lpReturnedString缓冲区不够大,不能容下全部信息,就返回nSize-1(若lpApplicationName或lpKeyName为NULL,则返回nSize-2)</returns>
        [DllImport("kernel32")]
        
private static extern int GetPrivateProfileString(String section, String key, String def, StringBuilder retVal,int size, String filePath);
       
        
public Form1()
        {
            InitializeComponent();
        }

        
private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show(Environment.CommandLine);
        }

        
private void button2_Click(object sender, EventArgs e)
        {
            WritePrivateProfileString(
"autorun""Open"@"vschsautorun.exe", Environment.CurrentDirectory + @"autorun.inf");
            WritePrivateProfileString(
"autorun""Icon"@"vschssetup.exe,0", Environment.CurrentDirectory + @"autorun.inf");
        }

        
private void button3_Click(object sender, EventArgs e)
        {
            
int result = GetPrivateProfileInt("autorun""Open"1, Environment.CurrentDirectory + @"autorun.inf");
            button3.Text 
= result.ToString();
        }

        
private void button4_Click(object sender, EventArgs e)
        {
            StringBuilder sb
=new StringBuilder();
            GetPrivateProfileString(
"autorun""Open""", sb, 1024, Environment.CurrentDirectory + @"autorun.inf");
            button4.Text 
= sb.ToString();
        }
    }
}
 
原创粉丝点击