form读取配置文件

       /// <summary>
/// 读取配置文件
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
/// 引用 port.BaudRate = int.Parse(GetConfig(string.Format("Com_{0}_BaudRate", index))); port.ByteSize = byte.Parse(GetConfig(string.Format("Com_{0}_ByteSize", index)));
private static string GetConfig(string key)
{ System.Configuration.AppSettingsReader config = new System.Configuration.AppSettingsReader();
return config.GetValue(key, typeof(string)).ToString();
}

查看代码

form遍历文件夹内的文件,返回DataTable表

        public DataTable File_data(string sSourcePath)
{ DataTable Filedata = new DataTable(); //实例化
Filedata.Columns.Add("RelativePath", Type.GetType("System.String"));//添加列
Filedata.Columns.Add("FullPath", Type.GetType("System.String"));//添加列
DirectoryInfo theFolder = new DirectoryInfo(sSourcePath);//遍历文件夹
FileInfo[] thefileInfo = theFolder.GetFiles("*.*", SearchOption.TopDirectoryOnly);//仅只搜目录下的文件
foreach (FileInfo NextFile in thefileInfo) //遍历文件
Filedata.Rows.Add(NextFile.Name,NextFile.FullName);//向表添加数据
DirectoryInfo[] dirInfo = theFolder.GetDirectories(); //遍历子文件夹,返回当前目录的子目录
foreach (DirectoryInfo NextFolder in dirInfo)//
{
FileInfo[] fileInfo = NextFolder.GetFiles("*.*", SearchOption.AllDirectories);//搜子目录下的文件,功能找子目录下的文件
foreach (FileInfo NextFile in fileInfo) //遍历文件
Filedata.Rows.Add(NextFile.Name, NextFile.FullName);//向表添加数据行
}
return Filedata;//返回值
}

查看代码

调用

DataTable dt = File_data(@"D:\mywed");

计算文件的hash值

internal string CalcFileHash(string FilePath)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
byte[] hash;
using (FileStream fs = new FileStream(FilePath, FileMode.Open, FileAccess.Read, FileShare.Read, ))
{
hash = md5.ComputeHash(fs);
}
return BitConverter.ToString(hash);
}

查看代码

webBrowser控件显示网页

this.webBrowser1.DocumentText = "<h1>测试</h1>";

form全局异常捕获

       #region Constructor
static FileTransmiter()
{
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
} static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
StreamWriter writer = new StreamWriter(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "exec.log"), true, Encoding.Default);
writer.Write("Time:");
writer.Write(DateTime.Now.ToShortTimeString());
writer.Write(". ");
writer.WriteLine(e.ExceptionObject);
writer.Dispose();
}
#endregion

查看代码

线程委托操作控件

        /// <summary>
/// 声明委托
/// </summary>
/// <param name="add_lst"></param>
public delegate void lstServeritms(string add_lst);
/// <summary>
/// 线程通过委托的方法写入控件
/// </summary>
/// <param name="add_lst">字符串"test"</param>
private void lstServeritmsResult(string add_lst)
{
if (lstServer.InvokeRequired == true)//检查是否跨线程,然后将方法加入委托,调用委托
{
lstServeritms set = new lstServeritms(lstServeritmsResult);//委托的方法参数应和SetCalResult一致
lstServer.Invoke(set, new object[] { add_lst }); //此方法第二参数用于传入方法,代替形参result
}
else
{
lstServer.Items.Add(add_lst);
} }

查看代码

DataTable修改更新数据库

private OleDbConnection oCon = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;       Data Source=|DataDirectory|\\db\\data.mdb");
DataTable dt = new DataTable();
using (oCon)
{
//先取出从数据库中取出Datatable
OleDbCommand sqlcmd = new OleDbCommand("select * from code_cheat where id=" + int.Parse(id), oCon);
oCon.Open();
OleDbDataReader sqlReader = null;
sqlReader = sqlcmd.ExecuteReader();
dt.Load(sqlReader); //修改一条记录
dt.Rows[]["code_content"] = postDataText;//修改字段的值 //以下三行代码就是把上面更改的数据更新到数据库中
OleDbDataAdapter sda = new OleDbDataAdapter(sqlcmd);
OleDbCommandBuilder sqlcmdB = new OleDbCommandBuilder(sda);
sda.Update(dt);
}

查看代码

dataGridView返回当前行单击行的值

 private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
int rowindex = e.RowIndex;
string code_id = dataGridView1.Rows[rowindex].Cells[].Value.ToString();
}

查看代码

查询ACCESS

/// <summary>
/// OleDb查询数据库返回内容
/// </summary>
/// <param name="sql_str"></param>
/// <returns></returns>
protected DataTable dlBind(string sql_str)
{
oCon.Open();
OleDbCommand ps = new OleDbCommand(sql_str, oCon);
DataTable dt = new DataTable();
dt.Load(ps.ExecuteReader());
oCon.Close();
return dt; }

打开文件并读取内容,保存字符到文件

/// <summary>
/// 打开文件,反回字符串
/// </summary>
/// <param name="file_path">"SyntaxHighligher/com.html"</param>
/// <returns></returns>
private string openfiletext(string file_path)
{
StreamReader htmlreader = new StreamReader(file_path);
return htmlreader.ReadToEnd(); }
/// <summary>
/// 保存字符串到文件
/// </summary>
/// <param name="filetext"></param>
/// <param name="file_path">"SyntaxHighligher/com.html"</param>
private void writefiletext(string filetext,string file_path)
{
FileStream MyFileStream = new FileStream(file_path, FileMode.Create, FileAccess.Write);
StreamWriter htmlWriter = new StreamWriter(MyFileStream, System.Text.Encoding.UTF8);
htmlWriter.WriteLine(filetext);
htmlWriter.Close();
MyFileStream.Close(); }

转换人民币大写

public static string CmycurD(double num)
{
string str1 = "零壹贰叁肆伍陆柒捌玖"; //0-9所对应的汉字
string str2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"; //数字位所对应的汉字
string str3 = ""; //从原num值中取出的值
string str4 = ""; //数字的字符串形式
string str5 = ""; //人民币大写金额形式
int i; //循环变量
int j; //num的值乘以100的字符串长度
string ch1 = ""; //数字的汉语读法
string ch2 = ""; //数字位的汉字读法
int nzero = ; //用来计算连续的零值是几个
int temp; //从原num值中取出的值 num = Math.Round(Math.Abs(num), ); //将num取绝对值并四舍五入取2位小数
str4 = (num * ).ToString(); //将num乘100并转换成字符串形式
j = str4.Length; //找出最高位
if (j > ) { return "溢出"; }
str2 = str2.Substring( - j); //取出对应位数的str2的值。如:200.55,j为5所以str2=佰拾元角分 //循环取出每一位需要转换的值
for (i = ; i < j; i++)
{
str3 = str4.Substring(i, ); //取出需转换的某一位的值
temp = Convert.ToInt32(str3); //转换为数字
if (i != (j - ) && i != (j - ) && i != (j - ) && i != (j - ))
{
//当所取位数不为元、万、亿、万亿上的数字时
if (str3 == "")
{
ch1 = "";
ch2 = "";
nzero = nzero + ;
if (i == (j - ))//如果有"0角"则不显示零
{
nzero = ;
} }
else
{
if (str3 != "" && nzero != ) //如果是连续的0时
{ ch1 = "零" + str1.Substring(temp * , );
ch2 = str2.Substring(i, );
nzero = ; }
else
{
ch1 = str1.Substring(temp * , );
ch2 = str2.Substring(i, );
nzero = ;
}
}
}
else
{
//该位是万亿,亿,万,元位等关键位
if (str3 != "" && nzero != )//前面有零的除0之外的数
{
ch1 = "零" + str1.Substring(temp * , );
ch2 = str2.Substring(i, );
nzero = ;
}
else //前面没零或 str3=0
{
if (str3 != "" && nzero == ) //值不是0时 前面没零只转换字符
{
ch1 = str1.Substring(temp * , );
ch2 = str2.Substring(i, );
nzero = ;
}
else
{
if (str3 == "" && nzero >= )
{
ch1 = "";
ch2 = "";
nzero = nzero + ;
}
else
{
if (j >= )
{
ch1 = "";
nzero = nzero + ;
}
else
{
ch1 = "";
ch2 = str2.Substring(i, );
nzero = nzero + ;
}
}
}
}
}
if (i == (j - ) || i == (j - ) || i == (j - ))
{
//如果该位是亿位万元或元位,则必须写上
ch2 = str2.Substring(i, );
}
str5 = str5 + ch1 + ch2; if (i == j - && str3 == "")
{
//最后一位(分)为0时,加上“整”
str5 = str5 + '整';
}
}
if (num == )
{
str5 = "零元整";
}
return str5;
} /**/
/// <summary>
/// 一个重载,将字符串先转换成数字在调用CmycurD(decimal num)
/// </summary>
/// <param name="num">用户输入的金额,字符串形式未转成decimal</param>
/// <returns></returns>
public static string CmycurD(string numstr)
{
try
{
double num = Convert.ToDouble(numstr);
return CmycurD(num);
}
catch
{
return "非数字形式!";
}
}

以管理员身份运行某程序

有一条case需要测试non-admin用户下运行软件产生的event信息。 由于Automation的大job是在admin用户下运行的,因此需要切换到non-admin用户,而这无论是在WTT中还是.NET中切换用户都是比较困难的。因此需要采用run as的策略,也就是在当前的admin用户下,通过code来使得所测软件在non-admin用户下运行。

下面这段代码实现了在指定的用户下运行某程序。可以从config文件中读取指定的用户。
注意:指定用户的密码不能为空,否则会有异常抛出。

public static bool LauchMontanaBrt(string inUserName,string inPassWord)
{
try
{
Process MBRTProcess = new Process();
MBRTProcess.StartInfo.UserName = inUserName;
string strPWD = inPassWord;
SecureString password = new SecureString();
foreach (char c in strPWD.ToCharArray())
{
password.AppendChar(c);
}
MBRTProcess.StartInfo.Password = password;
MBRTProcess.StartInfo.WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory;
MBRTProcess.StartInfo.FileName = "xxx.exe";
MBRTProcess.StartInfo.Arguments = "/run /wu";
MBRTProcess.StartInfo.UseShellExecute = false;
MBRTProcess.Start();
return true;
}
catch(Exception error)
{
Console.writeline(error.Message);
return false;
}
}

最新文章

  1. xcode 常见错误报错问题!
  2. GPS部标平台的架构设计(五)-地图服务算法库
  3. hadoop2.5重新编译问题
  4. loj 1021(状压dp+记忆化搜索)
  5. MINA实战
  6. ip_conntrack缓存neighbour
  7. Windows phone 之手势识别(Drag)
  8. BZOJ 4034 [HAOI2015]T2(树链剖分)
  9. glibc漏洞监测并修复
  10. 树形dp Codeforces Round #364 (Div. 1)B
  11. Hibernate二级缓存原理
  12. 浅入深出之Java集合框架(中)
  13. c/c++ linux 进程 fork wait函数
  14. [加密解密]CryptoAPI简介
  15. 壁虎书7 Ensemble Learning and Random Forests
  16. MacOS 10.12 Sierra 安全性与隐私没有任何来源选项解决方法
  17. shell 命令 zip unzip
  18. 把List&lt;T&gt;转换为DataTable
  19. 使用ExpandableListView以及如何优化view的显示减少内存占用
  20. yarn hadoop-2.3.0 installation cluster Centos 64bits

热门文章

  1. SpringBoot---常规属性配置
  2. SSH配置与修改
  3. php ucfirst()函数 语法
  4. CSP-S2019退役记/爆内存记
  5. PCB底层打印到热转印纸上 Altium Designer
  6. IntelliJ IDEA更新maven依赖包
  7. 题解 SP4033 【PHONELST - Phone List】
  8. Pipenv管理项目环境--Django项目的一些最佳实践
  9. CentOS 7下升级python版本到3.X
  10. hdu1158 Employment Planning(dp)