
C#
文章平均质量分 86
C Sharp 语言窗体桌面应用。
boonya
资深Java,热衷大数据,Python爬虫,持续探索副业中,有需要的可以加我微信联系:boonya221
展开
-
解决视频OCX在调用云台指令使用鼠标事件来发起和结束指令动作无效
如题:OCX在调用云台指令使用mousedown和mouseup不起作用问题(视频播放和检索在requireJS封装都是正常的)。在项目中使用requireJS封装了视频控件,但是在指令调用这块始终有问题,经过分析和测试发现:mousedown和mouseup间隔时间一般只有100多ms ocx方法直接调用可以请求,说明ocx不能离开上下文requireJS封装下面的方法采用req...原创 2020-03-03 12:45:09 · 515 阅读 · 0 评论 -
C# 使用SDL2进行视频播放窗口截图和字幕添加
使用SDL2进行视频播放窗口截图和字幕添加SDL API查看:https://wiki.libsdl.org/APIByCategory视频截图 /// <summary> /// SDL2截图操作类 /// </summary> public unsafe class SDLScreenshot { Int...原创 2018-03-06 14:51:46 · 5354 阅读 · 0 评论 -
FFmpeg添加滤镜调整视频对比度和亮度
原文地址:https://blog.youkuaiyun.com/wer85121430/article/details/79642951目的:调整视频的亮度和对比度。可参考ffmpeg的源码:\examples\filtering_video.c,视频滤波例子\libavfilter\vf_eq.c,亮度对比度调整的具体实现先使用ffmpeg.exe试试效果,女神的原始视频图片:ffmpeg.exe -i ...转载 2018-03-30 09:55:25 · 8591 阅读 · 1 评论 -
解决OCX (ActiveX)事件注册IE事件回调
OCX在事件注册方面C#版本一般实现可能有问题——光使用事件代理注册事件是不行的,需要注册允许COM通信。引文讲述 引文地址:https://social.msdn.microsoft.com/Forums/ie/en-US/47eccb01-8089-4653-a0ce-45e9...原创 2018-04-09 09:37:48 · 3958 阅读 · 1 评论 -
C#一个简单的队列测试-生产消费
对于消费者和生产者而言,资源的有无是可见的,至少生产者有了产品之后就会通知消费者去获取。队列using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace AVParser{ /// ///原创 2018-01-13 12:24:03 · 1222 阅读 · 0 评论 -
C# 写成ActiveX空间后对目录操作没有权限
在使用截图和录像的过程中遇到目录创建不成功的情况。输出的BUG日志System.UnauthorizedAccessException: 对路径“D:\Program Files (x86)\CvNavi\CvVideoOcx\record”的访问被拒绝。 在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath...原创 2018-03-27 13:15:47 · 609 阅读 · 0 评论 -
Global System Hooks in .NET
Link From:https://www.codeproject.com/Articles/6362/Global-System-Hooks-in-NETA class library for using *global* system hooks in .NET.Download demo project - 100 KbDownload source - 150 KbIntroduction...转载 2018-04-04 10:37:48 · 988 阅读 · 0 评论 -
C#程序验证系统登录用户与目录权限
Windows用户类型:Administrator、Guest、自定义用户等;文件的权限不外乎:Read、Write、Modify、Remove等等,其中拥有所有权限的字符叫做FullControl。 C#当前程序用户路径权限设置 /// <summary> /// 是否拥有程序数据路径权限 /// </summary> ...原创 2018-05-15 09:52:21 · 1878 阅读 · 0 评论 -
C# 正确实现 IDisposable实现资源释放
文章来自:https://msdn.microsoft.com/zh-cn/library/ms244737(v=vs.80).aspx为何要正确实现IDisposable未正确实现 IDisposable。下面列出了产生此问题的一些原因: IDisposable 在类中重新实现。 Finalize 被再次重写。 Dispose 被重写。 Dispose() 不是公共、密封或命名的 Dis...转载 2018-06-04 13:04:13 · 6267 阅读 · 0 评论 -
C# 窗体视频控件进入全屏模式和退出全屏模式
窗体控件进入全屏模式和退出全屏模式,视频播放的时候用到此功能。工具类代码using System;using System.Collections.Generic;using System.Linq;using System.Runtime.InteropServices;using System.Text;using System.Threading.Tasks;using Syst...原创 2018-03-13 11:02:34 · 6450 阅读 · 0 评论 -
C# 内存复制和数组复制示例
内存复制-Marshal.Copy: // 复制当前传入的数据 byte[] pcm_src = new byte[len]; // 复制数据到二进制数组 Marshal.Copy(pcm, pcm_src, 0, len);数组复制-Array.Copy:// 复制当前传入的数据byte[] pcm_src = new byte[len];// 复制数据到二进制数组Marshal.C...原创 2018-03-22 16:55:54 · 6540 阅读 · 0 评论 -
C# 使用SDL2实现Mp4文件播放音视频
播放音视频的关键:视频的格式是H264,音频的格式是AAC。使用ffmpeg探测流的方式来实现音视频流的解码播放。数据处理逻辑:H264->YUV AAC->PCM。SDL2工具类using SDL2;using System;using System.Collections.Generic;using System.Linq;using System.Runtime....原创 2018-03-08 14:28:36 · 7788 阅读 · 17 评论 -
C# 开发DirectX.DirectSound录音在Win10兼容解决方法
最近做的声音录制项目中用到了Microsoft.DirectX.DirectSound组件,win10默认的DirectX版本是DX12,如果不是请不要升级DirectX12。如果升级到DirectX12会出现:Microsoft.DirectX.DirectSound.PriorityLevelNeededException异常。DirectX是不提供卸载功能的,所以需要借助DirectX卸载和原创 2018-01-17 15:58:00 · 3438 阅读 · 1 评论 -
C#编写的Socket基于通道的服务端
本文是继C#编写的Socket客户端通道发送队列的续集。有客户端还需要服务端,服务端也要采用通道的方式来创建。 连接服务类基类using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Net.Sockets;using System.Net;using S原创 2018-01-08 16:41:09 · 1056 阅读 · 0 评论 -
C#编写的Socket客户端通道发送队列
C#编写的Socket客户端通道发送队列:Socket、Channel、Queue这里就不多做介绍了,本篇旨在实现一个Socket管理通道的队列服务。创建一个Channelusing System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Net.Sockets;us原创 2018-01-08 15:58:10 · 3456 阅读 · 1 评论 -
C# 内存分配与释放示例
原文地址:https://msdn.microsoft.com/zh-cn/library/ms146631.aspxusing System;using System.Runtime.InteropServices;class Example{ static void Main() { // Create a managed array.转载 2018-02-01 15:24:18 · 4210 阅读 · 0 评论 -
C# SortedDictionary排序结构测试
C# SortedDictionary-Dictionary,SortedList-List 这是两种不一样的数据结构,但是他们比较相似。Sorted*意为排序的,这里以SortedDictionary为例进行测试。SortedDictionaryusing System;using System.Collections.Generic;using System.Linq;using Sys原创 2018-01-19 17:11:24 · 1951 阅读 · 0 评论 -
C# DirectX.DirectSound声音播放
英文原文:https://msdn.microsoft.com/en-us/library/windows/desktop/bb318665(v=vs.85).aspxMicrosoft DirectSound提供了一个系统,可以捕捉来自输入设备的声音,并通过使用高级三维定位效果的各种播放设备播放声音,以及用于回声,失真,混响和其他效果的滤波器,信息显示在以下主题中。Playing Sounds本翻译 2018-01-19 17:56:07 · 2324 阅读 · 0 评论 -
C# DirectX.AudioVideoPlayback音频视频播放
英文原文:https://msdn.microsoft.com/en-us/library/windows/desktop/bb324497(v=vs.85).aspxAudioVideoPlayback应用程序编程接口(API)提供音频和视频文件的基本播放和简单控制。有关更多信息,请参阅Microsoft.DirectX.AudioVideoPlayback托管代码参考文档。使用Video类播放翻译 2018-01-19 18:27:40 · 2630 阅读 · 0 评论 -
C# DirectX.DirectShow-音视频播放或捕获
英文原文:https://msdn.microsoft.com/en-us/library/windows/desktop/dd375454(v=vs.85).aspxMicrosoft DirectShow应用程序编程接口(API)是Microsoft Windows的媒体流式架构。 使用DirectShow,您的应用程序可以执行高质量的视频和音频播放或捕获。Windows SDK中提供了Dir翻译 2018-01-19 18:55:24 · 1868 阅读 · 0 评论 -
ASP.NET 或C# 中ASCII码含中文字符的编解码处理
网上很多在线工具转出来的不能用,如“是是是”转出来的ASC是 :"\u662f\u662f\u662f”,如果是HTTP服务这个参数是有问题的因为包含特殊字符“\”。在C#或ASP.NET中,如果是有中文字符,那么直接转是不行的,需要先将字符串转成16进制码才能转成想要的ASCII码,拿到的ASCII码字符串也可以进行解码了,不会再有中文乱码问题。StringUtil工具类using System...原创 2018-05-23 17:20:01 · 6111 阅读 · 1 评论 -
C#中List集合的排序方法总结
C#中List集合的排序方法有Where ,AsParallel().Where,GroupBy和ToLookup。控制台示例程序:using System;using System.Collections.Generic;using System.Diagnostics;using System.Linq;using System.Text;using System.Threading...转载 2018-06-01 18:27:25 · 12477 阅读 · 0 评论 -
C# 本地图片转Base64码和Base64码显示
在跨系统的图片操作中如果后台程序不能操作前端上传的路径,这时候需要将图片转成Base64码供网页端或其他地方存储和使用。最简单的Base64转法 /// <summary> /// 视频截图完成事件回调 /// </summary> /// <param name="id"></param>...原创 2018-07-13 11:36:05 · 33296 阅读 · 2 评论 -
C# OCR AspriseOcr测试使用图像文字中英文识别
OCR AspriseOcr测试使用中英文识别:因为使用AspriseOcr是需要商业授权码的,故使用网上破解dll包进行测试,测试的结果并不理想,可能是因为版本太低所致。如果真的需要做好OCR应用建议购买其授权码。官网地址:http://asprise.com/应用场景图像扫描:对图片进行文字识别 文件扫描:对PDF文件进行文字识别 条码扫描:对二维码条码进行扫描识别测试示例...原创 2018-07-25 10:30:18 · 20279 阅读 · 5 评论 -
C# 开启HTTP监听服务与线程数量控制
如何开IP和端口的HTTP监听这里就是按照实现这种方式来加以说明,另外线程不要再循环里面不停的new Thread()这样很耗性能。开启HTTP服务监听 /// <summary> /// 启动HttpService监听 /// </summary> /// <param name="MyTask">...原创 2018-07-14 16:31:39 · 2642 阅读 · 0 评论 -
C# Graphics画矩形出现缺少或遮挡问题解决
下面我们以多屏画视频播放的边框为例。错误效果:期望效果: /// <summary> /// 绘制播放视频控件边框(0:黑色,1:绿色) /// </summary> /// <param name="color">0:黑色,1:绿色</param> public ...原创 2018-08-31 14:03:59 · 4255 阅读 · 0 评论 -
C# 使用VS 性能探查器(快捷键:Alt+F2)
打开VS“分析”>"性能探查器"(也可以使用Alt+F2快捷键): 注:可以更改目标进行测试。点击“开启”按钮开始 测试:停止收集之后可以查看具体的性能瓶颈处:输出报告 ...原创 2018-09-06 10:16:35 · 3533 阅读 · 1 评论 -
C#多屏视频控件外部绘制矩形边框解决窗口抖动
视频在播放过程中如果是绘制矩形边框到视频界面那么视频播放的时候会冲掉边框,所以需要每播放一次画面更新一下边框,这样就增加了额外性能开销,所以此方法不推荐使用(图形本身比较流畅,但因为加了边框之后看起来是在抖动的)。于是后来想着通过线条绘制窗口来实现边框,但是比较复杂,每个图形的边界和位置都需要计算,而且实现过程中相同的算法出现了线条模糊的情况。最终,选择调整内部视频的大小来允许绘制一个边框,这种方...原创 2018-09-07 12:09:07 · 1278 阅读 · 0 评论 -
c++动态库打包为dll文件供C#项目调用
C++与C#接口交互需要通过DLL库来完成。编写C++动态库创建项目:添加C++测试类:在MathAPI.h定义接口方法:#pragma onceclass MathAPI{public: MathAPI(); ~MathAPI(); static _declspec(dllexport) double Add(double a, double b)...原创 2018-09-27 11:32:15 · 2044 阅读 · 0 评论 -
Java & C# BCD编码与十进制转换
目录BCD码介绍 Java版本互转工具C#版本互转工具BCD码介绍BCD码(Binary-Coded Decimal)亦称二进码十进数或二-十进制代码。用4位二进制数来表示1位十进制数中的0~9这10个数码。是一种二进制的数字编码形式,用二进制编码的十进制代码。BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。这种编码技巧最常...原创 2018-10-30 10:34:52 · 2540 阅读 · 0 评论 -
C# 关于ActiveX(OCX)获取外部键盘鼠标事件
下面是网上看到的两篇关于OCX事件处理的文章,思路和方式没问题,关键是怎么转为C#,请有这方面经验的指点一下!OCX控件在网页中如何获得键盘事件原文地址:https://blog.youkuaiyun.com/yh2008_chase/article/details/8155439在网页中的ocx控件有时无法获得键盘事件,当网页中的ocx控件上有子窗口的时候,更是无法获得键盘事件,解决该问题的方法如下:1 想...原创 2018-06-28 11:23:54 · 1299 阅读 · 1 评论 -
C# 实现多分屏视频播放-自定义控件集合无序性问题
参考:自定义控件使其填充方格且自动变换大小文章,据此生成了多分屏的视频播放器。这里需要注意Controls的数组的无序性。这里看下自定义控件的代码:using System;using System.Collections.Generic;using System.ComponentModel;using System.Drawing;using System.Data;using Sy...原创 2018-07-09 23:01:08 · 3554 阅读 · 4 评论 -
C# Log4net日志代码配置解决OCX不写日志问题
通过log4.config配置的时候在OCX安装时默认路径下没法创建和写入日志文件,CAB打包后也没有日志配置文件,为了解决这一问题,需要调整日志存储的路径,并将日志通过代码的方式来配置。日志配置工具类:using log4net;using log4net.Appender;using log4net.Core;using log4net.Filter;using log4net.Lay...原创 2018-06-08 11:05:45 · 1149 阅读 · 1 评论 -
C# Dictionary多线程安全访问问题
Dictionary是非线程安全的类型,操作的时候需要对其进行线程安全处理,最简单的方式就是加锁(lock)。数据变量:private static Dictionary<string, VirtualVideoChannel> m_list_video_channel_all = new Dictionary<string, VirtualVideoChannel>();...原创 2018-06-01 17:12:49 · 12768 阅读 · 0 评论 -
C# Parallel并行遍历方法和执行任务
Parallel遍历分为For、ForEach,支持Lamda表达式,执行并行任务使用Invoke。控制台示例程序:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;n...转载 2018-06-01 17:38:48 · 3028 阅读 · 0 评论 -
C# 并发安全集合ConcurrentBag取代List
List集合是非线程安全的,所以我们这里了解下安全集合ConcurrentBag。控制台测试程序:using System;using System.Collections.Concurrent;using System.Collections.Generic;using System.Diagnostics;using System.Linq;using System.Text;us...转载 2018-06-01 18:19:32 · 24306 阅读 · 0 评论 -
C#Task执行线程及其相关问题
对于多线程,我们经常使用的是Thread。在我们了解Task之前,如果我们要使用多核的功能可能就会自己来开线程,然而这种线程模型在.net 4.0之后被一种称为基于“任务的编程模型”所冲击,因为task会比thread具有更小的性能开销,不过大家肯定会有疑惑,任务和线程到底有什么区别呢?Task和Thread的区别Task是架构在Thread之上的,也就是说任务最终还是要抛给线程去执行。Task跟...转载 2018-06-01 18:54:38 · 26540 阅读 · 0 评论 -
C# Windows Service 项目支持安装和卸载服务含GUI
Windows Service 项目支持安装和卸载服务,本篇内容主要尝试实现服务的安装和卸载。实现过程中以支持使用此服务进行任何exe的启动,只要配置好exe和log的全路径记录。创建windows service项目修改项目名称,然后确定。添加安装控件并修改用户权限在新建项目的文件中打开“ProjectInstaller.cs”,右键添加“添加安装程序”,然后得到如下所示界面。修改处理安装控件的...原创 2018-06-25 16:24:52 · 815 阅读 · 0 评论 -
C# System.BadImageFormatException 解决方法
出现System.BadImageFormatException 异常有两种情况:程序目标平台不一致&引用dll文件的系统平台不一致。异常参考:BadImageFormatException 程序目标平台不一致:项目>属性>生成:x86 和x64平台注:此种问题一般是编译错误。引用dll文件的系统平台不一致程序中引用外部dll文件的目标平台的版本x86和x64不一致。注:此种问...原创 2018-07-08 20:50:55 · 65472 阅读 · 9 评论 -
C# 以manifest文件方式申请应用以管理员身份运行
这里是在VS2017下面操作为例,程序需要管理员权限运行,manifest是改动最小的方式。这里以RTVS项目为例进行讲解。添加manifest配置文件项目右键添加新建项,如下图所示:修改manifestUAC权限控制项目结构如下:需要修改的部分: <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security...原创 2018-06-27 11:29:53 · 1882 阅读 · 0 评论