1、直接上例子吧:收集系统信息msinfo32时,会有一个弹窗,现在要隐藏该弹窗,首先看没有通过句柄隐藏弹窗的现象

2、收集系统信息导入到一个位置

代码:

Process[] msinfo32process;//创建一个PROCESS类数组
msinfo32process = Process.GetProcesses();//获取当前任务管理器所有运行中程序
foreach (Process proces in msinfo32process)//遍历若存在msinfo21.exe则杀掉
{
if (proces.ProcessName == "msinfo32.exe")
{
proces.Kill();
}
}
//通过调用CMD命令进行系统信息导出为一个文件
Common.CmdExcute("msinfo32 /nfo C:\\tmp\\msinfo32.nfo");

3、下面通过操作句柄进行隐藏收集信息框

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.Threading;
using System.Runtime.InteropServices; namespace test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
Process[] msinfo32process;//创建一个PROCESS类数组
msinfo32process = Process.GetProcesses();//获取当前任务管理器所有运行中程序
foreach (Process proces in msinfo32process)//遍历
{
if (proces.ProcessName == "msinfo32.exe")
{
proces.Kill();
}
}
Thread msinfo32 = new Thread(msinfo);
msinfo32.Start();
}
private static void msinfo()
{
Common.CmdExcute("msinfo32 /nfo C:\\vDesk\\msinfo32.nfo");
} public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); [DllImport("user32")]
private static extern IntPtr FindWindowEx(IntPtr parent, IntPtr childAfter, string className, string windowName); [DllImport("user32.dll")] static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
private static void whatr()
{
bool stop = true; while (stop)
{
//Sometimes System.Windows.Forms.Application.ExecutablePath works for the caption depending on the system you are running under.
IntPtr hWnd = FindWindow(null, "系统信息"); //put your console window caption here
IntPtr hWnd_en = FindWindow(null, "System Information");
if (hWnd != IntPtr.Zero)
{
//Hide the window
IntPtr child = FindWindowEx(hWnd, IntPtr.Zero, "#32770", "系统信息"); ShowWindow(hWnd, 0); // 0 = SW_HIDE if (child != IntPtr.Zero)
{
ShowWindow(child, 0); // 0 = SW_HIDE
//Notice:设置之后退出线程
stop = false;
}
}
else if (hWnd_en != IntPtr.Zero)
{
IntPtr child_en = FindWindowEx(hWnd_en, IntPtr.Zero, "#32770", "System Information");
ShowWindow(hWnd_en, 0); // 0 = SW_HIDE
if (child_en != IntPtr.Zero)
{
ShowWindow(child_en, 0); // 0 = SW_HIDE
//Notice:设置之后退出线程
stop = false;
}
}
Thread.Sleep(50);
}
}
}
}

这样就可以获得句柄进行隐藏收集系统信息的弹窗

C#操作句柄的更多相关文章

  1. 操作句柄Handle(7)

    可以将Handle理解成访问对象的一个“句柄”.垃圾回收时对象可能被移动(对象地址发生改变),通过Handle访问对象可以对使用者屏蔽垃圾回收细节. Handle涉及到的相关类的继承关系如下图所示. ...

  2. VMware View 要求操作句柄的状态错误

    win10系统安装的VMware-viewclient,版本是

  3. (10)odoo控制器操作

    -----------------更新时间11:17 2016-09-18 星期日    完善讲解17:44 2016-02-17 星期三-----------------* 控制器Controlle ...

  4. (05)odoo数据库和业务操作

    以一个例子开头* To-do 向导   # 配置文件       __openerp_.py:         { 'name': 'To-do Tasks Management Assistant' ...

  5. 使用开源库MagicalRecord操作CoreData

      1. 将 MagicalRecord 文件夹拖入到工程文件中,引入 CoreData.frame 框架 2. 在 .pch 文件中引入头文件 CoreData+MagicalRecord.h 注: ...

  6. Python之路----文件操作

    文件操作 1.能调用方法的一定是对象,比如数值.字符串.列表.元组.字典,甚至文件也是对象,Python中一切皆为对象. str1 = 'hello' str2 = 'world' str3 = ' ...

  7. Windows中的句柄

    (一)句柄 在程序设计中,句柄(handle)是一种特殊的智能指针.当一个应用程序要引用其他系统(如数据库.操作系统)所管理的内存块或对象时,就要使用句柄. 句柄与普通指针的区别在于,指针包含的是引用 ...

  8. Swift3.0服务端开发(四) MySQL数据库的连接与操作

    本篇博客我们来聊聊MySQL数据库的连接与操作.如果你本地没有MySQL数据库的话,需要你先安装MySQL数据库.在Mac OS中使用brew包管理器进行MySQL的安装是及其方便的.安装MySQL的 ...

  9. C 标准库基础 IO 操作总结

    其实输入与输出对于不管什么系统的设计都是异常重要的,比如设计 C 接口函数,首先要设计好输入参数.输出参数和返回值,接下来才能开始设计具体的实现过程.C 语言标准库提供的接口功能很有限,不像 Pyth ...

随机推荐

  1. android IPC通信(上)-sharedUserId&&Messenger

    看了一本书,上面有一章解说了IPC(Inter-Process Communication,进程间通信)通信.决定结合曾经的一篇博客android 两个应用之间的通信与调用和自己的理解来好好整理总结一 ...

  2. docker&k8s填坑记

    本篇主要用于记录在实施docker和kubenetes过程中遇到的一个问题和解决办法. 本节部分内容摘自互联网,有些部分为自己在测试环境中遇到到实际问题,后面还会根据实际情况不断分享关于docker/ ...

  3. Kubernetes之网络策略(Network Policy)

    系列目录 概述 Kubernetes要求集群中所有pod,无论是节点内还是跨节点,都可以直接通信,或者说所有pod工作在同一跨节点网络,此网络一般是二层虚拟网络,称为pod网络.在安装引导kubern ...

  4. eclipse下Android工程名称的修改方法

    eclipse下Android工程名称的修改方法 对于已经建立的工程,如果发现原来的工程名不合适,此时若想彻底更改工程名,需要三个步骤: 1.更改工程名 选中工程名,右键-->Refactor- ...

  5. php 获取当前页面url路径

    #测试网址: http://localhost/blog/testurl.php?id=5 //获取域名或主机地址 echo $_SERVER['HTTP_HOST'].""; # ...

  6. 自译Solr in action中文版

    文件夹 Part 1 初识 SOLR 1 Solr 简单介绍 2 開始熟悉 Solr 3 Solr 核心概念 4 配置 Solr 5 建立索引 6 文本分析 Part 2 Solr 核心功能 7 发起 ...

  7. android-async-http框架

    android-async-http 简单介绍:An asynchronous, callback-based Http client for Android built on top of Apac ...

  8. 九度OJ 1114:神奇的口袋 (DFS、DP)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:948 解决:554 题目描述: 有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40.John现在有n个 ...

  9. MFC HTTP(S)请求笔记

    GET示例 #include <afxinet.h> #include <iostream> #include <vector> #ifdef _UNICODE # ...

  10. pdf文件的作成

    Dim Report As New crProgressList Report.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.P ...