- 博客(22)
- 资源 (10)
- 收藏
- 关注
原创 关于定时受“节能休眠或系统时钟调整”影响
经本人测试,如果是设置了定时,中途时间变动不影响定时时效,比如:定时30分钟后执行,中途时间有变更,依然是30分钟后准时执行,采用SetWaitableTimer设置绝对时间(比如:12:00执行),中途系统时钟调整后,依然是12:00准时执行,相当于相对时间匹配时钟跳动计数(中途系统时间调快调慢,延时一样长),绝对时间匹配系统实时时间(中途系统时间调快了会,延时变短,调慢了,延时变长)。指一个时间差TimeSpan,如:多少分钟,多少秒;指一个具体时间点DateTime,如:12:00。
2024-08-28 14:52:58 203
原创 采用FFMPEG录制电脑屏幕
方法一:下载screen capture recorder安装,调用screen capture recorder安装目录内FFmpeg执行命令:ffmpeg -f dshow -i video="screen-capture-recorder" output.mp4。以上方法未实测,按资料描述应该问题不大,用系统命令行测试方法一的录屏命令,显示CPU、内存占用有点高(12%CPU占用、750M内存, 硬件配置i5-11400H 16G内存)方法二:先屏幕截图,然后把截图输入到FFMPEG流压缩成视频。
2024-08-19 14:34:01 198
原创 关于TcpClient退出关闭处理
(最好用列表存储已经AcceptTcpClient()的所有连接客户端,客户端退出及时从列表中删除,在TcpListener结束时手动关闭列表中剩余的所有客户端。在某些时候需要关闭所有连接的客户端才会释放网络端口资源,否则再次侦听此端口显示已占用;同时,也方便程序顺利退出,如果客户端连接线程一直在通信,程序退出时清理线程会非常缓慢):上面3个方法在重复调用的情况下不会抛异常,也就是说你在同一个地方或者不同地方多次调用上面3个方法不会出异常。:即使对方已关闭连接,再调用上面3个方法也不会出异常。
2024-03-15 14:08:48 567 1
原创 关于AutoResetEvent和ManunalResetEvent使用
状态值只有一个,在同一点调用1次set()跟调用10次set()效果一样,比如:AutoResetEvent先调用10次set(),后续AutoResetEvent调用1次WaitOne()信号就没有了,变成false。ManunalResetEvent在WaitOne()收到信号执行后状态不改变,一直会有信号,直到手动调用reset()转换为无信号状态false。AutoResetEvent在WaitOne()收到信号执行后自动调用reset()转换为无信号状态false。
2024-03-15 09:10:21 338 1
原创 实现sntp协议从网络时间服务器获取时间信息
发出时间A、接收时间B、回复时间C、收到回复时间D、报文从客户端到服务器传输时长L,客户端与服务器偏差时间值X,公式1:A+X+L=B,公式2:C-X+L=D,从公式1得出L=B-A-X,那么公式2可以是C-X+B-A-X=D,推导出2X=C-A+B-D=C-A+(B-D),偏差时间值X= ((C-A)+(B-D)) / 2
2022-09-22 14:51:08 819
转载 模拟Tracert获取通往目标网络IP所经过的路由(IP地址链)
Tracert功能实现原理:通过Ping功能设置TTL参数值来获取(首先设置TTL为1去ping目标地址,返回的是路由中最近的IP;然后逐步增加TTL值继续获取后续的IP地址,直到返回的IP地址为目标IP为止)
2022-09-22 14:18:22 541
原创 Linux学习笔记
ps -ef|grep java 查找java进程find / -name java 从根目录开始查找名为java的文件kill -9 进程ID 杀掉指定进程
2022-04-19 15:38:17 916
原创 C# 枚举Color并展示各种颜色效果
本方法枚举Color以展示各颜色效果,方便为控件选择合适的颜色。本例需要在窗体项目中使用,通过创建ListView控件展示,代码如下: private void displayColor() { Control listControl = this.Controls["listView_Color"]; if (listControl != null) { listCo
2021-06-15 12:39:03 1800 9
原创 C#.NET利用API函数获取鼠标停留位置窗口信息及所属进程
本示例可获取鼠标停留位置的窗口标题、文本内容、关联进程信息,是由本人之前发表的移动鼠标获取窗口控件句柄、名称标题或文本框内容[可显示密码框内容]
2021-06-05 16:28:27 2823 2
原创 【API函数】系统音量调节
比较简单的办法是通过SendMessage发送WM_APPCOMMAND消息来实现,SendMessage原型如下:LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam)
2021-06-04 10:36:50 1555 2
原创 【API函数】 注册全局系统热键_捕获鼠标位置窗口控件_获取窗口控件的截图
本文将介绍几个WindowsAPI函数的使用,WindowFromPoint获取鼠标位置窗口控件,GetWindowRect、GetClientRect获取控件区域,用屏幕画图标记出区域,通过RegisterHotKey注册全局类系统热键操作窗口控件的截图。C#.NET代码如下:(点击下载完整源代码)using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;usin
2021-06-02 17:38:48 503 2
原创 移动鼠标获取窗口控件句柄、名称标题或文本框内容[可显示密码框内容]
本文将介绍如何通过鼠标所在坐标位置获取Windows窗口中的控件句柄,包括:窗口、窗口里的控件(如:按钮、文本框等等),同时显示控件的名称标题(如果是文本框将显示文本框的内容,包括密码sag)...
2021-06-01 15:24:11 2267
原创 FindWindow、FindWindowEx、EnumWindows、EnumChildWindows使用详解
FindWindow FindWindowEx EnumWindows EnumChildWindows
2021-05-30 17:37:03 3913 2
原创 关于C#.NET引用Windows API函数的EntryPoint的使用说明
[DllImportAttribute("user32.dll", EntryPoint = "GetWindowText")]public static extern int GetWindowText(IntPtr hwnd, StringBuilder lpString, int nMaxCount);
2021-05-30 14:38:07 1258 1
原创 通过PostMessage/SendMessage实现模拟键盘鼠标按键,发送不成功或出现重复按键的可参考本文
PostMessage与SendMessage可以发送虚拟按键
2021-05-29 17:04:32 12566 1
原创 使用WM_COPYDATA消息在不同进程间或窗口间通信传递数据
WM_COPYDATA消息类型属于windows系统标准消息类型,主要用于进程间或不同窗口间进行信息传递。使用消息的同时需要重写消息处理函数DefWndProc,以便读取消息内容
2021-05-29 15:34:57 488
原创 C# 内嵌窗体-捕捉进程外的程序窗体到自有控件中显示
本文是实现窗体内嵌,如果需要实现类似程序加壳功能,嵌入外部程序并运行,可参考本人发表的文章:https://blog.csdn.net/lzl_li/article/details/117026469近期发现ffplay很好强大,但没有图形控制界面,就想对ffplay进行简单包装,程序运行ffplay然后将ffplay显示的窗体拉入自己的控件上,实现播放器功能。[程序已完成]在此过程中,本人建立了一个类,通过窗体标题字符串查找目标窗体或通过进程获取进程的主窗体,然后将目标窗体内嵌到自有控件中显示.
2021-05-21 15:33:25 1912
原创 C# 获取Windows系统ICON图标的四种方式-可提取各种文件夹、文件等等图标
本文介绍的是提取Windows系统内部Icon图标的方法,就是系统资源管理器里面显示的图标,包括文件夹、文件,如:常规文件夹的图标、特定文件夹图标(磁盘根目录、收藏夹、网络共享目录等)、各文件类型图标、应用程序文件图标。方法一:调用.NET内部提供的ExtractAssociatedIcon方法,只能从文件获取一种规格的ICON图标,一般是Size(32,32)public static System.Drawing.Icon GetIconFromFile(string fileName){
2021-05-19 18:21:53 10875 4
原创 C# [.NET] 一行简单代码判断当前操作系统是32位还是64位
因本人需要根据系统类型调用不同的资源,需要判断系统是32位(x86)还是64位(x64),在百度上一搜五花八门什么方法都有,不是说那些方法不可用,而是太复杂。无意中发现这个问题相当简单,看下面:if (Environment.Is64BitOperatingSystem) this.Text = "64位操作系统"; else this.Text = "32位操作系统";...
2021-05-19 14:32:09 1403 2
原创 C# [程序加壳] 运行内嵌程序 - 调用嵌入资源的EXE文件运行
C# [程序加壳] 运行内嵌程序 - 调用嵌入资源的EXE文件运行本文介绍如何在程序中内嵌其它exe程序文件并调取运行,修正了网上写的代码。(主要修正了资源文件的读取、EXE文件中Main(string [])函数参数传递代码)1.先建立一个测试项目test,编译输出test.exe2.再建立一个加壳项目AppPacker3.在项目AppPacker中找到 “properties\resources.resx”,双击Resources.resx打开,在里面添加test.exe文件为本项目的资源:
2021-05-19 14:08:49 3181
C#获取系统ICON图标示范
2021-05-19
AppPacker.zip
2021-05-19
C#.Net源代码-系统资源监控-类似任务管理器
2018-04-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人