AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi BDS.exe mit und ohne Admin-Rechten ausführen
Thema durchsuchen
Ansicht
Themen-Optionen

BDS.exe mit und ohne Admin-Rechten ausführen

Ein Thema von mm1256 · begonnen am 18. Feb 2015 · letzter Beitrag vom 18. Feb 2015
Antwort Antwort
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
640 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

BDS.exe mit und ohne Admin-Rechten ausführen

  Alt 18. Feb 2015, 10:40
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?
Gruss Otto
Wenn du mit Gott reden willst, dann bete.
Wenn du ihn treffen willst, schreib bei Tempo 220 eine SMS
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: BDS.exe mit und ohne Admin-Rechten ausführen

  Alt 18. Feb 2015, 10:44
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.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#3

AW: BDS.exe mit und ohne Admin-Rechten ausführen

  Alt 18. Feb 2015, 11:10
Du kannst in einer Verknüpfung RunAs aufrufen und dem die bds.exe übergeben.

Also praktisch die Lösung mit der EXE, bzw. das Selbe was man in der Batch machen würde ... nur ohne die Batch.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (18. Feb 2015 um 11:13 Uhr)
  Mit Zitat antworten Zitat
Faxe

Registriert seit: 10. Jan 2013
29 Beiträge
 
Delphi XE3 Professional
 
#4

AW: BDS.exe mit und ohne Admin-Rechten ausführen

  Alt 18. Feb 2015, 11:50
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.
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
640 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

AW: BDS.exe mit und ohne Admin-Rechten ausführen

  Alt 18. Feb 2015, 14:25
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
Gruss Otto
Wenn du mit Gott reden willst, dann bete.
Wenn du ihn treffen willst, schreib bei Tempo 220 eine SMS
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#6

AW: BDS.exe mit und ohne Admin-Rechten ausführen

  Alt 18. Feb 2015, 18:05
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.
Miniaturansicht angehängter Grafiken
startebds.jpg  
Angehängte Dateien
Dateityp: zip StarteBDS.zip (857,5 KB, 12x aufgerufen)

Geändert von hathor (18. Feb 2015 um 19:25 Uhr)
  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 06:28 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