在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. 2024年智能革命:HarmonyOS NEXT与盘古大模型5.0的颠覆性融合

    引言 2024年,这一年注定在全球智能设备市场的历史上写下浓墨重彩的一笔.作为全球科技巨头,华为再次以其前瞻性的布局,推动了技术与应用的深度融合.在这个充满变革的时代,华为通过不断扩展的鸿蒙生态系统, ...

  2. MyBatis分页实现

    目录 分页实现 limit实现分页 RowBounds分页 分页实现 limit实现分页 为什么需要分页? 在学习mybatis等持久层框架的时候,会经常对数据进行增删改查操作,使用最多的是对数据库进 ...

  3. webpack高版本抽离css样式报错[已解决]

    全局安装的webpack版本是5.51.1,webpack-cli是4.9的版本; 本来想用 extract-text-webpack-plugin 的,但是报错了,查了一下文档 发现,已经不支持新版 ...

  4. Go runtime 调度器精讲(一):Go 程序初始化

    原创文章,欢迎转载,转载请注明出处,谢谢. 0. 前言 本系列将介绍 Go runtime 调度器.要学好 Go 语言,runtime 运行时是绕不过去的,它相当于一层"操作系统" ...

  5. 小tips:tomcat下JSP页面引用css、js等资源路径404问题

    在JSP页面头部添加如下代码: <% String path = request.getContextPath(); String basePath = request.getScheme() ...

  6. CSIG青年科学家会议圆满举行,合合信息打造智能文档处理融合研究新范式

          近期,第十九届中国图象图形学学会青年科学家会议(简称"会议")在广州召开.会议由中国图象图形学学会(CSIG)主办,琶洲实验室.华南理工大学.中山大学.中国图象图形学学 ...

  7. SQL Server Aggregate Functions

    SUM 如果 row count = 0 返回的是 NULL 而不是 0 哦, 如果要 0 可以使用 ISNULL 来处理 如果其中一些 row 是 NULL, 那无所谓, 它只会 SUM 数字出来 ...

  8. C语言数据类型、变量的输入和输出、进制转换

    scanf标准函数可以从键盘得到数字并记录到存储区里,为了使用这个标准函数需要包含stdio.h这个头文件 在scanf函数调用语句里应该使用存储区的地址表示存储区:双引号里使用占位符表示存储区的类型 ...

  9. 【赵渝强老师】使用kubeadmin部署K8s集群

    首先,我们来看一下整体的架构. K8s的部署方式: yum方式部署 二进制包:手动使用tar包来部署 minikube:单机版,用于开发测试. kubeadm:可以把kubeadmin看成一个部署工具 ...

  10. Failed to connect to github.com port 443: Connection refused问题解决

    解决办法: 1.找到github的ip地址:查找链接 2.找到本地的hosts文件.我的hosts文件路劲为:C:\Windows\System32\drivers\etc 3.在hosts文件最后添 ...