导航:首页 > 编程语言 > 获取java窗口句柄

获取java窗口句柄

发布时间:2022-12-06 17:56:25

java 调用window API 获取窗口句柄 并发消息 有人会吗 谢谢

使用JNI调用WIN32
API
,先得到窗口句柄,再得到窗口的RECT
先WindowFromPoint(point);
再GetWindowRect(hwnd,
&rect);
返回的rect,就是窗口的left/top/width/height
这个不麻烦、也不复杂,很简单的JNI。

⑵ java能获得窗口句柄吗

JFrame jf = new JFrame("窗口句柄");
这个 jf 对象就是 你所说的窗口句柄,因为java把指针屏蔽了,所以没有什么值地址的东西,如果你 要像C里面哪里传地址的话
java就这样
JFrame jf1 = new JFrame("窗口句柄");
JFrame jf2 = jf1;
这个jf2 就是 jf1的引用,你改变jf2就改变了jf1
同样的 函数里面返回时,只要你不再new一个,
比如
JFrame jf1 = new JFrame("窗口句柄");
public JFrame getJFrameHander(){
return jf1;
}

你在另外的代码里调用这个函数
比如
{
JFrame jf2 = getJFrameHander();
}
这个jf2就拥有了 jf1的引用,应该就是你所说的句柄
不知道我说的是不是你想知道的那样

⑶ 请问在java中怎么使用jna 获取说有的窗口句柄

import com.sun.jna.platform.win32.User32;
import com.sun.jna.platform.win32.WinDef.HWND;
public class Demo1 {

public static void main(String[] args) {
name();
}
//窗体句柄的截获
public static void name() {
// HWND hwnd = User32.INSTANCE.FindWindow(null, "打印");
String zh="打印";
HWND hwndDialog = User32.INSTANCE.FindWindow(null,zh);
if(hwndDialog==null) {
System.err.println("没有找到窗体");
}else {
System.err.println("找到窗体"+hwndDialog);
//HWND root, String className, long timeout, TimeUnit unit,String caption
// List<HWND> hwndButton= Win32Util.findHandleByClassNameJKSD(hwndDialog,"Button", 10, TimeUnit.SECONDS,"打印");
// for (HWND hwnd : hwndButton) {
// System.err.println(hwnd);
// }

⑷ 如何获得Java编写的程序的控件句柄

windows下获取当前进程的话可以用dos命令tasklist

Runtime r=Runtime.getRuntime();
Process p=r.exec("cmd /C tasklist");
BufferedReader reader=new BufferedReader(new InputStreamReader(p.getInputStream(),"gbk"));//windows的默认系统中文编码是gbk所以从cmd控制台的信息已gbk来解码
String line=null;
while((line=reader.readLine())!=null)
System.out.println(line);

⑸ JAVAFX怎么获取窗口句柄

1 内部匿名类和Lambda表达式
在之前的例子上对
button.setOnAction(this);

进行更改

button.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent event){
System.out.println("I am an annonymous inner class");
}
});

此时点击按钮调用的时间就是我们后来修改的,不用去检验每个按钮的名字,直接在生成对象之后对象的方法上调用内部类,使得事件发生。"Click me"。
但是后来会出现一个问题。按照上一次的想法我们有很多个按钮的时候会写出if条件结构,然后还要去对应代码中的对象,但是都使用内部匿名类也不方便。
甲骨文公司在Java 8中开始加入了Lambda表达式,此时将这个语句改成如下:
button.setOnAction(e-> System.out.println("heyyyyy, I am Lambda"));

此时控制台对我们点击了按钮进行回应:heyyyyy, I am Lambda,Java自动帮我们处理这个事件。同时也可以改成
button.setOnAction(e->{
System.out.println("heyyyyy, I am Lambda1");

⑹ Java如何获取窗口的句柄,得到句柄后如何操作这个句柄的窗口(比如透明窗口、设置窗口大小等)

使用 JNA, 或JNI技术 + WIN32 API,可以做到,过程有些复杂

~

⑺ 请教JAVA中用JNA获得窗口句柄后,如何捕获该窗口是否弹出了窗口(类似MessageBox)

楼主,是想得到窗口的句柄吗,可以使用JNA

参考 WIN32 API

typedef struct
{
HWND hWnd;
DWORD dwPid;
}WNDINFO;

BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam)
{
WNDINFO* pInfo = (WNDINFO*)lParam;
DWORD dwProcessId = 0;
GetWindowThreadProcessId(hWnd, &dwProcessId);

if(dwProcessId == pInfo->dwPid)
{
pInfo->hWnd = hWnd;
return FALSE;
}
return TRUE;
}

HWND GetHwndByProcessId(DWORD dwProcessId)
{
WNDINFO info = {0};
info.hWnd = NULL;
info.dwPid = dwProcessId;
EnumWindows(EnumWindowsProc, (LPARAM)&info);
return info.hWnd;
}

阅读全文

与获取java窗口句柄相关的资料

热点内容
俄罗斯圣诞小姐姐入眠解压声音 浏览:452
手机分身加密有什么用 浏览:261
程序员怎么跟男朋友说我爱你 浏览:309
单片机频率变化 浏览:428
哪个app可以看赌神 浏览:466
rstudiopython 浏览:127
团队如何开发服务器 浏览:440
php选择数据库的函数 浏览:772
dhcp服务器新增地址 浏览:930
程序员跑三个月外卖 浏览:941
linux配置tomcat的jdk路径 浏览:363
液体压缩公式 浏览:777
php开发后台管理系统 浏览:360
python二分查找递归 浏览:447
微信如何发视频不压缩 浏览:902
河北2021美术高考综合分算法 浏览:606
如何为电脑文件夹加密 浏览:835
电脑自启动应用命令 浏览:690
php判断一个文件是否存在 浏览:829
php导出xml文件 浏览:904