在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. CANopen学习笔记(三)NMT

    NMT NMT主要用来管理和控制各个节点的状态,具体协议可以分为以下四类: NMT protocol Node guard protocol Heartbeat protocol Bootup pro ...

  2. 【Python】之Mac使用图片识别pytesseract方法报错

    一.前提: python中使用pytesseract图片识别,报错误: pytesseract.pytesseract.TesseractNotFoundError: tesseract is not ...

  3. 【YashanDB知识库】数据变化率超过阈值统计信息失效

    [问题分类]性能优化 [关键字]统计信息 [问题描述] SQL --创建表结构 drop table t1; create table t1 (id int,name varchar2(200)); ...

  4. 13 Python面向对象编程:装饰器

    本篇是 Python 系列教程第 13 篇,更多内容敬请访问我的 Python 合集 Python 装饰器是一种强大的工具,用于修改或增强函数或方法的行为,而无需更改其源代码.装饰器本质上是一个接收函 ...

  5. 第二章:智能Agent

    第二章:智能Agent 本章讨论Agent的本质,Agent是否完美,环境的多样性,及由此带来的各种Agent分类. 1. Agnet和环境 Agent通过传感器感知环境并通过执行器对所处环境产生影响 ...

  6. Serilog文档翻译系列(一) - 入门指南

    保持优质文档是 Serilog 的优先事项.如果你发现文档中有缺失或不准确的内容,或者希望通过添加主题或教程来扩展 wiki,请通过问题追踪系统告知我们. 为什么选择Serilog? 与许多其他 .N ...

  7. Mongodb入门3

    company数据库下面heros集合里的数据: { "_id" : ObjectId("6100c897d0c9f4158c2b0c9b"), "n ...

  8. SEO – Schema and JSON-LD

    大纲介绍 Schema 是 Google, Microsoft, Yahoo 联合成立的, 目的是统一网页的表示方式, 这样搜素引擎会比较方便显示内容. 它虽然不算那种 w3c 独立的组织. 但其它的 ...

  9. 树状数组 java模板(纯代码)

    public class TrieNums { int n; /*Nums start from 0*/ int[] storage; /*TrieNums index start from 1*/ ...

  10. 2.2.2 PyTorch 2.0 GPU NVIDIA运行库的安装 ——CUDA+cuDNN安装教程

    参考文章: https://blog.csdn.net/mbdong/article/details/121769951 CUDA download: https://developer.nvidia ...