在spy+中未找到这样的功能

有个隐藏窗口的进程,相让窗口显示出来,虽然可以找到进程ID,然后再逐步找到主窗口句柄,但又没句柄发各种消息的软件。

计得以前有个窗口精灵之类的,网上找了很多,要么没有此功能,甚至一个小功能都了注册,收费。

得,自己直接整一个,根据进程ID找到进程的主窗口句柄,然后可以根据句柄,可以控制窗体的显示与隐藏。

  1 unit uFrmWin;
2
3 interface
4
5 uses
6 Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
7 System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
8 Vcl.StdCtrls, uWinUtils, Vcl.ExtCtrls;
9
10 type
11 TfrmWin = class(TForm)
12 edtWinHandle: TEdit;
13 lblWinHandle: TLabel;
14 ckbHex: TCheckBox;
15 btnShowWindow: TButton;
16 btnHideWindow: TButton;
17 edtTranHandle: TEdit;
18 btnGetHandleByPID: TButton;
19 edtPID: TEdit;
20 Label1: TLabel;
21 Panel1: TPanel;
22 Panel2: TPanel;
23 btnShowAndFront: TButton;
24 procedure FormShow(Sender: TObject);
25 procedure btnShowWindowClick(Sender: TObject);
26 procedure edtWinHandleChange(Sender: TObject);
27 procedure ckbHexClick(Sender: TObject);
28 procedure btnHideWindowClick(Sender: TObject);
29 procedure btnGetHandleByPIDClick(Sender: TObject);
30 procedure btnShowAndFrontClick(Sender: TObject);
31 private
32 procedure DoTransfor();
33 public
34 { Public declarations }
35 end;
36
37 var
38 frmWin: TfrmWin;
39
40 implementation
41
42 {$R *.dfm}
43
44 procedure TfrmWin.btnHideWindowClick(Sender: TObject);
45 var
46 hHandle: THandle;
47 sHandle: string;
48 begin
49 sHandle := edtTranHandle.Text;
50 hHandle := StrToIntDef(sHandle, 0);
51 ShowWindow(hHandle, SW_HIDE);
52 end;
53
54 procedure TfrmWin.btnShowAndFrontClick(Sender: TObject);
55 var
56 hHandle: THandle;
57 sHandle: string;
58 begin
59 sHandle := edtTranHandle.Text;
60 hHandle := StrToIntDef(sHandle, 0);
61 BringToFrontByHandle(hHandle);
62 end;
63
64 procedure TfrmWin.btnShowWindowClick(Sender: TObject);
65 var
66 hHandle: THandle;
67 sHandle: string;
68 begin
69 sHandle := edtTranHandle.Text;
70 hHandle := StrToIntDef(sHandle, 0);
71 ShowWindow(hHandle, SW_SHOW);
72 end;
73
74 procedure TfrmWin.btnGetHandleByPIDClick(Sender: TObject);
75 var
76 pid: Integer;
77 hHandle:THandle;
78 begin
79 pid := StrToIntDef(edtPID.Text, 0);
80 hHandle:= GetHwndFromProcess(pid);
81 ckbHex.Checked:=False;
82 edtWinHandle.Text:=hHandle.ToString();
83 end;
84
85 procedure TfrmWin.ckbHexClick(Sender: TObject);
86 begin
87 DoTransfor();
88 end;
89
90 procedure TfrmWin.edtWinHandleChange(Sender: TObject);
91 begin
92 DoTransfor();
93 end;
94
95 procedure TfrmWin.DoTransfor;
96 var
97 sHandle: string;
98 begin
99 sHandle := edtWinHandle.Text;
100 if ckbHex.Checked then
101 begin
102 edtTranHandle.Text := StrToIntDef('$' + sHandle, 0).ToString();
103 end
104 else
105 begin
106 edtTranHandle.Text := StrToIntDef(sHandle, 0).ToString();
107 end;
108 end;
109
110 procedure TfrmWin.FormShow(Sender: TObject);
111 begin
112 if edtWinHandle.CanFocus then
113 edtWinHandle.SetFocus;
114 end;
115
116 end.

uWinUtils.pas单元摘要

DEMO程序下载

欢迎微信搜一搜 IT软件部落 关注公众号,你可以了解更详细的内容

欢儿微信扫码关注 IT软件部落 公众号,你可以了解更详细的内容

dephi winspy Demo的更多相关文章

  1. [源码]Dephi溢出demo( Shellcode for XP)

    [源码]Dephi溢出demo( Shellcode for XP) unit Unit1; interface uses Windows, Messages, SysUtils, Variants, ...

  2. 通过一个demo了解Redux

    TodoList小demo 效果展示 项目地址 (单向)数据流 数据流是我们的行为与响应的抽象:使用数据流能帮我们明确了行为对应的响应,这和react的状态可预测的思想是不谋而合的. 常见的数据流框架 ...

  3. 很多人很想知道怎么扫一扫二维码就能打开网站,就能添加联系人,就能链接wifi,今天说下这些格式,明天做个demo

    有些功能部分手机不能使用,网站,通讯录,wifi基本上每个手机都可以使用. 在看之前你可以扫一扫下面几个二维码先看看效果: 1.二维码生成 网址 (URL) 包含网址的 二维码生成 是大家平时最常接触 ...

  4. 在线浏览PDF之PDF.JS (附demo)

    平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html#skill 下载地址:http://mozilla.gith ...

  5. 【微框架】Maven +SpringBoot 集成 阿里大鱼 短信接口详解与Demo

    Maven+springboot+阿里大于短信验证服务 纠结点:Maven库没有sdk,需要解决 Maven打包找不到相关类,需要解决 ps:最近好久没有写点东西了,项目太紧,今天来一篇 一.本文简介 ...

  6. vue双向数据绑定原理探究(附demo)

    昨天被导师叫去研究了一下vue的双向数据绑定原理...本来以为原理的东西都非常高深,没想到vue的双向绑定真的很好理解啊...自己动手写了一个. 传送门 双向绑定的思想 双向数据绑定的思想就是数据层与 ...

  7. Android Studio-—使用OpenCV的配置方法和demo以及开发过程中遇到的问题解决

    前提: 1.安装Android Studio(过程略) 2.官网下载OpenCV for Android 网址:http:opencv.org/downloads.html 我下载的是下图的版本 3. ...

  8. iOS之ProtocolBuffer搭建和示例demo

    这次搭建iOS的ProtocolBuffer编译器和把*.proto源文件编译成*.pbobjc.h 和 *.pbobjc.m文件时,碰到不少问题! 搭建pb编译器到时没有什么问题,只是在把*.pro ...

  9. 钉钉开放平台demo调试异常问题解决:hostname in certificate didn't match

    今天研究钉钉的开放平台,结果一个demo整了半天,这帮助系统写的也很难懂.遇到两个问题: 1.首先是执行demo时报unable to find valid certification path to ...

  10. 无限分级和tree结构数据增删改【提供Demo下载】

    无限分级 很多时候我们不确定等级关系的层级,这个时候就需要用到无限分级了. 说到无限分级,又要扯到递归调用了.(据说频繁递归是很耗性能的),在此我们需要先设计好表机构,用来存储无限分级的数据.当然,以 ...

随机推荐

  1. 使用 SpanMetrics Connector 将 OpenTelemetry 跟踪转换为指标

    原文:https://last9.io/blog/convert-opentelemetry-traces-to-metrics-using-spanconnector/ 如果您已经实施了跟踪但缺乏强 ...

  2. .NET 开源实时监控系统 - WatchDog

    前言 在平时的开发中随着我们系统应用不断地迭代变的复杂,对应用的实时监控变得越来越重要.实时监控不仅可以帮助我们快速定位问题,还能在出现问题时及时采取措施,减少业务中断的时间. 本文将介绍一个名为Wa ...

  3. 6.23 Web日志分析&php&自动化工具

    应急响应的目的:保护阶段.分析.复现.修复.建议 分析出攻击时间,攻击操作,攻击结果,安全修复等给出合理方案: 知识点 熟悉常见web安全攻击技术 熟悉日志启用及存储查看 熟悉日志中记录数据库分类及分 ...

  4. CSS & JS Effect – Show More

    效果 show more 是很常被使用的效果, 因为空间总是不够的丫. 比起 scroll, show more 的体验通常会好一些, 尤其在手机, 它有更好的引导. 实现思路   1. 卡片需要一个 ...

  5. Google sheet

    最近做比较多 data migration 的东西. 当我们开发一个新的系统去替代一个旧系统时,通常就需要做大量的 migration 动作. 有好几个做法 我之前比较常用的的工具是 sql 和 c# ...

  6. request和response请求包中的各项解释

    Request Response

  7. 【赵渝强老师】在Hive中使用Load语句加载数据

    一.Hive中load语句的语法说明 Hive Load语句不会在加载数据的时候做任何转换工作,而是纯粹的把数据文件复制/移动到Hive表对应的地址.语法格式如下: LOAD DATA [LOCAL] ...

  8. 使用MessagePipe实现进程间通信

    1.MessagePipe介绍 可以用于.NET和Unity上面的高性能的内存/分布式消息传递管道.适用于发布/订阅模式.CQRS的中介模式.Prism中的EventAggregator.IPC(进程 ...

  9. 运维管理平台OEM定制集成开发,激发IT价值

    对硬件设备商而言,借助优秀的网管.运维管理平台,可以形成完整的产品解决方案,直接提升产品的形象和适用范围.同时还可以通过网管.运维管理平台,切入到外围的产品及集成领域,并在用户后续的升级改造活动中占据 ...

  10. 全网最适合入门的面向对象编程教程:56 Python字符串与序列化-正则表达式和re模块应用

    全网最适合入门的面向对象编程教程:56 Python 字符串与序列化-正则表达式和 re 模块应用 摘要: Python 的 re 模块提供了强大的正则表达式操作功能,用于在字符串中搜索.匹配.替换等 ...