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

熱點內容
手機文件圖片怎麼解壓 瀏覽:655
分布式系統設計pdf 瀏覽:181
中軸線趨勢指標源碼 瀏覽:721
labview源碼代碼 瀏覽:61
15匹谷輪壓縮機圖片 瀏覽:818
bsp分割演算法 瀏覽:22
高手選股公式源碼 瀏覽:682
脆皮軟心球解壓視頻十分鍾 瀏覽:404
如何關閉蘋果app同步充值 瀏覽:766
視頻壓縮發送微信 瀏覽:856
程序員段子大全圖片 瀏覽:760
javaudp心跳 瀏覽:429
阿里賣家app如何分配詢盤 瀏覽:828
如何拔打中國移動人工伺服器 瀏覽:505
傳奇歸來為什麼連不上伺服器 瀏覽:555
壓縮機潤滑油在哪個位置工作 瀏覽:141
張翰解壓減幾 瀏覽:775
你好法語1教師用書pdf 瀏覽:486
手機解壓縮後文件在哪 瀏覽:472
linux內核框架 瀏覽:720