`
wenzongliang
  • 浏览: 461538 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

jni 获得java窗口句柄

 
阅读更多

我们知道C++的每个窗体都对应着一个句柄HWND,通过这个句柄我们可以对这个窗口以及它的资源进行各种操作,比如让它前端显示等。那么操作系统给Java编写的窗体(Frame或者JFrame的对象或者子类对象)有没有分配这个唯一的HWND呢。需要使用库文件Java\jdk1.6.0_24\lib\jawt.lib

#include<windows.h> 
#include"jni.h"
#include"jawt_md.h"
#include"jni_md.h"
HWND GetWndHandle(JNIEnv *env, jobject window)
{
	HWND hwnd = NULL;

    JAWT_DrawingSurface *ds;
    JAWT_DrawingSurfaceInfo *dsi;
    JAWT_Win32DrawingSurfaceInfo *win;

    JAWT awt;
    awt.version = JAWT_VERSION_1_3;

    jboolean result = JAWT_GetAWT(env, &awt);

    if(result == JNI_TRUE)
    {
        ds = awt.GetDrawingSurface(env, window);
        jint lock = ds -> Lock(ds);
        if(lock != JAWT_LOCK_ERROR)
        {
            dsi = ds -> GetDrawingSurfaceInfo(ds);
            win = (JAWT_Win32DrawingSurfaceInfo *) dsi -> platformInfo;
          
            hwnd = win -> hwnd;

            ds -> FreeDrawingSurfaceInfo(dsi);
            ds -> Unlock(ds);
            awt.FreeDrawingSurface(ds);
        }
    }

    return hwnd;	
}

我的话费充值店-各种面额

电信100元仅售98.60 
联通100仅售99.00
移动100仅售99.30

分享到:
评论

相关推荐

    jni 获得java窗口句柄的C语言源代码

    ### JNI 获取 Java 窗口句柄的 C 语言源代码解析 #### 一、引言 JNI(Java Native Interface)是一种允许Java代码调用本地应用程序接口(Native Application Programming Interfaces,如 C 或 C++ 代码)的方法。...

    Java实现获取窗口句柄并操作窗口jna-4.4.0

    在"Java实现获取窗口句柄并操作窗口 JNA"的场景中,窗口句柄是操作系统用来标识和管理窗口的一个标识符。在Windows系统中,窗口句柄通常被称为HWND。通过窗口句柄,我们可以执行诸如移动、最大化、最小化、关闭等...

    Java实现获取窗口句柄.zip

    在Java编程环境中,获取窗口句柄...总的来说,Java实现获取窗口句柄涉及了Java的跨平台特性、JNI、操作系统API以及可能的第三方库。开发者需要根据具体需求和环境选择合适的方法,同时要注意安全性和兼容性问题。

    Java调用Win32获取窗口句柄JNative-1.3.2

    总结来说,Java调用Win32获取窗口句柄JNative-1.3.2是一种使用JNI技术来实现Java与Win32 API交互的方法。通过JNative库,开发者可以轻松地在Java应用程序中查找并操作特定的Windows窗口,增强了Java应用程序的功能和...

    java获取窗口句柄方法的JNI封装

    之前在做海康摄像头动态库的JNI封装中遇到了窗口句柄无法获得的问题,着实费了点功夫,现将封装好的动态库以及一个演示程序分享给大家,希望能帮大家省下点时间!!如果希望自己动手解决问题的同志可以自己上网查询...

    使用JNA获取窗口句柄,并发送消息

    总的来说,JNA提供了强大且灵活的机制,使得Java开发者可以方便地访问操作系统级别的功能,如获取窗口句柄和发送消息。同时,结合其他技术如Applet,可以实现CS架构下的SSO,提升用户体验。然而,随着技术的发展,...

    取焦点窗口句柄2.rar

    其他语言如Python(使用pywin32库)、Java(通过JNA或JNI)等也能实现类似功能。 9. **API Hooking**:在某些高级应用场景中,可能需要通过API Hooking技术来拦截并修改系统对窗口句柄的操作,比如监控所有获取焦点...

    java调用activex控件

    在C++端,我们使用了Windows API来创建和操作ActiveX控件,同时通过JNI调用Java方法,如获取窗口句柄等。这种双端编程的方式,实现了Java应用对ActiveX控件的间接控制。 #### 结论 通过上述分析,我们可以看出,...

    java_jna包

    描述中的“java调取窗口句柄”是指Java程序通过JNA来访问和操作操作系统级别的窗口对象,例如在Windows系统中获取或操作窗口的句柄(HWND)。JNA提供了一种方式,使得Java程序能够执行通常只能通过C/C++等本地语言...

    使用jnative隐藏显示windows的任务栏

    标题“使用jnative隐藏显示windows的任务栏”涉及的是在Java程序中通过JNI(Java Native Interface)技术调用本地操作系统API,以实现对Windows任务栏的控制。这篇博文可能讲解了如何利用jnative库来实现这一功能。...

    一、JAVA调用海康威视SDK实现摄像头预览

    在JAVA中调用SDK,我们首先需要引入必要的库文件,这通常涉及到JNA(Java Native Access)或者JNI(Java Native Interface)技术。JNA允许JAVA程序直接调用C/C++级别的函数,而JNI则需要编写C/C++的本地方法库,然后...

    Java调用动态库最简便方法.pdf

    这个方法接收四个参数:父窗口的句柄、消息文本、标题文本和消息框类型。最终,该方法调用本地 MessageBoxA 函数,并显示消息框。 文档还描述了如何在Java中处理来自C/C++的复杂数据结构。这里通过使用...

    解决Java 和 C++ 程序之间通讯的方法(有图例,含源码)

    本文将探讨如何使用内存映射文件(Memory Mapped Files)和Java Native Interface(JNI)来解决这个问题。这种方法高效且灵活,尽管使用JNI会使代码不再纯Java,但在特定场景下是必要的。 内存映射文件是一种操作...

    Thinking in Java 中文第四版+习题答案

    13.16.3 用Java 1.1 AWT制作窗口和程序片 13.16.4 再探早期示例 13.16.5 动态绑定事件 13.16.6 将商业逻辑与UI逻辑区分开 13.16.7 推荐编码方法 13.17.1 桌面颜色 13.17.2 打印 13.17.3 剪贴板 13.18 可视编程和 ...

    java 编程入门思考

    13.16.3 用Java 1.1 AWT制作窗口和程序片 13.16.4 再探早期示例 13.16.5 动态绑定事件 13.16.6 将商业逻辑与UI逻辑区分开 13.16.7 推荐编码方法 13.17 Java 1.1 UI API 13.17.1 桌面颜色 13.17.2 打印 13.17.3 剪贴...

    Java初学者入门教学

    13.16.3 用Java 1.1 AWT制作窗口和程序片 13.16.4 再探早期示例 13.16.5 动态绑定事件 13.16.6 将商业逻辑与UI逻辑区分开 13.16.7 推荐编码方法 13.17 Java 1.1 UI API 13.17.1 桌面颜色 13.17.2 打印 13.17.3 剪贴...

    java联想(中文)

    13.16.3 用Java 1.1 AWT制作窗口和程序片 13.16.4 再探早期示例 13.16.5 动态绑定事件 13.16.6 将商业逻辑与UI逻辑区分开 13.16.7 推荐编码方法 13.17 Java 1.1 UI API 13.17.1 桌面颜色 13.17.2 打印 13.17.3 剪贴...

    让其他程序在自己的窗体上运行成为子窗体

    - **Java**:通过Java的JNI(Java Native Interface)或JNA(Java Native Access)库可以调用Windows API。 5. **注意事项**: - **权限问题**:运行其他程序可能需要相应的权限,特别是当程序需要管理员权限时。...

    jna 实例代码

    **JNA(Java Native Access)** 是Java平台上的一个开源库,它允许Java代码与本地操作系统API进行交互,而无需编写JNI(Java Native Interface)代码。JNA提供了一种更简单、更直观的方式来调用C库和其他本地代码,...

    JAVA_Thinking in Java

    13.16.3 用Java 1.1 AWT制作窗口和程序片 13.16.4 再探早期示例 13.16.5 动态绑定事件 13.16.6 将商业逻辑与UI逻辑区分开 13.16.7 推荐编码方法 13.17 Java 1.1 UI API 13.17.1 桌面颜色 13.17.2 打印 13.17.3 剪贴...

Global site tag (gtag.js) - Google Analytics