導航:首頁 > 編程語言 > 獲取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窗口句柄相關的資料

熱點內容
做程序員學什麼 瀏覽:318
pdfeditor教程 瀏覽:878
fortran把文件放入文件夾 瀏覽:709
程序員1年經驗不敢投簡歷 瀏覽:481
如何看電腦的源碼 瀏覽:896
找工作app軟體哪個好 瀏覽:96
信息管理網站源碼 瀏覽:439
小說app哪個好免費 瀏覽:224
域名在線加密 瀏覽:146
軟體編程西安交大 瀏覽:453
是不是串貨的奶粉查不到溯源碼的 瀏覽:825
北京dns伺服器雲主機 瀏覽:221
openldaplinux安裝 瀏覽:23
java取月的最後一天 瀏覽:10
騰訊雲伺服器多久退款 瀏覽:949
微信廣告植入系統源碼 瀏覽:922
一年級語文上冊pdf 瀏覽:315
好久不見app干什麼用的 瀏覽:143
壓縮包解壓碼對方可以更改嗎 瀏覽:256
pdf電子書製作軟體 瀏覽:888