Seite 1 von 1
Compilerkonstante für DPIaware
Verfasst: 04.01.2019 16:38
von juergenkulow
Hallo,
mit welcher Compilerkonstanten frage ich die Compileroption DPI-Unterstützung für das Executable ab?
Code: Alles auswählen
;PB 5.70 Windows
;#PB_Compiler_DPIaware=0
;#PB_Compiler_DPIaware=1
CompilerIf 0=#PB_Compiler_DPIaware
CompilerError "Compiler Option DPI kompatibles EXE erstellen einstellen"
CompilerEndIf
Re: Compilerkonstante für DPIaware
Verfasst: 04.01.2019 16:49
von RSBasic
Es gibt anscheinend noch keine Konstante dafür. Bist du im englischen Forum registriert? Wenn ja, dann kannst du dort einen Wunsch-Thread erstellen.
Re: Compilerkonstante für DPIaware
Verfasst: 22.02.2019 09:18
von juergenkulow
Code: Alles auswählen
; Workaround Laufzeitabfrage PB_Compiler_DPIAware
CompilerIf #PB_Compiler_OS=#PB_OS_Windows
CompilerIf #PB_Compiler_Version>=570
Define DPIFlag.l
EnableASM
MOV eax,dword [PB_Compiler_DPIAware] ; _PB_DataSection: pb_public PB_Compiler_DPIAware dd 0 oder 1
MOV DPIFlag,eax ; Schreibe eax Register in Variable DPIFlag.
If 0=DPIFlag
MessageRequester("FATAL","Compiler Option DPIAware wurde nicht gesetzt.")
End
EndIf
CompilerElse
CompilerError "PureBasic 5.70 oder höhere Version wird benötigt."
CompilerEndIf
CompilerEndIf
CompilerIf #PB_Compiler_IsIncludeFile=#False
ExamineDesktops()
Fenster=OpenWindow(#PB_Any , 0, 0, DesktopWidth(0)-20, DesktopHeight(0)-60, "Maus nicht im Fenster", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_Tool)
Repeat
Event = WaitWindowEvent(16)
Select Event
Case #WM_MOUSEMOVE
SetWindowTitle(Fenster,"Mausposition:"+ Str(WindowMouseX(Fenster)) + "," + Str(WindowMouseY(Fenster)))
EndSelect
Until Event = #PB_Event_CloseWindow
CompilerEndIf