Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Programm mit Adminrechten starten:Fail! (https://www.delphipraxis.net/161852-programm-mit-adminrechten-starten-fail.html)

himitsu 24. Jul 2011 18:33

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.

jaenicke 24. Jul 2011 18:36

AW: Programm mit Adminrechten starten:Fail!
 
Zitat:

Zitat von donauwelle (Beitrag 1113325)
Wie meinst du das? Soll ich die Anwendung 2x starten und dann die Möglichkeiten ausschließen?

Richtig. Wenn dein Programm gestartet wird, prüfst du einfach im Projektquelltext, ob du bereits Adminrechte hast. Wenn ja, setzt du einfach den Start fort.

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. ;-)

haentschman 24. Jul 2011 18:38

AW: Programm mit Adminrechten starten:Fail!
 
Zitat:

hmmm aber im Tutorial steht doch das:

Zitat:

highestAvailable ist das nächst kleinere Level. Es fragt nach Adminrechten, bekommt es diese nicht, wird das Programm mit den Standard-Userrechten ausgeführt.

... aber nur wenn du auf JA drückst. Bei NEIN wird die Ausführung abgebrochen.

donauwelle 24. Jul 2011 18:44

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:

... aber nur wenn du auf JA drückst. Bei NEIN wird die Ausführung abgebrochen.
ja leider :cry:

jaenicke 24. Jul 2011 19:00

AW: Programm mit Adminrechten starten:Fail!
 
Zitat:

Zitat von donauwelle (Beitrag 1113332)
@jaenicke wenn er keine Adminrechte bekommt, dann könnte er ja trotzdem in die Registry einblicken (Read) aber eben nichts ändern:

Kommt darauf an wo in der Registry, im benutzerspezifischen Teil geht es auch ohne.

Zitat:

Zitat von donauwelle (Beitrag 1113332)
Gute Idee hab sogar eine Funktion dazu gefunden:

Was hat die mit den Adminrechten zu tun? Du musst prüfen, ob dein Programm Adminrechte hat oder nicht. Die schnelle Lösung ist IsUserAnAdmin, empfohlen werden andere Lösungen (mit denen ich aber bisher keine zuverlässige Lösung hinbekommen habe).


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 Uhr.
Seite 2 von 2     12   

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