`

利用JInvoke点击win窗体按钮

    博客分类:
  • Java
阅读更多

利用第三方包JInvoke,可以方便的调用User32.dll中的api,来实现对windows窗体访问。

 

Tips: 网上例子不太多,可以先搜索User32 api,然后再在类库中找对应方法 :)

 

做了个简单的demo,点击某windows窗体的某个按钮,代码如下:

 

import com.jinvoke.win32.User32;

public class WindowUtil {

    public int clickButton(String windowName, String buttonName) {
    
        // 通过titile查找某windows窗体,并对应返回hwnd
        int winPtr = User32.FindWindow(null, windowName);

        if (winPtr > 0) {
            // 前端显示
            User32.SetForegroundWindow(winPtr);
            
            // 查找button对象,并返回该button句柄
            int buttonPtr = User32.FindWindowEx(winPtr, 0, "Button", buttonName);

            if (buttonPtr > 0) {
                // 将Click事件通过send Message发送给button
                User32.SendMessage(buttonPtr, com.jinvoke.win32.WinConstants.BM_CLICK, 0, 0);

                return 1;
            }
        }

        return 0;
    }

    public static void main(String argv[]) {
	WindowUtil wUtil = new WindowUtil();
        wUtil.clickButton("打开", "取消");
    }

}

 

Hope it can relax your eyes : )

  • 大小: 54.1 KB
分享到:
评论

相关推荐

    C#中防止点击同一按钮多次弹出多个同一窗体办法

    C#,中防止点击同一按钮,多次弹出多个同一窗体,办法 C#,中防止点击同一按钮,多次弹出多个同一窗体,办法 C#,中防止点击同一按钮,多次弹出多个同一窗体,办法 C#,中防止点击同一按钮,多次弹出多个同一窗体,...

    子窗体控制父窗体按钮

    // 这里是处理子窗体按钮点击的逻辑 // ... // 触发事件,通知父窗体 OnParentControlEvent(new EventArgs()); } protected virtual void OnParentControlEvent(EventArgs e) { ParentControlEvent?....

    使用委托在父窗体改变子窗体按钮的状态

    通过这种方式,我们利用委托和事件实现了父窗体与子窗体之间的通信,使得在父窗体中对按钮状态的改变能够即时反映到子窗体中。这种设计模式在多层架构的应用中非常常见,有助于保持代码的模块化和解耦。 总结来说,...

    窗体按钮的去掉

    5. 如果你想保留一种方式让用户能够关闭程序,可以添加一个自定义的关闭按钮,并编写代码来处理它的点击事件,例如: ```vbnet Private Sub CloseButton_Click(sender As Object, e As EventArgs) Handles Close...

    Python 禁止窗体显示最大化按钮及调整窗体大小 Python源码

    PythoPython 禁止窗体显示最大化按钮及调整窗体大小 Python源码Python 禁止窗体显示最大化按钮及调整窗体大小 Python源码n 禁止窗体显示最大化按钮及调整窗体大小 Python源码Python 禁止窗体显示最大化按钮及调整...

    基于VB制作Win7窗体效果的多窗体版.zip

    在VB(Visual Basic)编程环境中,我们可以利用特定的技术和库来实现Windows 7风格的窗体效果,使得自定义的应用程序界面与操作系统更加融合,提供更佳的用户体验。"基于VB制作Win7窗体效果的多窗体版.zip"这个...

    窗体的动态按钮(源码)

    本案例“窗体的动态按钮(源码)”着重展示了如何在C#编程环境下利用WinForms实现动态创建按钮。 首先,我们需要了解WinForms的基本概念。Windows Forms是.NET Framework的一部分,它提供了一种用于构建桌面应用...

    窗体按钮大小自适应

    在Windows应用程序开发中,窗体(Form)是用户与程序交互的主要界面,而按钮(Button)作为最常见的控件之一,通常用于执行特定的操作或触发事件。"窗体按钮大小自适应"这一技术主要关注如何让按钮的尺寸随着窗体...

    WPF 窗体跳转动画 及按钮特效

    标题“WPF 窗体跳转动画及按钮特效”涉及了两个关键概念:窗体间的跳转动画和按钮的交互效果。 首先,让我们详细探讨WPF中的窗体跳转动画。在WPF中,Storyboard是一种强大的工具,它允许我们创建和控制动画,为用户...

    透明窗体透明叠加窗体透明按钮透明输入框

    - 当窗体或控件透明时,事件处理可能变得复杂,因为鼠标点击可能穿透到窗体后面的对象。正确处理 `ClickThrough` 事件是必要的。 - 考虑性能问题,过度使用透明效果可能影响应用的运行效率,尤其是在旧硬件上。 ...

    用vb实现隐藏窗体的关闭按钮

    默认情况下,每个窗体都有一个“关闭”按钮,用户可以点击它来结束应用程序的运行。 要实现隐藏关闭按钮的功能,我们需要使用VB的API(应用程序编程接口)函数。API函数允许VB代码调用操作系统底层的功能,这在处理...

    向窗体动态添加按钮

    5. **动态按钮点击事件**: `newButton_Click`方法处理新按钮的点击事件。在这里,当用户点击动态添加的按钮时,会弹出一个消息框显示文字“这是动态添加按钮的事件”。 动态添加控件在很多情况下非常有用,例如...

    winfrom窗体实现置顶显示,通过按钮把指定窗口置顶显示,窗体不重复显示

    在主窗体上,我们可以添加一个按钮控件(Button),当用户点击此按钮时,实现子窗体的置顶显示。首先,我们需要确保子窗体已经被实例化并且至少已经打开过一次。这样做的目的是防止每次点击按钮都创建一个新的子窗体...

    winform利用窗体属性实现窗体之间传值.rar

    这通常发生在源窗体关闭前,或者在触发某个事件(如按钮点击事件)时。 ```csharp private void btnTransfer_Click(object sender, EventArgs e) { Form2 nextForm = new Form2(); this.MyValue = "要传递的值"; ...

    Delphi窗体按钮分组控件

    标题中的“Delphi窗体按钮分组控件”指的是在Delphi编程环境中创建的一种用户界面元素,它允许将多个按钮组织成一个逻辑组,通常用于提供类似选项卡的效果,使得用户能够通过点击不同的按钮来切换不同的功能区域或...

    三角形圆形窗体按钮的实现

    ### 三角形圆形窗体按钮的实现 在现代用户界面设计中,为了提供更好的用户体验以及美观性,开发者经常需要创建自定义形状的按钮或者窗体。本文将详细讲解如何使用 Delphi 或 C++Builder 实现三角形和圆形按钮,以及...

    在一个窗体中打开另一个窗体

    本话题将深入探讨如何在已有的窗体基础上添加按钮,实现点击该按钮后打开一个新的窗体。 首先,我们需要理解窗体(Form)的概念。在Windows Forms或WPF(Windows Presentation Foundation)这样的.NET框架中,窗体...

    VB窗体中的按钮应用实例

    本实例主要探讨如何在VB窗体中有效利用按钮控件,实现一些基本功能,例如通过按钮触发事件,结合文本框进行文本处理。下面我们将深入讲解相关知识点。 首先,我们了解VB窗体的基本构成。在VB中,窗体(Form)是用户...

    设置Win Form窗体标题栏的文本

    一个Win Form窗体是由多个控件组成的,如按钮、文本框、标签等,而标题栏则是窗体顶部的一行,显示着应用或窗体的标题。在C#中,我们可以使用`System.Windows.Forms.Form`类来创建窗体,并通过它的`Text`属性来设置...

    MDI窗体限制大小禁用最大化最小化按钮

    总的来说,通过理解和利用VB提供的窗体属性,我们可以精确地控制MDI窗体的行为,以满足特定的用户界面需求。禁用大小调整、最大化和最小化按钮是实现这一目标的常见手段,它有助于创建更加专业且可控的应用程序环境...

Global site tag (gtag.js) - Google Analytics