Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   XE2 Form bleibt schwarz nach UAC Abfrage (https://www.delphipraxis.net/180210-xe2-form-bleibt-schwarz-nach-uac-abfrage.html)

FatPap 30. Apr 2014 16:01


XE2 Form bleibt schwarz nach UAC Abfrage
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo.

Ich entwickle gerade eine Software mit Delphi XE2. Meine Applikation benötigt Administratorrechte und ich habe deshalb eine manifest Datei eingebunden. Beim starten der EXE dunkelt sich der Bildschirm ab "Secure desktop mode" und der Benutzer wird abgefragt ob er zulassen möchte dass durch dieses Programm Änderungen durchgeführt werden. Der Benutzer klickt auf Ja und die Anwendung startet.

Nun wird die Anwendung minimiert, man startet sie ein weiteres mal (warum auch immer). Die Abfrage kommt wieder und man klickt auf "NEIN" oder "JA"

Wenn man jetzt die Anwendung wiederherstellt ist das ganze Fenster schwarz bis auf den Rahmen.
Ich habe bereits herausgefunden dass man mit "Form1.Recreate" alles wieder schön sauber hinbekommt. Nur wann auslösen? Bzw. muss es doch eine andere saubere Lösung für diese Problem geben?

Je nach Anzahl der Komponenten auf der Form lässt sich das Problem auch dadurch lösen indem man ein weiteres mal minimiert und wiederherstellt. Das funktioniert ziemlich gut bei einer leeren Form, aber nicht (nie) bei meiner Anwendung mit mehr als 200 Controls.

Ich werde wohl irgendwie den "Form1.Onactivate" event verwenden um "Form1.Recreate" auszulösen, nur dann funktioniert das wiederherstellen teilweise nicht mehr und verhält sich sehr komisch.

Anhang 41115

Projekt:
Anhang 41116

hathor 30. Apr 2014 18:38

AW: XE2 Form bleibt schwarz nach UAC Abfrage
 
Liste der Anhänge anzeigen (Anzahl: 1)
1. entfernen
Delphi-Quellcode:
procedure TForm1.FormActivate(Sender: TObject);
begin
Form1.Recreate;
end;
2. Ändern
Delphi-Quellcode:
program BlackScreenTest;
{$R BlackScreenTest.REC}  //einfügen

uses
  FMX.Forms,
  uniFrmStart in 'uniFrmStart.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True; //einfügen
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
3. Anhang (BlackScreenTest.REC) ins Programmverzeichnis einfügen

hathor 2. Mai 2014 08:44

AW: XE2 Form bleibt schwarz nach UAC Abfrage
 
Wozu soll man in diesem Forum noch antworten,
wenn es kein Feedback gibt?!

Sherlock 2. Mai 2014 09:58

AW: XE2 Form bleibt schwarz nach UAC Abfrage
 
Gemach, Gemach! Feiertag gestern, Brückentag heute. Ich würde nicht vor Montag mit einer Antwort rechnen.

Aber was genau tut Deine .rec? Edith hat flink nachgesehen und den Manifest-Anteil erkannt :D Alles klar!

Sherlock

FatPap 2. Mai 2014 10:36

AW: XE2 Form bleibt schwarz nach UAC Abfrage
 
Ich bin echt froh über deine Antwort, keine Sorge ich werde noch berichten sobald ich wieder am Arbeitsplatz bin. :-D

FatPap 5. Mai 2014 07:21

AW: XE2 Form bleibt schwarz nach UAC Abfrage
 
Habe gerade die Änderungen durchgeführt aber am besagten Verhalten hat sich leider nichts verändert. :-(

Immer noch schwarze Form wenn zweite Instanz gestartet wird während erste minimiert ist.

hathor 5. Mai 2014 15:13

AW: XE2 Form bleibt schwarz nach UAC Abfrage
 
Wieviele Instanzen willst Du haben?
Wenn Du nur 1 haben willst, muss Form1.Recreate; entfernt werden.

FatPap 5. Mai 2014 16:44

AW: XE2 Form bleibt schwarz nach UAC Abfrage
 
"recreate" hab ich natürlich entfernt. Ich will nur eine Instanz haben, was aber unwichtig ist. Ich habe in meiner Anwendung (in der .dpr Datei) natürlich schon dafür gesorgt dass man keine zweite Instanz öffnen kann.

Aber den Benutzer daran hindern doch noch eine Instanz zu starten kann ich leider nicht. Sobald er das tut (UAC Abfrage) treten aber die Probleme mit der schwarzen Form und den verschwundenen Controls auf.

Was mir heute noch aufgefallen ist: Meine Anwendung (viele Controls) muss noch nicht mal minimiert sein während dem Startversuch der zweiten Instanz und es treten auch die Probleme auf.

Im Prinzip ist es egal ob er versucht noch eine Instanz zu starten, er könnte genausogut eine andere Anwendung starten die Admin Rechte benötigt und damit den Bildschirm abdunkelt. Selbes verhalten.

Union 5. Mai 2014 20:13

AW: XE2 Form bleibt schwarz nach UAC Abfrage
 
Ich krieg das gar nicht gestartet aus der IDE: "Prozess kann nicht erzeugt werden. Der Vorgang erforder ehöhte Rechte."

Wenn ich das aus dem Explorer heraus starte, kommt die UAC-Abfrage und das Fenster blitzt kurz auf. In der Taskleiste wird die Anwendung auch angezeigt, läßt sich aber nicht in den Vordergrund holen. Geht das nur im Release-Mode?

FatPap 5. Mai 2014 21:23

AW: XE2 Form bleibt schwarz nach UAC Abfrage
 
Du musst deine IDE als Administrator ausführen.

Hab gerade festgestellt dass auf meinem Computer zuhause die Anwendung aus dem "BlackApp" Projekt keine Probleme macht sehr wohl aber die Software für unseren Kunden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:52 Uhr.
Seite 1 von 3  1 23      

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