![]() |
BDS.exe mit und ohne Admin-Rechten ausführen
Hallo,
ich dreh' gerade am Rad. Eigentlich sollte es doch ganz einfach sein. Windows 8.1 64 Bit. Zwei Verknüpfungen für die "bds.exe" auf dem Desktop, einmal [x] Programm als Administrator ausführen und ein zweites mal ohne. Pustekuchen. Sobald ich bei einer Verknüpfung die Einstellung ändere, ändert sich die andere automatisch mit. Wer verar... mich jetzt? Bill Gates, oder ich mich selber? |
AW: BDS.exe mit und ohne Admin-Rechten ausführen
Die Einstellung wird bei der Exe gesetzt, nicht bei der Verknüpfung. ;-)
Was auch logisch ist, denn es ist ja eine Kompatibilitätseinstellung. Für deine Zwecke war das nie gedacht. Du wirst also eine Batchdatei oder kleine Exe vorschalten müssen. Dort kannst du das dann setzen. |
AW: BDS.exe mit und ohne Admin-Rechten ausführen
Du kannst in einer Verknüpfung
![]() Also praktisch die Lösung mit der EXE, bzw. das Selbe was man in der Batch machen würde ... nur ohne die Batch. :stupid: |
AW: BDS.exe mit und ohne Admin-Rechten ausführen
Man könnte eine "geplante Aufgabe" mit erhöhten Rechten erstellen und diese nur per Verknüpfung starten, z.B.:
C:\Windows\System32\schtasks.exe /run /TN "Aufgabentitel" Das spart auch die blöde UAC-Abfrage. |
AW: BDS.exe mit und ohne Admin-Rechten ausführen
Hallo,
vielen Dank für die Anregungen! Im Nachhinein betrachtet...logisch, ist eine Anwendungseinstellung. Ich hab's nun wie von Faxe vorgeschlagen mit dem Scheduler gemacht. Das hat den meisten Charme, weil die UAC wegfällt. Einziger Nachteil: Der nächste geplante Programmstart ist erst am 01.01.2016 um 00:00 Uhr. Mann oh mann, hat man's nicht als Programmierer so was von gut :thumb: |
AW: BDS.exe mit und ohne Admin-Rechten ausführen
Liste der Anhänge anzeigen (Anzahl: 2)
StarteBDS.exe im Anhang.
Delphi-Quellcode:
unit Unit1;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, WinApi.ShellAPI; type TForm1 = class(TForm) RadioButton1: TRadioButton; RadioButton2: TRadioButton; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure RunAsAdmin(hWnd: HWND; aFile: string; aParameters: string); var sei: TShellExecuteInfo; begin FillChar(sei, SizeOf(sei), 0); sei.cbSize := sizeof(sei); sei.Wnd := hWnd; sei.fMask := SEE_MASK_FLAG_DDEWAIT or SEE_MASK_FLAG_NO_UI; sei.lpVerb := 'runas'; sei.lpFile := PChar(aFile); sei.lpParameters := PChar(aParameters); sei.nShow := SW_HIDE; // SW_SHOWNORMAL; SW_HIDE; SW_MAXIMIZE; if not ShellExecuteEx(@sei) then RaiseLastOSError; end; procedure TForm1.Button1Click(Sender: TObject); begin if RadioButton1.Checked then RunAsAdmin(Application.Handle,'BDS.exe', '') else ShellExecute(Application.Handle,NIL,'BDS.exe','',NIL, SW_SHOW);; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz