주로
[fabric] 현재 활성화된 윈도우의 핸들을 PID를 통해 구하기 본문
반응형
    
    
    
      private static boolean isinitializedHandle = false;
    public static WinDef.HWND hMinecraft;
    public static void inithMinecraft() {
        if(isinitializedHandle)
            return;
        isinitializedHandle = true;
        System.out.println("initialized mincraft handle");
        // 자신의 PID를 얻기
        long pid = ProcessHandle.current().pid();
        // PID로 HWND 얻기
        HWND hwnd = findWindowByPID(pid);
        hMinecraft = hwnd;
        // 여기에 원하는 로직을 추가
    }
    private static HWND findWindowByPID(long pid) {
        final HWND[] hwnd = new HWND[1];
        User32.INSTANCE.EnumWindows((hWnd, arg1) -> {
            // 프로세스 ID를 가져오기
            int processId = getWindowProcessId(hWnd);
            if (processId == pid) {
                hwnd[0] = hWnd;
                return false; // 찾으면 열거를 중지합니다.
            }
            return true; // 계속 열거합니다.
        }, null);
        return hwnd[0];
    }
    // HWND로 프로세스 ID를 얻는 메서드
    private static int getWindowProcessId(HWND hWnd) {
        IntByReference processId = new IntByReference(); // IntByReference 사용
        User32.INSTANCE.GetWindowThreadProcessId(hWnd, processId);
        return processId.getValue(); // 프로세스 ID 반환
    }반응형
    
    
    
  '게임 > 마인크래프트' 카테고리의 다른 글
| [fabric] 클라이언트 측에서 채팅 메시지(로컬) 띄우기 (0) | 2024.10.02 | 
|---|---|
| [fabric] 윈도우 메시지를 통한 키보드/마우스 간단한 제어 예시 (0) | 2024.10.01 | 
| JAVA(fabric) 특정 문자열을 포함한 윈도우 핸들 구하기 (0) | 2024.10.01 | 
| Fabric 키 바인딩의 예시와 함수화 (0) | 2024.09.30 | 
| [명령어] 인챈트 코드 및 설명 (1.20.5 버전 이상) (7) | 2024.07.22 | 
			  Comments