公共函数收集

来源:互联网 发布:公历转农历算法 编辑:程序博客网 时间:2024/04/28 20:02

 一些有用的公共函数

 


        [DllImport("User32.dll")]
        private static extern bool ShowWindowAsync(IntPtr hWnd, int cmdShow);

        [DllImport("User32.dll")]
        private static extern bool SetForegroundWindow(IntPtr hWnd);
        private const int WS_SHOWNORMAL = 1;


        /// <summary>
        /// 获取正在运行的实例,没有运行的实例返回null;
        /// </summary>
        public static Process RunningInstance()
        {
            Process current = Process.GetCurrentProcess();
            Process[] processes = Process.GetProcessesByName(current.ProcessName);
            foreach (Process process in processes)
            {
                if (process.Id != current.Id)
                {
                    if (Assembly.GetExecutingAssembly().Location.Replace("/", "\\") == current.MainModule.FileName)
                    {
                        return process;
                    }
                }
            }
            return null;
        }

        /// <summary>
        /// 显示已运行的程序。
        /// </summary>
        public static void HandleRunningInstance(Process instance)
        {
            ShowWindowAsync(instance.MainWindowHandle, WS_SHOWNORMAL); //显示,可以注释掉
            SetForegroundWindow(instance.MainWindowHandle);            //放到前端
        }
 


        public static bool PingIp(string ip)
        {
           
            string strIpOrDName = ip;
            try
            {
                if (!IsIp(ip))
                    return false;
                Ping objPingSender = new Ping();
                PingOptions objPinOptions = new PingOptions();
                objPinOptions.DontFragment = true;
                string data = "";
                byte[] buffer = Encoding.UTF8.GetBytes(data);
                int intTimeout = 120;
                PingReply objPinReply = objPingSender.Send(strIpOrDName, intTimeout, buffer, objPinOptions);
                string strInfo = objPinReply.Status.ToString();
                if (strInfo == "Success")
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch
            {
                return false;
            }
        }


        public static bool IsIp(string StrData)
        {
            Regex res = new Regex(@"^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$");
            return res.IsMatch(StrData);
       
       
        }


        /// <summary>
        /// 把XML文档转换为Byte字节流
        /// </summary>
        /// <param name="XmlFilePath"></param>
        /// <returns></returns>
        public static byte[] XmlToByte(string XmlFilePath)
        {
            if (XmlFilePath == "" || XmlFilePath == null)
                return null;

            if (File.Exists(XmlFilePath) == false)
            {
                return null;
            }
            try
            {
                return File.ReadAllBytes(XmlFilePath);
            }
            catch
            {
                return null;

            }

        }


        /// <summary>
        /// 用来保存示教数据,如果读写数据库出现异常,可以手动导入示教数据而不用重新进行示教。
        /// </summary>
        /// <param name="trajname">路径名称作为示教文件名</param>
        /// <param name="data">示教的字节流</param>
        /// <returns></returns>
        public static bool ByteToXml(string trajname, byte[] data)
        {
            if (data == null || trajname == null)
            {
                return false;
            }
            if (Directory.Exists(Application.StartupPath + "\\TeachDataFile") == false)
            {

                Directory.CreateDirectory(Application.StartupPath + "\\TeachDataFile");

            }
            try
            {

                MemoryStream l_stream = new MemoryStream(data);
                l_stream.Position = 0;
                StreamReader l_read = new StreamReader(l_stream);
                XmlDocument l_doc = new XmlDocument();
                l_doc.LoadXml(l_read.ReadToEnd());
                l_doc.Save(Application.StartupPath + "\\TeachDataFile\\" + trajname + ".xml");
                l_stream.Close();
                l_read.Close();
                return true;
            }
            catch
            {
                return false;

            }
        }

    }

 

原创粉丝点击