Programm mit Adminrechten starten:Fail!
Servus!
Ich benutze das Tutorial von DJ SPM um meine Delphi-Anwendung mit Admin-Rechten zu starten (Tut.link: http://www.delphipraxis.net/110066-%...n-starten.html). Hab alles wie beschrieben durchgeführt allerdings startet das Programm mit den eingestellten Benutzerrechten. Nach dem Schließen des Programms krieg ich unten im Debugger folgendes geschrieben:
Code:
{$R u_acgame.dfm}&{$R manifest.res} hab ich gleich vor uses stehen, gehört es vllt irgendwo anders hin? Was muss ich ändern damit mein Programm als Admin ausgeführt werden kann?
[DCC Warnung] W1056 Warning: Duplicate resource: Type 10 (RCDATA), ID TFORM1; File D:\Delphi Neu\ACgame\u_acgame.dfm resource kept; file D:\Delphi Neu\ACgame\u_acgame.dfm resource discarded.
[DCC Warnung] W1056 Warning: Duplicate resource: Type 24 (user-defined), ID 1; File D:\Delphi Neu\ACgame\acgame.res resource kept; file D:\Delphi Neu\ACgame\manifest.res resource discarded. mfg Donau Welle |
AW: Programm mit Adminrechten starten:Fail!
Welche Delphiversion nutzt du denn?
Du hast noch ein weiteres Manifest eingebunden ... es kann nur Eines geben. Genau das besagt auch in der Meldung "Duplicate resource". Und wenn du den verlinkten Thread durchgelesen hättest, dann wären dir da drüben auch Probleme, wie "Warning: Duplicate resource: Type ..." und deren lösung aufgefallen. Der Compiler, bzw. der Linker kann nunmal nur jeweils eine "gleichnamige" Resource einbinden und hat darum alle Nachfolgenden übergangen (siehe Warnung) ... heißt also, da zufällig das Admin-Manifest nach dem anderen Manifest stand/compiliert wurde, wurde Deines übergangen. Was du machen mußt? genau das was die Warnung besagt: alle doppelten/mehrfachen Resourcen entfernen. Unit XPMan, Komponente TXPManifest oder in den neueren Delphis in den Projektoptionen aktiviert? Außerdem versuchst du entweder zwei Units mit TForm1 einzubinden oder bindest deren DFM-Resource mehrmals ein. Compiler-Infos kann man beachten (sollte sie sich zumindestens mal ansehn). Warnungen sollte man beachten und möglicht das beheben, was sie besagen. Fehler / Schwere Fehle muß man sowieso beheben. Weitere Infos zum Manifest > siehe Manifest Creator und den dort verlinkten Seiten. PS: Wo {$R ...} deklariert, ist nahezu egal. Es könnte auch mitten im Quellcode oder gar in einer anderen Unit oder auch alles in der DPR drinstehn, aber vorallem wegen dem Formeditor sollte die Formresource nicht verschoben werden. |
AW: Programm mit Adminrechten starten:Fail!
Delphi 2010
Ich muss wohl auch folgendes gestehen :oops: Zitat:
ich hab bei mir nicht requireadminstrator stehen sondern highestavailable, das problem ist allerdings wenn ich auf "Nein" bei der Meldung klicke dann startet die Anwendung nicht trotz highest available (obwohl es laut dem Tutorial einfach mit den Normalen-Rechten starten müsste) Woran kann denn das liegen? Mach ich schon wieder etwas falsch? mfg DonauWelle |
AW: Programm mit Adminrechten starten:Fail!
...das ist aber nicht die feine englische Art meine Schandtaten noch zu verbreiten. Der Grashügel war schon einen Meter hoch... 8-)
Tja, sowas passiert wenn man zuviel am Projekt gearbeitet hat und mit den Gedanken schon weiter ist. :zwinker: |
AW: Programm mit Adminrechten starten:Fail!
Zitat:
eben :lol: ich bin wie du ein vorausdenkender Mensch :lol: Kannst du mir mit dem "highestAvailable" weiterhelfen? mfg DonauWelle |
AW: Programm mit Adminrechten starten:Fail!
Ich habe nicht richtig verstanden welche Meldung du mit NEIN bestätigst. Wenn du die UAC meinst startet keine Anwendung bei drücken auf NEIN.
PS: über welches OS reden wir ? Vista / Win7 ? |
AW: Programm mit Adminrechten starten:Fail!
Zitat:
hmmm :( aber im Tutorial steht doch das: Zitat:
mfg DonauWelle |
AW: Programm mit Adminrechten starten:Fail!
Wenn du das willst, benutze einfach kein Manifest sondern versuche eine zweite Instanz deines Programms mit Adminrechten zu starten, wenn es noch keine hat. Schlägt das fehl, setzt du den Start der non-Admin Instanz fort, war der Start erfolgreich, beendest du sie.
Und grundsätzlich ist die Frage, ob du absolut sicher bist, dass dein gesamtes Projekt Adminrechte benötigt... |
AW: Programm mit Adminrechten starten:Fail!
Ich würde einmal bei der Quelle nachsehen.
|
AW: Programm mit Adminrechten starten:Fail!
Zitat:
@jaenicke Wie meinst du das? Soll ich die Anwendung 2x starten und dann die Möglichkeiten ausschließen? Ich brauche die Admin-Rechte damit ich die Registrierung reinigen bzw. defragmentieren kann, andere Funktionen wären z.B defekte Verknüpfungen löschen zu können...man könnte es also mit dem CCLeaner vergleichen. |
AW: Programm mit Adminrechten starten:Fail!
Es kommt drauf an wo genau du was löschen willst und ob dafür nich auch die normalen Rechte ausreichen,
aber wenn du so oder so höhere rechte benötigst, dann kommst'e um requireAdministrator sowieso nicht drumrum. |
AW: Programm mit Adminrechten starten:Fail!
Zitat:
Wenn nein, versuchst du dein eigenes Programm mit Adminrechten zu starten (z.B. mit ShellExecute und 'runas' als Verb). Ist das erfolgreich, beendest du die non-Admin Instanz. Ist es nicht erfolgreich, kannst du mit der non-Admin Instanz weitermachen. In deinem Fall liest es sich aber so, dass du auch erst einmal ohne Adminrechte arbeiten könntest und diese nur bei Bedarf anfordern könntest, sobald du sie wirklich brauchst. ;-) |
AW: Programm mit Adminrechten starten:Fail!
Zitat:
|
AW: Programm mit Adminrechten starten:Fail!
@jaenicke wenn er keine Adminrechte bekommt, dann könnte er ja trotzdem in die Registry einblicken (Read) aber eben nichts ändern:
Gute Idee hab sogar eine Funktion dazu gefunden:
Code:
function IsNT: boolean;
var OsVersion: TOSVersionInfo; begin OsVersion.dwOSVersionInfoSize := sizeof(OsVersion); if( GetVersionEx(OsVersion) = true ) then Result := (OsVersion.dwPlatformId = VER_PLATFORM_WIN32_NT); end; procedure TForm1.Button1Click(Sender: TObject); begin if IsNT = true then showmessage('This is Windows NT') else showmessage('This is NOT Windows NT'); end; Zitat:
|
AW: Programm mit Adminrechten starten:Fail!
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:32 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