如何在Windows中挂钩应用程序和进程启动?
发布时间:2020-09-02 01:33:09 所属栏目:Windows 来源:互联网
导读:我正在尝试编写一个程序,它将挂钩到应用程序启动并捕获命令行.不知道从哪里开始,因为我在 Windows编程中非常环保. 非常感谢任何帮助 谢谢 你没有提到你喜欢的编程语言,所以我将使用C#作为代码片段. 您可以启动进程并捕获/写入其标准IO流. 以下代码段打开一个
我正在尝试编写一个程序,它将挂钩到应用程序启动并捕获命令行.不知道从哪里开始,因为我在
Windows编程中非常环保.
您可以启动进程并捕获/写入其标准IO流. 以下代码段打开一个进程并捕获其StdOut流: using (var process = Process.Start(new ProcessStartInfo(FileName = @"yourExecutablePath",UseShellExecute = false,RedirectStandardOutput = true))) using (var stdout = process.StandardOutput) Console.WriteLine(stdout.ReadToEnd()); 编辑1 看起来你想挂钩像CreateProcess这样的Windows API. 一种方法是编写内核驱动程序并使用诸如SSTD修补之类的挂钩技术.但编写内核驱动程序IMO非常麻烦. 在某些情况下,您可以使用用户级挂钩.有一些图书馆可以帮助您,包括:EasyHook,Deviare和MS Detour. 编辑2 您也可以使用WMI作为 using System.Management; // Run this in another thread and make sure the event watcher gets disposed before exit var start = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace")); start.EventArrived += new EventArrivedEventHandler(delegate (object sender,EventArrivedEventArgs e) { console.WriteLine("Name: {0},Command Line: {1}",e.NewEvent.Properties["ProcessName"].Value,e.NewEvent.Properties["Commandline"].Value); }); start.Start() (编辑:台州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 飞溅屏幕 – 通用窗口10个应用程序的Splash屏幕
- JLink重刷固件(win7/win8/win10亲测可用)
- windows-server-2008 – Windows Server 2008 R2打印服务器
- Windows – Win7 Virtualbox在尝试启动虚拟机时出现此错误:
- Windows系统·添加Python import 的库/模块路径
- 如何在WP7中从字符串中删除重音
- 在WIN32中的“BUTTON”类窗口上显示位图
- EvoPDF库在Windows Azure托管站点上失败
- Windows Python解释器在Ctrl C上退出
- windows – 如何停止’gem’实用程序访问我的主目录?
推荐文章
站长推荐
- batch-file – 用于在Windows 7中更改屏幕分辨率
- windows-server-2008 – IIS可以从GPU核心创建线
- 如何在Windows中挂钩应用程序和进程启动?
- Windows10操作系统如何在局域网设置打印机共享
- tfs – 在测试用例通过或失败时发送电子邮件警报
- Microsoft Dynamics(Navision)vs C#.NET
- EvoPDF库在Windows Azure托管站点上失败
- windows-7 – 在windows7中设置JRE路径的要求,如
- windows-phone-7 – 如何将SystemTray Progressb
- Windows 下安装 Node.js
热点阅读