AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi 2007, Vista und UAC

Ein Thema von ringli · begonnen am 29. Aug 2007 · letzter Beitrag vom 29. Aug 2007
Antwort Antwort
ringli

Registriert seit: 7. Okt 2004
509 Beiträge
 
Delphi 11 Alexandria
 
#1

Delphi 2007, Vista und UAC

  Alt 29. Aug 2007, 00:07
Ich bin neulich über etwas gestolpert was mich doch sehr gewundert hat. Und zwar erstelle ich als einfacher Benutzer unter Vista mit Delphi 2007 eine ganz einfache Anwendung. Diese kann ich auch problemlos compilieren bzw. starten. Jetzt deaktiviere ich in den Projektoptionen unter "Anwendung" die Checkbox "Laufzeit-Themes aktivieren" und füge anschliessend über die Projektverwaltung mein eigenes Manifest hinzu. Nun versuche ich die Anwendung zu compilieren bzw. zu starten. Erwartungsgemäß funktioniert das problemlos.

Wenn ich jetzt in meinem Manifest den folgenden Abschnitt von
Code:
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
in
Code:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
ändere, kann ich meine Anwendung weiterhin problemlos compilieren. Versuche ich aber die Anwendung über die IDE zu starten, erhalte ich folgende Fehlermeldung:
Code:
Vorgang kann nicht erzeugt werden.

Details:
[208D5148]{dbkdebugide100.bpl} Debug.TDebugger.DBKError (Line 11416, "Debug.pas" + 3) + $23
[208A2DB1]{dbkdebugide100.bpl} DbkHelper.CheckRetVal (Line 268, "DbkHelper.pas" + 4) + $8
[208A2D31]{dbkdebugide100.bpl} DbkHelper.ErrCode (Line 249, "DbkHelper.pas" + 1) + $2
[208C7A8E]{dbkdebugide100.bpl} Debug.TDebugKernel.CreateProcess (Line 5056, "Debug.pas" + 14) + $2
[208D2E69]{dbkdebugide100.bpl} Debug.TDebugger.DoCreateProcess (Line 10374, "Debug.pas" + 29) + $36
[208D2F7C]{dbkdebugide100.bpl} Debug.TDebugger.CreateProcess (Line 10400, "Debug.pas" + 6) + $2B
[208D3AB2]{dbkdebugide100.bpl} Debug.TDebugger.Run (Line 10840, "Debug.pas" + 50) + $2D
[208D423E]{dbkdebugide100.bpl} Debug.TDebugger.Run (Line 11091, "Debug.pas" + 70) + $37
[208CF162]{dbkdebugide100.bpl} Debug.TDebugger.Run (Line 8973, "Debug.pas" + 0) + $2
[20A53D8D]{coreide100.bpl} DebuggerMgr.TDebuggerMgr.Run (Line 1410, "DebuggerMgr.pas" + 4) + $F
[004160E3]{bds.exe    } AppMain.TAppBuilder.RunRun (Line 2981, "ui\AppMain.pas" + 0) + $7
[20040113]{rtl100.bpl } Classes.TBasicAction.Execute (Line 11081, "common\Classes.pas" + 3) + $7
[2014FF7D]{vcl100.bpl } ActnList.TContainedAction.Execute (Line 388, "ActnList.pas" + 1) + $2C
[20150CE0]{vcl100.bpl } ActnList.TCustomAction.Execute (Line 1000, "ActnList.pas" + 7) + $8
[2003FFDF]{rtl100.bpl } Classes.TBasicActionLink.Execute (Line 11010, "common\Classes.pas" + 2) + $7
[2013B6F9]{vcl100.bpl } Controls.TControl.Click (Line 5227, "Controls.pas" + 7) + $7
[2019A7CC]{vcl100.bpl } ComCtrls.TToolButton.Click (Line 16993, "ComCtrls.pas" + 0) + $0
[2013BB8B]{vcl100.bpl } Controls.TControl.WMLButtonUp (Line 5365, "Controls.pas" + 6) + $3E
[2013B20B]{vcl100.bpl } Controls.TControl.WndProc (Line 5146, "Controls.pas" + 83) + $6
[2013AE98]{vcl100.bpl } Controls.TControl.Perform (Line 5021, "Controls.pas" + 5) + $C
[2013EBAA]{vcl100.bpl } Controls.GetControlAtPos (Line 7095, "Controls.pas" + 4) + $73
[2013EC72]{vcl100.bpl } Controls.TWinControl.ControlAtPos (Line 7118, "Controls.pas" + 13) + $E
[2013AE98]{vcl100.bpl } Controls.TControl.Perform (Line 5021, "Controls.pas" + 5) + $C
[2013EE7D]{vcl100.bpl } Controls.TWinControl.IsControlMouseMsg (Line 7182, "Controls.pas" + 15) + $1F
[2013F244]{vcl100.bpl } Controls.TWinControl.WndProc (Line 7269, "Controls.pas" + 76) + $6
[2019C80F]{vcl100.bpl } ComCtrls.TToolBar.UpdateButtonState (Line 18138, "ComCtrls.pas" + 5) + $1C
[2019C852]{vcl100.bpl } ComCtrls.TToolBar.UpdateButtonStates (Line 18148, "ComCtrls.pas" + 3) + $4
[2019F185]{vcl100.bpl } ComCtrls.TToolBar.WndProc (Line 19578, "ComCtrls.pas" + 80) + $6
[05542CEC]{Castalia11.bpl} Castaliaeditor.GetSourceFromModule + $2E8
[2013EAB4]{vcl100.bpl } Controls.TWinControl.MainWndProc (Line 7073, "Controls.pas" + 3) + $6
[20040DD4]{rtl100.bpl } Classes.StdWndProc (Line 11583, "common\Classes.pas" + 8) + $0
[201611EC]{vcl100.bpl } Forms.TApplication.ProcessMessage (Line 8102, "Forms.pas" + 23) + $1
[20161226]{vcl100.bpl } Forms.TApplication.HandleMessage (Line 8121, "Forms.pas" + 1) + $4
[20161537]{vcl100.bpl } Forms.TApplication.Run (Line 8219, "Forms.pas" + 20) + $3
[0042298E]{bds.exe    } bds.bds (Line 196, "" + 7) + $7
Eigentlich hätte ich erwartet das hier die UAC-Abfrage erscheint, was aber nicht der Fall ist. Starte ich meine Anwendung ganz normal über den Explorer erhalte ich auch die entsprechende UAC-Abfrage.

Ist dieses Verhalten tatsächlich so beabsichtigt oder ist dies noch ein Fehler in der Delphi IDE? Im Anhang mal ein ganz kleines Testprojekt zum Testen.


Und da ich grade bei Fehlern in Delphi 2007 bin noch eine Kleinigkeit:
Die "Öffnen"-, "Projekt öffnen..."-, "Speichern"-, "Speichern unter..."- und "Projekt speichern unter..."-Dialoge der Delpi-IDE verwenden unter Vista immer noch nicht die neuen Dialoge mit den Linkfavoriten was ich sehr schade finde da diese doch sehr praktisch sind um schnell auf Projektordner zugreifen zu können. Klar könnte ich mir auch den alten Dialog entsprechend anpassen, aber das kann ja nicht der Sinn der Sache sein.

[EDIT]
Sorry, sehe grade das ich im falschen Forum gelandet bin. Eigentlich sollte das Thema bei Delphi Bugreports eingetragen werden. Könnte das ein Moderator bitte verschieben? Danke.
Angehängte Dateien
Dateityp: zip uac-test_delphi_2007_121.zip (4,9 KB, 13x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#2

Re: Delphi 2007, Vista und UAC

  Alt 29. Aug 2007, 19:20
Nee

Gehört schon in die IDE-Sparte, weil's imho kein Bugreport ist.
Probier mal, die IDE als Administrator zu starten und schau ob es dann geht.

Ich bin mir ziemlich sicher, dass es kein Bug ist. Der Debugger der Anwendung läuft mit normalen rechten, und beim normalen Debuggen wird der Debugger gestartet, und der startet dann das zu debuggende Programm In-Process. Wenn das nun vom System gleich wieder gekillt wird, weil es (da in-process) keine Adminrechte bekommen kann (die UAC kann nur greifen, wenn ein eigener Prozess neu gestartet wird). Ein laufender Prozess der keine Adminrechte hat (Debugger mit Deinem Programm 'im Bauch') kann zur Laufzeit keine höheren Rechte mehr erhalten.

Das heisst, schond er Debugger muss mit Adminrechten gestartet sein damit das geht. Und da der Debugger durch die IDE gestartet wird muss diese schon mit Adminrechten laufen.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Delphi 2007, Vista und UAC

  Alt 29. Aug 2007, 19:47
Jedoch sollte die Fehlermeldung in dieser Art und Weise nicht auftreten wenn schon D2007 eine Vista-Edition ist.

AFAIK installiert sich VS.NET 2005 so das immer Admin-Rechte angefordert werden.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#4

Re: Delphi 2007, Vista und UAC

  Alt 29. Aug 2007, 19:49
Zitat von Bernhard Geyer:
AFAIK installiert sich VS.NET 2005 so das immer Admin-Rechte angefordert werden.
Das ist ein nachträglicher Fix von MS in Vista VS 2005 macht das nicht.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
ringli

Registriert seit: 7. Okt 2004
509 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Delphi 2007, Vista und UAC

  Alt 29. Aug 2007, 20:11
Zitat von Phoenix:
Gehört schon in die IDE-Sparte, weil's imho kein Bugreport ist.
Probier mal, die IDE als Administrator zu starten und schau ob es dann geht.
Ja, so geht es. Aber meiner Meinung nach kann es trotzdem so nicht richtig sein. Nur deswegen kann man doch jetzt nicht anfangen permanent mit Administratorrechten zu arbeiten. Also ich denke in diesem Fall sollte der Debugger auch gleich über die UAC-Abfrage mit entsprechenden Rechten gestartet werden. Ob bzw. wie sich das realisieren lässt, entzieht sich meiner Kenntnis.

Und was ist mit den "falschen" Öffnen-/Speichern-Dialogen? Das dürfte auf jeden Fall noch ein Bug sein. Oder gibt es dafür eine vernünftige Erklärung ausser der das es vielleicht übersehen wurde?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Delphi 2007, Vista und UAC

  Alt 29. Aug 2007, 21:20
[quote="ringli"]
Zitat von Phoenix:
Ja, so geht es. Aber meiner Meinung nach kann es trotzdem so nicht richtig sein. Nur deswegen kann man doch jetzt nicht anfangen permanent mit Administratorrechten zu arbeiten.
Sag das MS mit ihren Halbgaren UAC.[quote="ringli"]

Zitat von Phoenix:
Also ich denke in diesem Fall sollte der Debugger auch gleich über die UAC-Abfrage mit entsprechenden Rechten gestartet werden. Ob bzw. wie sich das realisieren lässt, entzieht sich meiner Kenntnis.
Geht gar nicht. Hier hat MS m.E. eindeutig gepennt. Mit digitaler Signatur und/oder Checksumme der Exe wäre es ein leichtes sich die Antwort auf die UAC-Frage zu merken. Die jetzige Implementierung führt nur dazu entweder UAC abzuschalten oder gedankenverloren immer auf Zulassen zu drücken.

Zitat von Phoenix:
Und was ist mit den "falschen" Öffnen-/Speichern-Dialogen? Das dürfte auf jeden Fall noch ein Bug sein. Oder gibt es dafür eine vernünftige Erklärung ausser der das es vielleicht übersehen wurde?
Ist vermutlich einfach nur vergessen worden. Ein Bug ist es auf keinen Fall oder funktioniert der Dialog wohl für seine ursprüngliche Aufgabe wohl nicht mehr? Evtl. wurde das ja für das CDS 2007 angepaßt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
ringli

Registriert seit: 7. Okt 2004
509 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Delphi 2007, Vista und UAC

  Alt 29. Aug 2007, 21:31
Zitat von Bernhard Geyer:
Die jetzige Implementierung führt nur dazu entweder UAC abzuschalten oder gedankenverloren immer auf Zulassen zu drücken.
...oder als einfacher Benutzer immer brav die entsprechenden Anmeldedaten einzutippen.

Zitat von Bernhard Geyer:
Ist vermutlich einfach nur vergessen worden. Ein Bug ist es auf keinen Fall oder funktioniert der Dialog wohl für seine ursprüngliche Aufgabe wohl nicht mehr? Evtl. wurde das ja für das CDS 2007 angepaßt.
Doch sicher funktionieren die Dialoge. Es ist nur nervig wenn man sonst überall schön die Linkfavoriten nutzen kann, aber in Delphi muss man sich erst wieder durch die Verzeichnisstruktur hangeln um zu seinem Projektordner zu kommen.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#8

Re: Delphi 2007, Vista und UAC

  Alt 29. Aug 2007, 21:34
Ihr schiebt mir hier aber beide immer irgendwie falsche Zitate unter. Verklickt oder verguckt?

Hrm. Den low priviledged Debugger kann man auch nicht nachträglich an einen high-priv Prozess anhängen, oder? Hab sowas leider (oder zum Glück ) noch nie gemacht.

Das wär glaub ich ein Punkt, den man mal gezielt an CodeGear geben sollte. Schonmal dort in den Bugmeldungen bzw. Newsgroups gesucht?
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
ringli

Registriert seit: 7. Okt 2004
509 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Delphi 2007, Vista und UAC

  Alt 29. Aug 2007, 21:40
Zitat von Phoenix:
Das wär glaub ich ein Punkt, den man mal gezielt an CodeGear geben sollte. Schonmal dort in den Bugmeldungen bzw. Newsgroups gesucht?
Ehrlich gesagt nein weil ich jetzt auch gar nicht wüsste wo ich da gucken müsste. Ausserdem sind meine Englischkenntnisse dermaßen bescheiden das ich wahrscheinlich mehr als die Hälfte falsch verstehen würde. Vom Antworten oder eigene Beiträge verfassen will ich mal lieber gar nicht erst reden.
  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 01:02 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