delphi 截取当前活动窗口

delphi 截取当前活动窗口,第1张

截屏为BMP文件

program GetScrnBmp;

uses

Windows, Graphics;

{$R RES}

var

B: TBitmap;

S: string;

begin

B := TBitmapCreate;

BWidth := GetSystemMetrics(SM_CXSCREEN); {ScreenWidth}

BHeight := GetSystemMetrics(SM_CYSCREEN); {ScreenHeight}

BitBlt(BCanvashandle, 0, 0, BWidth, BHeight, GetDc(0), 0, 0, SRCCOPY);

if ParamStr(1) <> '' then

S := ParamStr(1) + 'bmp'

else

S := 'Screenbmp';

bSaveToFile (s);

bFree;

end

以下示例程序实现:

(1)Form2从Form1获取一个字符串;

(2)Form2修改这个字符串后,再将修改后的字符串返回给Form1显示;

实现方法:

(1)在Visual Studio中创建一个“Windows 窗体应用程序”项目

(2)向项目中添加Form2

(3)在Form1上布置一个Label和一个Button

(4)在Form2上布置一个TextBox和一个Button

(5)窗体代码Form1cs

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

using System;

using SystemWindowsForms;

namespace WindowsFormsApplication1

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

label1Text = "你好,世界!";

button1Text = "显示Form2";

}

// 添加一个公共属性 StringValue

public string StringValue

{

get { return label1Text; }

set { label1Text = value; }

}

private void button1_Click(object sender, EventArgs e)

{

// 实例化Form2

// 实例化使用Form2重载的构造函数,详见Form2cs

Form2 f2 = new Form2(this);

f2Show();

}

}

}

(5)窗体代码Form2cs

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

using System;

using SystemWindowsForms;

namespace WindowsFormsApplication1

{

public partial class Form2 : Form

{

// 对Form1实例的引用

Form1 f1;

public Form2()

{

InitializeComponent();

}

// 重载构造函数

// 构造函数参数 f1:对Form1实例引用

public Form2(Form1 f1)

: this()

{

// 建立对Form1实例的引用

thisf1 = f1;

// 通过f1StringValue属性获取Form1上label1显示的内容

textBox1Text = f1StringValue;

button1Text = "关闭";

}

private void button1_Click(object sender, EventArgs e)

{

// 关闭前,利用f1StringValue属性,将textBox1的内容

// 显示在Form1上的label1中

f1StringValue = textBox1Text;

thisClose();

}

}

}

(6)运行

点击Form1上“显示Form2”按钮后

在Form2中,修改textBox1内容

点击Form2上“关闭”按钮后

'VB获得活动窗口标题、位置、大小

'运行后,在form上print当前活动窗口信息

Private Declare Function GetActiveWindow Lib "user32" () As Long

Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long

Private Type RECT

Left As Long

Top As Long

Right As Long

Bottom As Long

End Type

Private Sub Form_Load()

MeAutoRedraw = True

Timer1Interval = 2000

Timer1Enabled = True

End Sub

Sub Timer1_Timer()

Dim p As RECT

Dim h As Long

Dim str1 As String

h = GetActiveWindow '获得活动窗口句柄

str1 = String(255, 0)

GetWindowText h, str1, 255 '获得标题

GetWindowRect h, p '获得窗口位置、大小

Print "窗口标题:" & Left(str1, InStr(str1, Chr(0)) - 1) & " 窗口位置:Left=" & pLeft & " Top=" & pTop & " 大小是:" & pRight - pLeft & "X" & pBottom - pTop

End Sub

我有一个自定义函数,需要获取PB应用程序中当前活动的窗口,并将其实例化,查得了很多资料,没有解决,哪位高手帮一下

window lw_activateWindow

//

//

//

lw_activateWindow=//在这里我需要获取当前活动窗口实例

if IsValid(lw_activateWindow) then

//程序段

end if

我试过用API获取活动窗口,但只能得到一个窗口句柄,如何将句柄实例化,PB中怎么弄不知道

ULong hWnd

hWnd = GetForegroundWindow()

另外补充一下,其实我的这个函数是一个热键调用的,我想让用户按了热键后,查找出当前活动窗口内的数据窗口,然后作相应处理,对PB来说,MDI内的子窗口PB提供了函数GetActiveSheet()可直接得出,而现在的关键是我无法将活动的窗口实例化来处理

对于以上功能,还用没有更好的思路,麻烦大家帮我想一想,谢谢了!

提问者:dytxy - 童生 一级

我也来回答:

回答即可得2分,回答被采纳则获得悬赏

做了个聊天客户端程序,接收消息时,如果最小化了就失去焦点,当打开当前窗口就是获得了当前是活动窗口。如何实现

用了以下代码,获得的是否在前端,貌似不是太管用,有时有效,有时无效。还有更好的办法吗?

<script language="javascript12">

var times;

var isFocus=true;

windowonblur=new Function( "isFocus=false; ");

windowonfocus=new Function( "isFocus=true; ");

var tstime;

电脑在刚使用的时候 界面清晰。很少有广告d窗,但是在使用一段时间后,电脑上会莫名其妙出现各种奇怪的APP,各种广告d窗乱飞,关掉之后几分钟就又出现了其实简单的点击右上角的叉叉,只能治标不治。

那么这些讨厌的广告d窗怎么彻底关掉呢?

win7、win10系统具体做法:

1用鼠标选中电脑桌面的“我的电脑” 或者“此电脑”,单击鼠标右键,会d出一个菜单,选中“管理”,点击,进入新的界面。

大图模式

2出现的新的界面是“计算机管理”,可以看到“计算机管理”下面有个“任务计划程序”,点击,会出现新的内容“内容计划程序库”,右侧会有很多程序的名称。

大图模式

3用鼠标选中程序,单击右键,在d出的菜单上会有一个“禁用”选项,选择禁用就可以了。

将所有的程序都 *** 作一遍就可以了,也就是全部禁用。完成后,电脑重启就OK啦!

大图模式

大图模式

方法一

1、按下组合键打开运行,或者直接在的搜索框内输入并打开,然后在d框内输入并回车打开。

大图模式

2、进入后,点击,取消勾选里面会d出广告的项目,最后再点击就可以了。

大图模式

方法二

1、在电脑d出广告的时候,先不要关闭,按下组合键进入,如果组合键没反应的话,直接在的搜索栏里输入然后按下回车键打开。

大图模式

2、点击,在那一列找到相对应广告d窗的名称,然后选中它,右键选择。

大图模式

3、进入到文件夹之后,对刚才选中的这个文件进行,在它的名称最后加上的后缀名,这样就会将整个广告程序隐藏起来,就不会再d出广告了。

大图模式

方法三

1、点击电脑桌面上的,然后右键选择,就会d出的窗口,点击--d出运行状态。

大图模式

2、里面的每一项程序都会在规定好的时间内,你可以将所有的状态右键选择,也可以只禁用自己不需要的,这样广告d窗就不会被触发。

大图模式

方法四

1、打开桌面上的,桌面上找不到的就在的搜索框里面搜索,点击,然后双击打开属性d框。

大图模式

2、在Internet属性d框内,点击,勾选下面的,然后点击d出阻止程序。

大图模式

3、在阻止程序的d框内勾选,然后在阻止级别那里选择,完成之后就可以点击关闭了,这样就可以阻止广告d窗了

以上就是关于delphi 截取当前活动窗口全部的内容,包括:delphi 截取当前活动窗口、c#winform 怎么获取当前窗口、java 如何获取活动窗口的大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9403938.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存