ICode9

精准搜索请尝试: 精确搜索
  • 使用C#编写一个.NET分析器(一)2022-09-15 10:04:49

    译者注 这是在Datadog公司任职的Kevin Gosse大佬使用C#编写.NET分析器的系列文章之一,在国内只有很少很少的人了解和研究.NET分析器,它常被用于APM(应用性能诊断)、IDE、诊断工具中,比如Datadog的APM,Visual Studio的分析器以及Rider和Reshaper等等。之前只能使用C++编写,自从.NET Native

  • 记一次被非托管代码支配的恐惧「C#对接企微会话存档SDK问题修复」2022-09-03 00:01:20

    序 这个问题是我目前在做企微服务商开发以来周期最长、最折磨人的一个问题了; 从3月开始着手排查问题(其实在开发之初就发现了该问题,迫于进度,就暂时搁置了),其中断断续续去尝试解决,并且没有企微对接人,只能社区咨询以及demo调试,加之期间需求不断,也就拖到了当下; 加之企微并没有提供C#对

  • WPF中使用 WndProc 来处理Windows Messages2022-08-24 13:03:19

    WPF对应的C#程序有时需要与Window32程序进行通信,会使用到窗口过程函数来接受Windows消息。 引入 System.Windows.Interop 命名空间,将使用到其中的 HwndSource 使用实例如下: // Add an event handler that receives all window messages, // 该函数的调用必须要当前程序的 MainWin

  • FB(S1C1): PInvokeStackImbalance对PInvoke函数的调用导致堆栈不对称2022-08-15 00:30:28

    FB(S1C1): PInvokeStackImbalance对PInvoke函数的调用导致堆栈不对称   问题:     C#语言 对 C语言 导出函数进行调用时报出的错误.  方案:     设置调用约定CallingConvention的枚举值中的CallingConvention.Cdecl.  实施:     C语言导出函数形式 extern "C" _

  • 使用C#制作可以录制自动化执行Windows操作脚本工具——类似于按键精灵2022-07-26 11:05:10

    我们知道,如果要对一个网站进行自动化测试,可以使用Python的selenium对获取网页的元素进行一系列操作。同样,对于Windows应用,可以使用C#或者AutoIt(也是一种脚本语言,相比较与C#,AutoIt更适合做Windows应用的自动化脚本)捕获窗体句柄进行操作。 今天主要记录一下使用WPF制作可以录制自动

  • Using PostMessage/SendMessage to send keys to c# IE WebBrowser2022-07-24 01:02:41

    [DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] static extern bool PostMessage(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam); [DllImport("user32.dll")] static extern int SendMessage(IntPtr hWnd

  • C# Winform 使用全局快捷键2022-07-12 12:35:02

    作者: 张赐荣 .NET 类库本身没有封装注册全局快捷键的函数,想要实现注册全局热键,就需要使用Win32API。 在WinAPI中,注册和注销全局快捷键分别通过registerhotkey和unregisterhotkey函数实现。 注册快捷键后,还需要重写窗口过程函数。 以下代码封装了全局快捷键注册功能 (在 Winform

  • 关于 uintptr_t和intptr_t 类型2022-07-03 23:00:40

    简介 最近在看代码时,发现了两个之前没见过的数据类型:intptr_t,uintptr_t。这两个数据类型是ISO C99定义的,具体代码在linux平台的/usr/include/stdint.h头文件中。 /* Types for `void *' pointers. */ #if __WORDSIZE == 64 # ifndef __intptr_t_defined typedef long int intptr

  • C# 抓取进程快照 propDump方式2022-06-27 22:04:09

    private static void CreateMiniDump(string processName) { var pl = Process.GetProcessesByName(processName); if (pl.Length == 0) { Console.WriteLine($"找不到进程:{processName}"); ret

  • C# 判断文件是否被占用2022-06-13 16:33:41

    using System.IO; using System.Runtime.InteropServices; namespace DarkBlue.FileOccupied { public sta class FileHlper { [DllImport("kernel32.dll")] public static extern IntPtr _lopen(string lpPathName, int iReadWrite);

  • Bitmap 与ImageSource之间的转换2022-06-12 20:01:38

    public class ImageConverter { [DllImport("gdi32.dll", SetLastError = true)] private static extern bool DeleteObject(IntPtr hObject); /// <summary> /// 从bitmap转换成ImageSource /// </summary&g

  • .net delegate 万能适配2022-05-12 16:04:25

    遇到一个技术点,记一下,.net 有一个 Delegate Marshall.GetDelegateForFunctionPointer(IntPtr ptr, Type t) 用来将内存地址映射为一个 delegate,转为 delegate 后就可以对内存段的二进制代码进行 .net 内的调用了。例如 ptr 是 VirtualAlloc 的地址,t 是具有 IntPtr(IntPtr lpStartA

  • AMSI 浅析及绕过——写得很深入,看来amsi还是静态方式做的,没有做到运行时检测,检测的银弹在哪里呢,语义分析和机器学习吗?2022-05-04 19:07:26

    AMSI 浅析及绕过 0x00 前言 0x01 AMSI浅析 1、什么是AMSI? AMSI(Antimalware Scan Interface),即反恶意软件扫描接口,在windows 10和 windows server 2016上默认安装并启用。顾名思义,他的工作就是扫描、检测和阻止。windows 10和windows server2016中AMSI默认杀软就是Windows D

  • Winform中打开对应窗口标题的窗口2022-04-23 12:31:34

          1 public static class WindowsMessageHelper 2 { 3 4 public const int WM_COPYDATA = 0x004A; 5 6 [DllImport("User32.dll", EntryPoint = "SendMessage")] 7 private static extern int SendMessage

  • C#_动态获取鼠标位置的颜色2022-04-22 15:32:50

        API声明: /// <summary> /// 获取指定窗口的设备场景 /// </summary> /// <param name="hwnd">将获取其设备场景的窗口的句柄。若为0,则要获取整个屏幕的DC</param> /// <returns>指定窗口的设备场景句柄,出错则为0</returns> [DllImport("user32.dll")] public static

  • C#-DWMAPI绘制缩略图到winform窗口 (多窗口图像捕获)2022-04-09 18:00:28

    此文章演示C#如何使用DwmApi来捕获程序的缩略图来映射到winform窗体上。  实现:   1.可随意捕获多个程序的缩略图。   2.并可设置缩略图的大小尺寸。   3.零延迟实时捕获缩略图。   注意点:   使用此接口捕获应用程序的缩略图时,必须保证要捕获的应用程序在任务栏上出现。

  • 穿透 SESSION 0 隔离2022-04-05 22:02:00

    注:这套程序在这里只是作为了解,博主本人并未测试,所有测试均来自文章最底层链接的原文章。 查看目标进程运行的SESSION位置 在实际开发过程中,可以通过Process Explorer 检查服务或程序处于哪个Session,会不会遇到Session 0 隔离问题。可以看到svchost.exe处于SESSION 0。QQ作为用户

  • C#调用大华摄像头2022-04-03 18:04:19

    大华SDK包地址:https://support.dahuatech.com/tools/sdkExploit 效果图:     //32位SDK 大华摄像机打开方法 IntPtr _LoginID = IntPtr.Zero; NET_DEVICEINFO_Ex _DeviceInfo = new NET_DEVICEINFO_Ex(); IntPtr _PlayID = IntPtr.Zero;

  • csharp: Cyotek.GhostScript.Pdf Conversion pdf convert image x642022-03-02 15:32:46

    NativeMethods.cs  x64 using System; using System.Runtime.InteropServices; namespace Cyotek.GhostScript { /// <summary> /// 64位 /// https://github.com/kelter-antunes/Cyotek.GhostScript.x64 64位 /// </summary> internal class

  • WPF 自定义文本框输入法 IME 跟随光标2022-02-26 09:02:35

    本文告诉大家在 WPF 写一个自定义的文本框,如何实现让输入法跟随光标 本文非小白向,本文适合想开发自定义的文本框,从底层开始开发的文本库的伙伴。在开始之前,期望了解了文本库开发的基础知识 本文实现的效果如下 实现 本文的方法参考了 WPF 官方仓库的逻辑,可以在 WPF 仓库的 wpf\sr

  • long 和 intptr_t2022-02-22 09:31:08

    获取当前目录下的所有文件,用 _findfirst 在vs2013下好使,换成2018不行,后来考虑到2018默认是64位的  long-->intptr_t 后ok //文件句柄 //long hFile = 0; intptr_t hFile = 0; //文件信息 struct _finddata_t fileinfo; string p; if ((hF

  • C#隐藏桌面图标2022-01-17 17:34:35

    private void ShowDeskIcon(bool b)//控制桌面图标显隐 { IntPtr desk = FindWindow("ProgMan", null);//获取桌面句柄 IntPtr list_ = FindWindowEx(desk, 0, "SHELLDLL_DefView", null);//获取上级句柄 IntPtr Idesk = FindWindowEx(list_, 0, "Sys

  • 在WPF的程序中,嵌入其他进程的窗体2022-01-16 16:59:12

    我最近遇到了这样一个问题,就是我的WPF程序中,需要用到32位的COM组件。所以我的WPF程序也是要32位的。但是32的程序的逻辑内存最多只有2G,因此,当这个COM组件比较吃内存的时候,程序就会出现内存不够的情况,就会出现异常。因此,我的解决方案是使用winform来调用这个COM组件。然后WPF程序

  • C#中的IntPtr2022-01-11 17:37:21

    1、C#中的IntPtr类型被称之为“平台特定的整数类型”,用于本机资源,例如窗口句柄。 2、资源的大小取决于使用的硬件和操作系统,即此类型的实例在32位硬件和操作系统中将是32位,在64位硬件和操作系统中将是64位;但其大小总是足以包含系统的指针(因此也可以包含资源的名称)。 3、在调用API

  • WinForm C# 获取屏幕真实分辨率2022-01-01 15:02:06

           在上一篇文章(Winform C#截屏实现_学习记录专栏-CSDN博客)中,获取屏幕分辨率采取了折中的方法。然而在笔记本连接外接显示器,并且显示器显示模式扩展的情况下,获取到的屏幕分辨率就有会包含扩展屏,与目标机器的分辨率不符合。 网上继续搜索,才发现微软早提供了API获取的方

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有