Compilerkonstante für DPIaware

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
juergenkulow
Beiträge: 188
Registriert: 22.12.2016 12:49
Wohnort: :D_üsseldorf-Wersten

Compilerkonstante für DPIaware

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 
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Compilerkonstante für DPIaware

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.
Bild
Bild
Benutzeravatar
juergenkulow
Beiträge: 188
Registriert: 22.12.2016 12:49
Wohnort: :D_üsseldorf-Wersten

Re: Compilerkonstante für DPIaware

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 
Antworten