C# 进程间通信方式 1、main函数传参 (1)、传递参数 Process process = new Process();//创建进程对象 string dependAssemblies = ""; foreach (var depassembly in DependAssemblies.Values) { if (dependAssemblies.Length == 0) dependAssemblies = depassemb
WPF将窗口置于桌面下方(可用于动态桌面) 先来看一下效果: 界面元素很简单,就一个Button按钮,然后写个定时器,定时更新Button按钮中的内容为当前时间,下面来介绍下原理,和界面组成。 窗口介绍 Windows操作系统所有的地方都是窗口,可能这也是系统名字的由来吧,包括你看到的文件夹,桌面,右键菜单
1 /// <summary> 2 /// 0-关闭窗口 1-正常大小显示 2最小化窗口 3-最大化窗口 3 /// </summary> 4 /// <param name="hwnd"></param> 5 /// <param name="nCmdShow"></param> 6 /
public class PrintRaw { [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public class DOC_INFO_1 { [MarshalAs(UnmanagedType.LPStr)] public string pDocName;
无边框移动 [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImport("user32.dll")] public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int IParam); public const int WM_SYSCOMMAND = 0x0112; publi
首先,通信流程我们先撸一边,打开USB设备-》发送数据库-》接受数据-》关闭USB设备 根据USB规范的规定,所有的USB设备都有供应商ID(VID)和产品识别码(PID),主机通过不同的VID和PID来区别不同的设备。 我们需要知道设备的VID和PID才能定位到我们需要打开的USB设备,那么我们怎么知道USB设备的VI
using System; using System.Collections.Generic; using System.Runtime.InteropServices; using System.Windows.Forms; namespace MDIFlash { public partial class FormMain : Form { Dictionary<int, Form> dicForm = new Dictionary<int, For
这里调用系统 API 的方式。 ▲ 样式效果 先准备好鼠标样式cur文件。 ▲ 鼠标样式文件 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace M
using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Management; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Text; using System.Threading; using System.Thre
前不久玩植物大战僵尸,不停地玩啊玩,也通关了,准备开始享受一下IMBA的感觉。“玩玩小游戏”模式中有关“谁笑到最后”,一来就有5000的阳光,随你布置,布置完后开始攻击,过关挺容易。但是毕竟5000的阳光可布置的植物有限,总觉得不过瘾,于是找来《金山游侠》改阳光数量。好好享受了几次imba的
/// <summary> /// 根据类名和窗口名称查找窗口 /// </summary> /// <param name="lpClassName"></param> /// <param name="lpWindowName"></param> /// <returns></returns> [DllImport("user32.dll", En
一般来说,大家在需要监听全局消息的时候会考虑 SetWindowsHookEx 这个 API。或者需要处理一些非自己编写的窗口的消息循环的时候,也会考虑使用它。 如果要知道如何使用这个 API,你可以在网上搜到大量这样的文章/博客/教程/文档,然而大多不会提及使用此 API 时遇到的一些坑。阅读本文
打印示例:(前提是测试打印机被设置成默认打印机) StringBuilder builder = new StringBuilder(); builder.AppendLine("--------------打印测试--------------"); string PrintName = PrinterHelper.GetDeaultPrinterName(); PrinterHelper.SendStringToPrinter(PrintName, build
提示“”at System.Data.OracleClient.Oci.OciCalls.OciNativeCalls.OCIEnvCreate(IntPtr& envhpp, OciEnvironmentMode mode, IntPtr ctxp, IntPtr malocfp, IntPtr ralocfp, IntPtr mfreep, Int32 xtramem_sz, IntPtr usrmempp) at System.Data.OracleClient.Oci.OciCalls.
参考网址:C#调用C/C++动态库,封装各种复杂结构体。_liguo9860的专栏-CSDN博客 现在公司要做一个使用C#程序调用C++的一个DLL库,解析文件的功能。所以在网上找了一些资料。 一、结构体传递 #define JNAAPI extern "C" __declspec(dllexport) // C方式导出函数 typedef st
Windows使用HID通信相对比较简单,HID都是通过PID、VID信息来查找连接的,相比于串口,几乎无变化,连接无需人工选择,十分方便,也不需要驱动。 下面上实例,PID为0x003f,VID为0x04D8,支持发送接收数据显示到UI,使用C#来编写,调用的是windows api(create file、read file、write file)。 本实例将HID
在 WPF 中可以使用 Dxva2 或 GDI 的方法调整屏幕亮度或获取屏幕亮度 比较推荐使用 Dxva2 的方法修改亮度,但不是所有的屏幕都支持的。假定某个设备有多个屏幕,此时可以使用 User32 的 MonitorFromWindow 方法获取某个窗口所在的屏幕,此时根据这个屏幕的返回的 GetMonitorBrightness
我在做一个笔迹性能测试工具,想要在笔迹绘制到某个点的时候输出绘制的速度,通过判断屏幕颜色修改判断笔迹绘制到哪。此时需要在不截图屏幕获取屏幕某个点的颜色 本文的方法可以在 WinForms 等使用 using System; using System.Drawing; using System.Runtime.InteropServices
title author date CreateTime categories WPF 从触摸消息转触摸事件 lindexi 2019-05-13 09:43:48 +0800 2019-05-12 15:12:31 +0800 WPF 在 WPF 程序可能因为一些坑让程序触摸失效,如果此时还可以收到系统的触摸消息,那么可以通过从触摸消息转触摸事件解决程序触摸失效
title author date CreateTime categories WPF 使用 RawInput 接收裸数据 lindexi 2019-11-23 16:38:27 +0800 2019-11-23 16:27:42 +0800 WPF 在 Windows 提供很底层的方法接收硬件设备的裸数据,通过接收裸数据可以做到性能更高的全局键盘,还能支持多个鼠标。但是用这个
title author date CreateTime categories WPF 获取应用的所有窗口 lindexi 2019-02-11 08:55:31 +0800 2019-02-11 08:55:31 +0800 WPF 本文告诉大家如何获取应用内的所有窗口,无论这些窗口有没显示 在 WPF 可以通过 Application.Current.Windows 列举应用的所有窗口
/// <summary> /// 删除系统菜单 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void window_SourceInitialized(object sender, Eve
拚忘的博客园要开始写随笔了,第一期就先讲讲wifi热点吧..... 持续更新C#、wpf、.NetCore相关内容,欢迎关注!! C#打开WiFi热点,WiFi共享的四种方式总结(一) C#打开WiFi热点,WiFi共享的四种方式总结(二) C#打开WiFi热点,WiFi共享的四种方式总结(三) C#打开WiFi热点,WiFi共享的四种方式总结(四) C#
新版悬赏猫任务网站源码分享 可封装APP+教程 新版悬赏猫源码仿似度97(附详细教程) 想弄成APP,也可以打包源码封装成APP使用 源码开发语言:后端TP框架,前端H5。 vue框架 HB打包 宝塔php5.6 数据库5.6 后台地址 域名+admin 后台账号admin 密码qq1737571164 教程:见压缩包,小白也能做
当程序运行,窗口已经加载后,如果修改屏幕分辨率,会影响窗口的正常显示。 举个案例: 悬浮窗口,显示在屏幕右下角。当分辨率、文本显示比例变更后,窗口位置可能会超出屏幕范围。 所以当屏幕变更时,我们需要知道准确的时机,然后针对的处理。 对窗口添加钩子 1 var windowInteropHelper =