Windows-Miniaturvorschau mit JNA (Java)
Frage
W32API.HWND targetHwnd = User32.INSTANCE.FindWindow("SunAwtFrame", "Frame")
W32API.HWND sourceHwnd = User32.INSTANCE.FindWindow("triuiScreen", "EVE")
W32API.HANDLE thumbnailH = new W32API.HANDLE()
NativeLibrary dwm = NativeLibrary.getInstance("dwmapi")
dwm.getFunction('DwmRegisterThumbnail').invoke(targetHwnd, sourceHwnd, thumbnailH)
gibt mir
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x70f34bee, pid=7208, tid=7364
#
# JRE version: 6.0_18-b07
# Java VM: Java HotSpot(TM) Client VM (16.0-b13 mixed mode, sharing windows-x86 )
# Problematic frame:
# C [DWMAPI.DLL+0x4bee]
Ich habe ein Gefühl, das ich es völlig falsch mache, aber in der Dokumentation zu graben habe mich nicht weiter.
Lösung
Die 3. param ist ein „out“ Parameter und Bedürfnisse ein Zeiger auf den Griff sein, nicht der Griff selbst. Also, so etwas wie
dwm.getFunction("DwmRegisterThumbnail")
.invoke(targetHwnd, sourceHwnd, new PointerByReference(thumbnailH))
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow