- 博客(46)
- 资源 (3)
- 收藏
- 关注
原创 CentOS7 编译安装freeswitch服务,搭建sip服务器(二)
最近开始继续捣鼓sip服务,使用LinPhone开发自定义sip通信通信工具,前面介绍了如何编译LinPhone SDK。现在开始记录freeswitch的安装编译过程。编译安装环境为:系统CentOS7,使用win10 hyper-v 虚拟机进行系统虚拟。freeswitch的安装编译过程参考官方介绍:https://freeswitch.org/confluence/display/FREESWITCH/CentOS+7+and+RHEL+71. freeswitch的安装与编译下面开始
2021-02-21 17:03:44
1791
1
原创 C# WPF实现异步发布事件,避免阻塞
WPF中直接使用Invoke发布事件时通常都是阻塞的,如果订阅事件的处理中含有耗时处理以及订阅事件过多时,会导致界面响应慢,用户体验不好,因此可以使用BeginInvoke来达到异步的方式。如,自定义事件:public delegate void TestConsoleMsgHandler(int test1, int test2, IntPtr test3);public event TestConsoleMsgHandler TestConsoleEvent;在需要发布事件的地方改为以下
2020-08-14 16:18:01
1312
原创 解决 WPF 中Popup弹窗的输入框控件无法定位输入法的问题(包括可拖动的popup)
为解决popup中输入法无法正常定位的问题,创建自定义popup控件,完整代码如下:using System;using System.Diagnostics.CodeAnalysis;using System.Runtime.InteropServices;using System.Security;using System.Windows;using System.Windows.Controls;using System.Windows.Controls.Primitives;us
2020-08-13 17:05:37
1029
1
原创 使用Frp进行反向代理实现远程桌面控制Teamviewer、vnc
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。开源地址:https://github.com/fatedier/frp。具体配置方法参考:frp使用说明。目前由于teamviewer经常被认为进行商业活动,从而出现禁止使用的问题,因此找到了一款反向代理工具,可以实现远程桌面连接的端口转发。1、服务器端搭建首先需要在自由服务器搭建frp反向代理服务,在https://github.
2020-08-06 11:06:36
2128
1
原创 LinPhone-SDK编译环境搭建以及初步编译(win10系统)(一)
最近准备折腾下开源的sip通信客户端项目,打算编译下开源项目LinPhone-SDK,以备在win10系统中使用C#开发一款sip客户端,现在做下整理,准备开发环境搭建。LinPhone-SDK项目代码地址为:LinPhone-SDK,使用git克隆后,需要更新子模块。需要安装一下环境:MinGW cmake-3.15.5 GetGnuWin32 JDK NASM doxygen Python27(因为我要生成C#的封装类,所以使用2.7) Pystache (use pip i.
2020-06-28 10:51:23
5206
15
原创 WPF 使用互斥锁Mutex实现应用程序启动唯一实例,避免重复启动
C#中的Mutex是互斥锁,位于命名空间System.Threading中,它是一个互斥的对象,同一时间只有一个线程可以拥有它,该类还可用于进程间同步的同步基元。在系统运行过程中,如果当前有一个线程或者进程拥有它,在没有释放之前,其它线程或进程是没有权利拥有它的,并且使用其构造函数创建对象时设置的name是在系统中唯一的,如:/*创建具有唯一名称的互斥锁*/AppMutex = new Mutex(true, "TopToolsApp", out var createdNew);其中名称“Top
2020-06-10 11:46:09
1882
原创 C# 应用程序设置运行时自动获取管理员权限,不显示uac提示
最近需要在项目中使用管理员账户权限的功能,索性在编译时就设置好,发布时无需再进行手动设置获取管理员权限,具体步骤如下,打开启动的项目属性,选择安全性设置,勾选ClickOnce设置,如下图:保存项目设置,然后在解决方案中,展开项目properties选项:可以看到多了个app.manifest文件,编辑改文件,如下图:更改 level 为“requireAdministrator”,设置 uiAccess为false,保存编译、运行,程序运行后自动已管理员身份运行,并且不显示请求权.
2020-06-09 10:52:44
2734
原创 MySQL 使用问题总结(不定期更新)
1、MySQL插入空日期的错误问题有时候需要导入数据库时,执行数据库脚本,往往会出现插入空日期的错误,如:Incorrect datetime value: '0000-00-00 00:00:00' for column 'updatetime' at row 1这时候,可以使用cmd或者shell登录MySQL,输入以下配置即可:set global sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISIO
2020-05-29 15:02:59
330
原创 win10 系统使用问题总结(不定期更新)
1、电脑睡眠或者锁屏后,已打开的窗口自动贴边问题打开注册表,在左下角开始图标右键,打开运行窗体,输入:regedit,进入注册表编辑界面,在注册表左侧依次展开:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration查看是否有SIMULATED或NOEDID字样的开头的选项,然后展开00,编辑右侧的PrimSurfSize.cx和PrimSurfSize.cy,把这两个键值双击修改,..
2020-05-29 14:53:34
707
原创 C# wpf视频控件实现全屏显示功能(vlc全屏、视频SDK全屏)
由于最近需要在项目中使用视频全屏的功能,而因为使用了vlc来实现视频播放处理,vlc自带的视频全屏功能需要在顶级窗口中使用,经过测试,一直无法实现全屏。项目中需要实现多屏视频显示,因此采用了wpf的自定义控件的形式,控件中使用vlc的视频处理,如下部分代码所示: <WindowsFormsHost x:Name="PART_PlayerHost" Background="#131A1D"> <local:VideoFormControl x:Name="Video
2020-05-29 09:44:52
6384
1
原创 使用websocket-sharp实现websocket连接
由于最近的项目需要,在C#中使用websocket进行消息推送服务,本着不重复造轮子的原则,在github上找到了两款可用的开源类库,Fleck和websocket-sharp,经过对比,决定使用websocket-sharp(提供服务器与客户端的使用)来实现项目需求,现把具体使用情况记录如下:开启websocket服务 ///<summary>///监...
2019-05-26 00:00:00
3794
翻译 C# json使用之Json.NET(6)——使用示例
以下为json.net的使用示例程序代码,序列化和反序列化json。摘自官方使用示例。序列化和反序列化对象进行C#对象的序列化和反序列化,对象可以是类、数组、集合、列表等等,列表在json中序列化后为数组形式。序列化时,还可以决定是否进行输出的json格式化,使用Formatting.Indented参数。 publicclassAccount{publ...
2018-08-08 00:00:00
565
原创 C# 使用Json.NET来序列化json
Json.NET是一种流行的.NET高性能JSON框架,C#中可以使用Newtonsoft的Json.NET进行对象的序列化与反序列化。C#中通过使用json.net可以快速的生成json和解释json,json.net的具体使用教程可以参考我的博客:C# json使用之json.NET 系列文章,文章介绍了json.net的使用教程,包括json的序列化与反序列化、json的序列化设置。...
2018-08-03 16:18:08
1059
翻译 C# json使用之Json.NET(4)——LINQ to JSON
LINQ to JSON是一个用于处理JSON对象的API。 它的设计考虑了LINQ,以便快速查询和创建JSON对象。 LINQ to JSON位于Newtonsoft.Json.Linq命名空间下。示例: JObjecto=JObject.Parse(@"{'CPU':'Intel','Drives&#...
2018-08-03 00:00:00
1188
翻译 C# json使用之Json.NET(5)——特别篇
以下内容介绍了json.NET的性能优化问题、使用JSON模式验证JSON、手动读写JSON,Json.NET提供了JsonReader和JsonWriter类、json和xml之间的转换。性能提示开箱即用的Json.NET比DataContractJsonSerializer和JavaScriptSerializer更快。 这里有一些提示,使它更快。优化内存使用为了使应用程序保持一致,...
2018-08-03 00:00:00
1273
翻译 C# json使用之Json.NET(2)
以下为json.net的一系列参数设置以及属性设置说明,翻译自官方文档。有错误的地方请指正。Serialization Attributes序列化属性序列化属性属性可用于控制Json.NET如何序列化和反序列化.NET对象。JsonObjectAttribute -放在类上以控制它们应该如何序列化为JSON对象。JsonArrayAttribute -放置在集合上以控...
2018-08-03 00:00:00
1018
翻译 C# json使用之Json.NET(3)
以下为json.net的一系列参数设置以及属性设置说明,翻译自官方文档。有错误的地方请指正。接前篇。Serializing Dates in JSON在JSON中序列化日期在JSON中序列化日期JSON中的DateTimes很难使用。问题来自JSON规范本身:JSON中没有日期的文字语法。 规范包含对象,数组,字符串,整数和浮点数,但它没有定义日期的标准。Dates and Js...
2018-08-03 00:00:00
976
翻译 C# json使用之Json.NET(1)
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式, 人类很容易读写。 机器很容易解析和生成。 它是基于JavaScript编程语言的一个子集,标准ECMA-262第3版 - 1999年12月。JSON是一种完全独立于语言的文本格式,但使用C语言系列程序员熟悉的约定,包括C语言 ,C ++,C#,Java,JavaScript,Perl,Python等等。...
2018-08-01 00:00:00
1045
原创 地图坐标系相互转换(WGS-84、GCJ-02、BD-09)
地图坐标系WGS-84、GCJ-02、BD-09的相互转换,详情请访问我的博客:https://www.vcblog.top/article/399/
2018-07-28 13:20:28
20587
原创 解决maven项目中每次maven update project 后项目jdk变成1.5的问题
我们使用eclipse开发maven项目是总会遇到,每次执行maven update后,项目的jdk版本总会变成jdk1.5,即使在项目属性中设置,或者配置工作空间的jdk版本后依旧如此。其实这是Maven已知的一个特性,除非在你的POM文件中显式地指定一个jdk版本,否则每次更新项目后会使用编译器默认的source/target版本1.5。主要还是在于Eclipse中Maven的集成方式起到了...
2018-06-05 00:00:00
387
原创 Ubuntu16.04 安装配置Kinect2
下面把在Ubuntu16.04中配置ros和Kinect2的过程记录下来,以备查忘。首先在Ubuntu16.04中安装Ros,具体安装教程参考官网说明,ros官网安装教程。安装Kinect2的驱动libfreenect2首先下载安装驱动所必须的库,执行安装命令如下: sudoapt-getinstallbuild-essentialcmakepkg-confi...
2018-06-03 00:00:00
585
原创 WordPress添加极验验证防止垃圾评论和恶意注册
相信建立过独立博客的人都有过体会,就是当博客访问量上来之后都会遭遇恶意注册和垃圾评论的困扰,我的博客也是受到过恶意注册的影响,虽然真正没什么人来注册,但也不能接受机器人恶意注册 。。。。。极验验证是国内的新一代基于行为的交互式验证方式,可以有效防止验证码破解,下面就来说下如何在WordPress中集成极验验证,我为了减少插件的安装,就直接把极验验证集成到主题中去了,有需要的可以访问主题源码,我...
2018-05-15 00:00:00
1055
原创 利用wifi对用户进行网络监控
1.必要性 当前时代,wifi随处可见。我们可能在公共场所轻易连上了某个wifi,畅游网络。设想一下,公共wifi对用户进行监控,收集到我们访问的记录,从而得知某个地段的人所喜欢的事情。或者,你与他人合租,共用一部wifi,你可能无时无刻生活在精准监控,从而得知你所有记录。所以此篇说明实现方法科普一下,只为了用户在连接wifi一定要确认是自己的,否则一切连接运...
2018-04-30 00:00:00
2901
原创 mysql主从配置~
必要性:用户体验:在项目中,我们可能会遇到数据库宕机。通过排查原因,会使系统在一段时间内不能访问,大大降低了用户体验。若是我们配置主从数据库,那么主数据库自然过度到从数据库,使得用户察觉不到数据库的宕机,提高系统的稳健性。系统负荷:我们在项目中也可以通过配置主从服务器来进行读写分离。主数据库做为写的操作,而从服务器作为读的操作,大大降低一台数据库的压力。实现原理性:mysql...
2018-04-26 00:00:00
131
原创 WordPress自定义登录和注册页面样式并且添加验证码
通过一番尝试和验证以及网络搜索,终于实现了WordPress默认的登录和注册界面的样式修改,下面把过程记录下来。笔者主要是通过在主题中添加WordPress的钩子来实现登录和注册界面的样式修改的。WordPress的 登录和注册页面的主要样式id都是一样的名称,下面就针对登录页面来说明。主题functions脚本中添加钩子函数修改登录页面的logo和背景图片,如果读者仅仅只是进行固定设置的话...
2018-04-07 00:00:00
2225
原创 使用wpf开发数据库管理工具(二)
上一节我们简单的搭建了一个wpf应用,进行数据库开发,并且搭建了一个简单的程序界面,尝试了一下数据库连接的操作,这一节,我们开始逐步深入的通过C#进行MySQL数据库的使用。使用配置文件为了方便以后的程序扩展,我们使用配置文件来进行数据库连接参数的设定,通过使用配置文件有一个好处,就是可以在不需要重新编译程序的前提下进行程序参数的改变。程序配置文件一般使用文本文件txt、ini、xml等等,...
2018-04-02 00:00:00
540
原创 使用wpf开发数据库管理工具(一)
为了可以更有效的学习MySQL数据库的操作,下面开始使用wpf来开发MySQL数据库的管理工具,包括数据库的基本操作:增删改查,同时添加其他的功能,深入的理解数据库语句。一边开发一边学习MySQL数据库的操作。数据库管理工具,命名为DataBaseTools,项目代码托管到github中,前往下载代码。使用visual studio创建wpf应用程序直接打开visual studio,笔者...
2018-03-30 00:00:00
727
原创 MySQL配置远程登录访问
MySQL服务器配置远程登录访问首先服务器需要开启3306端口访问,配置防火墙,(如果服务器系统防火墙已关闭,可忽略),同时,如果使用阿里云或者腾讯云之类的服务器,需要检查服务器的安全组规则中有没开启3306端口访问,Centos系统中开启防火墙3306端口: iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --...
2018-03-30 00:00:00
198
原创 C#实现异步socket通信
C#异步socket通信我们在开发网络通信软件的时候,都需要实现异步的通信,有效的提高通信效率,下面来介绍下C#中异步socket通信的实现方式。服务器端处理方式首先定义一个用于函数回调传递的参数实体类: public class StateObject{ // 保存的socket连接 public Socket workSocket = null; // 接收...
2018-03-29 00:00:00
928
原创 C#实现窗口间消息通信
C#实现不同窗口间的消息通信有时候我们需要在一个程序中向另外一个窗口传递数据,以实现不同窗口间的数据通信,下面介绍两种通信方式,一种是使用窗体的消息处理机制,另一种是使用委托实现消息通信。1 重写窗体消息发送机制来发送自定义消息首先创建一个窗口程序A,添加数据发送以及打开窗口B的按钮,并重写消息发送函数,如图:窗口程序A代码如下: using System;usi...
2018-03-29 00:00:00
949
原创 Linux引导修复与双系统添加Windows引导
使用Linux启动盘修复Linux系统引导1.使用启动 USB 进入 Linux 试用环境2.查看硬盘分区状况,获取 Linux 系统安装分区编号代码如下: sudo fdisk -l 1 sudo fdisk -l 查看输出结果,然后根据文件类型和分区大小来判...
2018-03-28 00:00:00
333
原创 C#进制转换
16进制字符串转16进制字节数组 /// <summary> /// 16进制字符串转16进制字节数组 /// </summary> /// <param name="hexString">16进制字符串</param>/// <param name="size">16进制字...
2018-03-28 00:00:00
167
原创 C#获取程序路径以及系统环境变量
C#获取程序路径以及系统环境变量获得当前执行的exe的文件名。 string str1=Process.GetCurrentProcess().MainModule.FileName; 1 string str1=Process.GetCurrentProcess().MainModule.FileN...
2018-03-28 00:00:00
342
原创 C#排序算法
1 冒泡排序 namespace 数组排序{ class Program { static void Main(string[] args) { int temp = 0; int[] arr = {23, 44, 66, 76, 98, 11, 3, 9, 7}; ...
2018-03-28 00:00:00
136
原创 Android或Java中实现异步线程
Android中实现异步线程在Android开发中经常需要使用到多线程,比如在一个界面中请求数据时,如果不使用线程,那么在网络不好或者信息量大的时候,就会造成界面卡顿,用户体验极其不好。下面把比较常用的后台线程实现方式记录下来。 Handler handler = new Handler() { @Override public void handleMessage(M...
2018-03-28 00:00:00
142
原创 C#获取系统时间及格式化时间
C#获取系统时间函数列表以及各种输出格式获取当前系统时间: DateTime dt = DateTime.Now; 1 DateTime dt = DateTime.Now; 以下为各种日期格式输出示例: string timeStr = dt...
2018-03-24 00:00:00
664
原创 C#ListBox使用介绍
1 自动滚动到底部方法方法一: this.listBox1.Items.Add("new line"); this.listBox1.SelectedIndex = this.listBox1.Items.Count - 1; this.listBox1.SelectedIndex = -1; 123 ...
2018-03-24 00:00:00
901
原创 MissionPlanner-开发历程-1
1 Mission Planner 简介Mission Planner是使用C#开发的开源飞控地面站软件,使用MavLink通信协议,浏览官方网站。Mission Planner是ArduPilot开源自动驾驶项目的全功能地面站应用程序。Mission Planner项目代码已在github上进行开源,前往github克隆项目代码。2Mission Planner开发进行Mission...
2018-03-23 00:00:00
4356
2
原创 C# 定时器,计时器
多线程计时器System.Threading.TimerSystem.Timers.Timer多线程计时器比较强大,精确,而且可扩展性强;单线程计时器比较安全,对于更新 Windows Forms controls或者WPF这种简单任务来说更方便。System.Threading.Timer是最简单的多线程计时器。在下面的例子中,定时器在5秒后开始定时1秒的调用Tick方法。 ...
2018-03-21 00:00:00
496
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人