AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Administrator Manifest und PNG Images .....?
Thema durchsuchen
Ansicht
Themen-Optionen

Administrator Manifest und PNG Images .....?

Ein Thema von creehawk · begonnen am 15. Jan 2021 · letzter Beitrag vom 16. Jan 2021
Antwort Antwort
creehawk

Registriert seit: 1. Jul 2013
Ort: Hamburg
241 Beiträge
 
Delphi 10.4 Sydney
 
#1

Administrator Manifest und PNG Images .....?

  Alt 15. Jan 2021, 10:42
Moin Moin.

Ich verwende folgende Datei als adm.res die entsprechend eingebunden ist in meinem Programm.

Delphi-Quellcode:
<?xml version="1.0" encoding="utf-8"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
Insofern nichts Besonderes, ich verwende diese .res auch in mehreren anderen Programmen. Andere Manifestdateien benutze ich nicht.

Nun ist es aber so das dieses Manifest in meinem aktuellen Programm die PNG-Grafiken der Listviews zerlegt, die über eine Imagecollection dort eingebunden werden. Zerlegt heißt: die Transparenz ist weg. Dies geschieht in der Debug Umgebung, aber auch ausserhalb wenn die IDE nicht läuft. Im übrigen funktioniert alles wie vorgesehen.
Aber : Sobald ich die .res auskommentiere ist alles wieder in Ordnung.
Verwende ich andere Möglichkeiten, zum Beispiel die Prüfung ob der aktuelle Anwender Admin Rechte hat stürzt das Programm sofort ab.

Nach allerlei Forschungsarbeit ist das einzige Delphi Element das ich in diesem Programm verwende - und in den anderen Programmen die dieses Manifest benutzen nicht - die relativ neuen TImageCollection und TVirtualImageList.

Tja. Vorschläge?

creehawk
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Administrator Manifest und PNG Images .....?

  Alt 15. Jan 2021, 10:59
Das sieht ja ein bisschen wenig aus.
Wenn man bspw. ein neues VCL-Projekt in Delphi Tokyo erzeugt und über die Projektoptionen -> Application das Manifest File auf "Auto Generate" stellt und "Enable Runtime Themes" und "Enable High-DPI" aktiviert und zusätzlich bei Execution Level auf "Require Administrator" stellt, dann wird folgendes Manifest als Resource in die EXE eingebaut:

Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
  <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
      <dpiAware>True/PM</dpiAware>
    </asmv3:windowsSettings>
  </asmv3:application>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
        type="win32"
        name="Microsoft.Windows.Common-Controls"
        version="6.0.0.0"
        publicKeyToken="6595b64144ccf1df"
        language="*"
        processorArchitecture="*"/>
    </dependentAssembly>
  </dependency>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
          level="requireAdministrator"
          uiAccess="false"
        />
        </requestedPrivileges>
    </security>
  </trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
   <application>
      <!--The ID below indicates app support for Windows Vista -->
      <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
      <!--The ID below indicates app support for Windows 7 -->
      <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
      <!--The ID below indicates app support for Windows 8 -->
      <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
      <!--The ID below indicates app support for Windows 8.1 -->
      <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
      <!--The ID below indicates app support for Windows 10 -->
      <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>         
   </application>
</compatibility>
</assembly>
Ich vermute mal, dein Problem sind die fehlenden Runtime Themes, also alles was innerhalb des XML-Nodes <dependency> liegt.
Vermutlich können die alten Win-Controls keine Transparenz?!
  Mit Zitat antworten Zitat
creehawk

Registriert seit: 1. Jul 2013
Ort: Hamburg
241 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Administrator Manifest und PNG Images .....?

  Alt 15. Jan 2021, 11:40
Okay.

Da ich bisher keinerlei Probleme mit dem zugegeben alten Manifest hatte habe ich es halt benutzt. Das kann man ja ändern wie ich sehe. Ich probier das mal aus. Und das mit den WIN32 Controls kann schon sein. Denn die neben den intransparenten PNG's waren auch die TLabel Elemente nicht mehr Transparent.....

Wird getestet.

Vielen Dank erstmal.

creehawk
  Mit Zitat antworten Zitat
creehawk

Registriert seit: 1. Jul 2013
Ort: Hamburg
241 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Administrator Manifest und PNG Images .....?

  Alt 16. Jan 2021, 09:16
Alles klar.

So funktioniert es jetzt. Und ich gebe offiziell zu das ich diese Möglichkeit der Manifest Einbindung NICHT kannte. Habe ich immer schlicht übersehen.

In tiefer Demut.

creehawk
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz