大学时候因为主修C#语言(当然现在做的是javaweb开发),那时在网上学了用C#做外挂的教程,外挂嘛,大家都懂的.这里只是低级的修改内存,不涉及到截获数据包.如果是欺骗服务器,修改服务器数据,那就难的多了.这里给出两个修改内存代码的例子,一个是C#的一个是C++的.C#做东西比较简单,但
新横向移动工具: Twitter上看到新的横移工具,无需创建服务、无需文件落地,远比PsExec来的难以检测,我们针对这一工具进行原理分析、代码分析、优缺点评估以及检测方案: 工具名称:SharpNoPSExec 工具作者:juliourena 下载地址:SharpNoPSExec 本人修改Python简单版本的下载地址:PyNoPSExec
using System; using System.Diagnostics; using System.Runtime.InteropServices; using System.Windows.Forms; public class C { public delegate bool WNDENUMPROC(IntPtr hwnd, uint lParam); [DllImport("user32.dll", SetLastError = true)]
创建一个名叫【Win32】的类,主要是用来存放所有要调用的方法声明: public class Win32 { [DllImport("user32.dll", CharSet = CharSet.Unicode)] public static extern int MessageBox(IntPtr hWnd, String text, String caption, uint type);
一个登录窗体,FormBorderStyle属性设置为None,打开后不能挪动位置,有时候会妨碍使用,有点恶心。网上找了段内容,实现拖动效果: #region 无边框拖动效果,Form被PictureBox覆盖,Form事件不会被触发 [System.Runtime.InteropServices.DllImport("user32.dll")]//拖动无窗
C#中,byte数组在很多数据流中具有普遍的适用,尤其是和其他程序语言、其他架构设备、不同通讯协议等打交道时,字节流能够保证数据的传输安全可靠,可以认为是最接近底层的数据类型了,因此对字节数据的操作就很常见和必要了。常见的场景是字节数组的复制,截断等,常规、最简单粗暴的循环系列
实现效果关键代码[DllImport("kernel32.dll")] public static extern IntPtr _lopen(string lpPathName, int iReadWrite); [DllImport("kernel32.dll")] public static extern bool CloseHandle(IntPtr hObject); public const int OF_READWRITE = 2; public c
很多光盘上的程序,比如电脑迷光盘,开头总有一段动画,用来展现企业品牌和LOGO之用。这个动画是Flash做的,而且嵌入到程序中简直做到无缝融合,因为右键点击它也不会有那特有而烦人的Flash右键菜单。因此将Flash融合到WinForm中能够增强程序的多媒体效果和炫丽的外观。现在我们就来看看在C#
启动程序 String path = @"C:\Program Files (x86)\Babelbird\Babelbird.exe"; //VusionDTI ImAgenGine_MRDP IntPtr hcalc = IntPtr.Zero; //用以存储目标窗口句柄 ProcessStartInfo ps = new ProcessStartInfo(); ps.FileN
[DllImport("kernel32.dll")] public static extern IntPtr _lopen(string lpPathName, int iReadWrite); [DllImport("kernel32.dll")] public static extern bool CloseHandle(IntPtr hObject); public const int OF_R
//从Handle中获取Window对象 private static Window GetWindowFromHwnd(IntPtr hwnd) { var fromHwnd = HwndSource.FromHwnd(hwnd); if (fromHwnd != null) return (Window)fromHwnd.RootVisual; return
摘抄方法 /// <summary> /// 类说明:HTML代码转换为图片的公共类 /// 作者:段江涛 /// 时间:2019/10/17 11:16:38 /// </summary> public class HtmlToPicHelper { private static Bitmap ConverHTML(string htmPath) { string Image
用C#调用Windows API向指定窗口发送 一、调用Windows API。 C#下调用Windows API方法如下: 1、引入命名空间:using System.Runtime.InteropServices; 2、引用需要使用的方法,格式:[DllImport("DLL文件")]方法的声明; [DllImport("user32.dll")]private static extern bool ShowWin
最近因为项目需要,要做一个浮动的小窗口,在不能获取焦点的前提下,窗口中的按钮依然能够使用。 实现这一功能查找到了两种方式: 第一种是浮动窗口只能是一个单独的程序,需要窗口时,先打开程序获取窗口句柄,在进行操作。 第二种是浮动窗口作为主程序的子窗口,将浮动窗口做
开始一个过程- ProcessStartInfo psi = new ProcessStartInfo("G:\SampleWinApp.exe"); psi.UseShellExecute = false; psi.CreateNoWindow = true; Process prcs = Process.Start(psi); 复制代码 使用PostMessage发送WM_CLOSE const int WM_
思路 将fontawesome-webfont.ttf文件添加到项目资源中 将字体自动添加到内存中,无需安装字体,易于部署 自动绘制字体图标图片 IconHelper public sealed class IconHelper { public static Image GetFontImage(IconType type, Color color, int size) { var bmp =
using System; using System.Drawing; using System.Runtime.InteropServices; namespace HardwareCenterCommon { /// <summary> /// Windows API Functions /// </summary> public class Win32API { #region .ctor() //
Windows剪贴板 剪贴板(ClipBoard)是内存中的一块区域,是Windows内置的一个非常有用的工具,通过小小的剪贴板,架起了一座彩桥,使得在各种应用程序之间,传递和共享信息成为可能。然而美中不足的vb.net教程c#教程python基础教程是,剪贴板只能保留一份数据,每当新的数据传入,旧的便会被覆盖
C# 获取后台进程 using System.Diagnostics; //遍历电脑中的进程 Process[] processes = Process.GetProcesses(); for (int i = 0; i < processes.GetLength(0); i++) { //我是要找到我需要的YZT.exe的进程,可以根据ProcessName属性判断 if (processes[i].ProcessName.E
C++接口定义 //回调函数定义 typedef void (CALLBACK *PDEVICE_FIND_CALLBACK_V40)(const SADP_DEVICE_INFO_V40 *lpDeviceInfo, void *pUserData); //接口定义 CSADP_API BOOL CALLBACK SADP_Start_V40(PDEVICE_FIND_CALLBACK_V40 pDeviceFindCallBack, int bInstallNPF =
前段时间在一个闲聊群看一群大佬们讨论窗体如何置顶,像桌面日历那样。找到一篇CPP的文章(https://www.cnblogs.com/findumars/p/5786057.html)。 今天有空,翻译了一下C#版本,成功了,所以写下来,以后说不定能用到。 主要方法就一个 CheckParent 其次要注意的是,要设置窗体在任务栏隐藏。
using System.Windows.Interop; this.SourceInitialized += new EventHandler(MainWindow_SourceInitialized); protected override void OnSourceInitialized(EventArgs e) { base.OnSourceInitialized(e); HwndSo
我们都知道,MessageBox弹出的窗口是模式窗口,模式窗口会自动阻塞父线程的。所以如果有以下代码: MessageBox.Show("内容',"标题"); 则只有关闭了MessageBox的窗口后才会运行下面的代码。而在某些场合下,我们又需要在一定时间内如果在用户还没有关闭窗口时能自动关闭掉窗口
主要的过程,日后操作autocad lt也应该可以用此方法 1 var pros = Process.GetProcessesByName("acad"); 2 if (pros.Length == 0) 3 { 4 MessageBox.Show("没有找到acad进程,请检查后再运行本程序!"); 5 return; 6
大小端交换 {$IF RTLVersion<25} IntPtr = Integer; {$IFEND IntPtr} function swap16(const v): Word; begin // FF, EE : EE->1, FF->2 PByte(@result)^ := PByte(IntPtr(@v) + 1)^; PByte(IntPtr(@result) + 1)^ := PByte(@v)^; end; function swap3