Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
-
juergenkulow
- Beiträge: 188
- Registriert: 22.12.2016 12:49
- Wohnort: :D_üsseldorf-Wersten
Beitrag
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
-
RSBasic
- Admin
- Beiträge: 8022
- Registriert: 05.10.2006 18:55
- Wohnort: Gernsbach
-
Kontaktdaten:
Beitrag
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.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
-
juergenkulow
- Beiträge: 188
- Registriert: 22.12.2016 12:49
- Wohnort: :D_üsseldorf-Wersten
Beitrag
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