注册表,以及记录当前调用方法的基本信息的代码

public class TestStackTrace
    {
        List<object> paramValueItems = new List<object>();
        public void TestMethod(int num,string msg)
        {
            //注册表的写入
            RegistryKey rk = Registry.LocalMachine;
            rk.SetValue("LOLRegister", "Do");
            //记录方法参数的值
            paramValueItems.Clear();
            paramValueItems.Add(num);
            paramValueItems.Add(msg);

            WriteLog(paramValueItems);

            num += num;
            msg = num.ToString() + "hello word";
        }
        public void WriteLog(List<object> items)
        {
            try
            {
                //如果可以输出日志,就执行
                //if (IsEnableOutPutLog == true)
                //{
                    StackTrace st = new StackTrace(true);
                    //这个括号里面的参数从0开始,0就是自己,1就是上一个
                    MethodBase methodName = st.GetFrame(1).GetMethod();
                    //得到参数集合
                    ParameterInfo[] paramInfo = st.GetFrame(1).GetMethod().GetParameters();
                    //文件路径
                    string fileName = "MethodInfoLog.txt";

                    //定义文件信息对象
                    FileInfo finfo = new FileInfo(fileName);

                    //判断文件是否存在以及是否大于2M 2048000
                    if (finfo.Exists && finfo.Length > 2048000)
                    {
                        try
                        {
                            //删除该文件
                            finfo.Delete();
                        }
                        catch (Exception e)
                        {

                        }

                    }
                    using (StreamWriter writer = new StreamWriter(fileName, true, System.Text.Encoding.UTF8, 1024))
                    {
                        writer.WriteLine("方法名称:" + methodName.Name);
                        writer.WriteLine("调用时间: " + DateTime.Now);
                        writer.WriteLine("--------------------------------------------------------------------");
                        for (int i = 0; i < items.Count; i++)
                        {
                            writer.WriteLine("参数名称:" + paramInfo[i].Name);
                            writer.WriteLine("参数类型:" + paramInfo[i].ParameterType);
                            writer.WriteLine("参数值:" + items[i].ToString());
                            writer.WriteLine("参数位置: " + paramInfo[i].Position);
                            writer.WriteLine(String.Empty);
                            writer.WriteLine("*********************************************************************");
                            writer.Flush();
                            writer.Close();
                        }

                    }

                //}
            }
            catch (Exception ex)
            {
                //WriteLog(ex, "方法记录出现异常!");
            }
        }
时间: 2024-08-01 22:05:12

注册表,以及记录当前调用方法的基本信息的代码的相关文章

Windows10注册表被修改该还原方法介绍

大家在Win10系统的使用过程中,可能经常会遇到需要修改注册表解决的问题,不过经常更改注册表,或许也会产生各种问题,因此这时候大家就需要将注册表恢复下.那么究竟该如何恢复注册表呢? 如果你已经修改了你的注册表,可以通过以管理员身份运行命令提示符恢复,将下列代码贴贴到命令提示符中. reg add "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsSelfHostApplicability" /v "BranchName" /d &

平台安装时写入注册表的打包方法

最近根据客户要求,在用户下载办公系统安装包安装后,将直接从网页登陆,这需要在注册表中写入delit项,在此之前平台一直采用的是安装好后,从平台提供的登陆界面登陆然后在向注册表添加项. 要解决这个问题,只能在用户安装好客户端后就自动的向注册表写入delit项.下面是实现方法:1.我们使用下图中所示工具进行安装包打包: 2.具体打包步骤可以参照http://plat.delit.cn/article-1-167.html 3.点击安装之后--双击结束安装--点击操作--选择On Preload事件,

注册表项

RegistryKey类在.NET的哪个命名空间中Microsoft.Win32 注册表项是注册表中的基本组织单位,好比是Windows资源管理器中的文件夹.每个具体的注册表项都可以有子项,就像文件夹下可以有子文件夹一样.只要用户具有相应的权限,且注册表项不是基项或基项的下一级项,就可以删除该注册表项.每个注册表项也可带有与其相关联的多个值(一个值就好比是一个文件),它们用于存储信息,例如,有关计算机上安装的应用程序的信息.每个值存储特定的信息,可按需要对其进行检索或更新.例如,可以为您的公司创

delphi 注册表操作(读取、添加、删除、修改)完全手册

DELPHI VS PASCAL(87)  32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息. 一.创建和释放TRegistry对象 1.创建TRegistry对象.为了操作注册表,要创建一个TRegistry对象:ARegistry := TRegistry.Create: 2.释放TRegistry对象.对注册表操作结束后,应释放TRegistry对象所占内存:ARegistry.Destroy. 二.指定要操作的键 操作注册表时,首先应指定操作的主键:先给属性R

易语言操作注册表

关键是了解易语言自带的: “写注册项” 这个方法. 如: 写注册项 (#本地机器, “SOFTWARE\Microsoft\Internet Explorer\MAIN\Start Page”, “http://www.baidu.com”) 这样就在#本地机器中的指定位置键下写入了默认键值信息. 那么第一个参数“#本地机器”代表什么意思呢?   看下图就知道了 以上是易语言和注册表中对应键关系. 具体操作注册表,再上一图片就明白了 以上是易语言通常操作注册表的添加,修改等方法, 值得注意的是:

C#注册表操作类--完整优化版

using System; using System.Collections.Generic; using System.Text; using Microsoft.Win32; namespace Register { public class RegisterHelper { /// <summary> /// 注册表基项静态域 /// /// 主要包括: ///1.Registry.ClassesRoot 对应于 HKEY_CLASSES_ROOT 主键 ///2.Registry.Cu

【转】[内核/驱动]驱动中获取进程全路径和注册表全路径

转载地址: http://blog.sina.com.cn/s/blog_60a1a51d0100e78g.html 2008.07.05 经过这几天的努力,注册表保护驱动已经基本稳定.很多人都在网上问如何获取访问注册表的进程全路径和被访问的注册表的全路径,下面就将部分代码贴出来. //驱动中获取被访问注册表的全路径 BOOLEAN GetRegFullPath(HANDLE KeyHandle, PUNICODE_STRING pRegFullPath) { POBJECT pKey = NU

64位Windows操作系统中的注册表

x64系统上有x64.x86两种注册表,记录下. 64 位Windows系统中的注册表分为 32 位注册表项和 64 位注册表项,许多 32 位注册表项与其相应的 64 位注册表项同名. 在64位版本系统的注册表编辑器中,32 位注册表项显示在以下注册表项下: HKEY_LOCAL_MACHINE\Software\WOW6432Node 使用默认的 64 位版本注册表编辑器%systemroot%\Syswow64\regedt.exe,可以查看或编辑 64 位和 32 位的注册表项和项值.

(转:收藏)怎样把数据库连接字符串存入注册表中

如果我们将连接数据库的信息存入注册表中,就能极大地提高连接信息的安全性.本文就是介绍如何将连接数据库的信息存储到注册表中,以提高数据库连接信息的安全性. 数据库的连接字符串是用数据库开发所必须的信息,我们通过连接字符串连接数据库,并进行各种数据库操作.本文提供的是把数据库连接信息存储到注册表中的方案.也许你要问为什么要存到注册表呢?我想最起码的好处是安全,注册表的访问权限很高,一般远程服务在没有得到管理员账号的情况下是没有权限来对注册表进行操作的,那么用来连接数据库的账户信息便安全许多. 一.在