在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. 最详细STL(二)deque

    deque其实也是数组,也可以动态的添加和减少元素,但是和vector不同的是,deque可以快速的在头部和尾部添加减少元素(vector只能快速的在尾部添加),然而在插入元素的时候因为头部和尾部都可 ...

  2. Centos8下Redis设置Session共享存储

    Redis-Session共享存储 前提条件: 1.安装Redis 2.安装Apache或Nginx 3.安装php 本机环境: php:7.3 Redis:5.0.7 开始部署: 我是分别用Cent ...

  3. ComfyUI 基础教程(三) —— 应用 Controlnet 精准控制图像生成

    一.前言 你是否有见过下面类似这样的图片: 看起来平平无奇,当你站远点看,或者把眼睛眯成一条缝了看,你会发现,这个图中藏有一些特别的元素.这就是利用了 Ai 绘画中的 ControlNet,实现对图片 ...

  4. 音视频基础知识|ANS 噪声抑制原理解析

    ​ 在上一期课程<音视频开发进阶课程|第二讲:回声消除>中,我们接触了音频前处理的概念,还认识了音频前处理的三剑客之一 AEC 回声消除.今天,我们继续来认识三剑客中的第二位:噪声抑制 A ...

  5. JS处理html的编码(encode)与解码(decode)

    一.用浏览器内部转换器实现转换 代码: var HtmlUtil = { // 1.用浏览器内部转换器实现html编码 htmlEncode: function(html) { // 创建一个元素容器 ...

  6. CSS – min(), max(), clamp()

    介绍 它们类似 calc(). 用来通过 formula 输出一个值. 用于 font-size, width, height 之类的, 这些地方. 非常适合用来做 RWD 哦 (特别是 font-s ...

  7. CSP 联训 3

    好吧,又倒数了,就签了个 T2,100 pts. T1 我把相同颜色的存起来,每种颜色找出枚举选哪两个座位不合法的矩阵的左上和右下,如果找到的矩阵左下和右上也相同,则这个矩阵确实不合法,减去,但判断左 ...

  8. android中的render线程是什么?

    在 Android 中,Render 线程(也称为渲染线程)是一个专门用于处理 UI 绘制和动画的线程.它的主要职责是确保用户界面在屏幕上流畅且高效地呈现.这个线程的引入是为了将渲染任务从主线程(UI ...

  9. "山海经“ 讲解----线段树

    "山海经"--线段树 讲解 1.题面: http://cogs.pro/cogs/problem/problem.php?pid=775 2.题目大意及分析: i:大概就是说给了你 ...

  10. 多平台文章同步浏览器插件 – ArticleSync

    ArticleSync - 多平台文章同步插件 ArticleSync 是一个浏览器扩展,帮助用户轻松将文章同步发布到多个社交平台.支持将文章从本地草稿发布到各大平台,如知乎.Bilibili 等.它 ...