AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Vista - EXE aus Anwendung starten ohne UAC Belästigungen?
Thema durchsuchen
Ansicht
Themen-Optionen

Vista - EXE aus Anwendung starten ohne UAC Belästigungen?

Ein Thema von moelski · begonnen am 6. Feb 2008 · letzter Beitrag vom 6. Feb 2008
Antwort Antwort
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

Vista - EXE aus Anwendung starten ohne UAC Belästigungen?

  Alt 6. Feb 2008, 12:17
Moin !

Ich habe eben das Tool "devcon" von Microsoft entdeckt. Ein klasse Command Line Tool das den Gerätemanager abbildet. Mit dem Tool kann man. z.B. alle seriellen Ports im System mit Treiber, komplettem Namen, Device ID, etc etc ermitteln.

Doch nun zum Problem... Wenn ich dieses Tool über TDosCommand starte und den Output abfangen will, dann geht das schwer in die Hose. Denn Vista kennt das Program nicht und fragt erstmal nach ob man es denn wirklich starten will. Und zu allem Überfluss landen die Ausgaben dann auch nicht in einem Memo, sondern es geht eine zusätzliche CMD auf, dort sehe ich dann die Ausgaben von Devcon kurz aufflackern und dann ist ende. Mein Memo ist leer

Kann mir jemand beschreiben wie ich unter Vista einen zusätzlichen Prozess starten kann, ohne Abfrage ob denn Vista den Prozess auch wirklich starten darf und wo ich auch den Output abfangen kann?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Vista - EXE aus Anwendung starten ohne UAC Belästigungen

  Alt 6. Feb 2008, 12:19
Zitat von moelski:
Kann mir jemand beschreiben wie ich unter Vista einen zusätzlichen Prozess starten kann, ohne Abfrage ob denn Vista den Prozess auch wirklich starten darf ...
Geht nicht, gibts nicht! Du mußt deinen Prozess schon mit dieser "Belästigung" starten wenn dieser Teil deinens Systems lokale Adminrechte benötigt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Vista - EXE aus Anwendung starten ohne UAC Belästigungen

  Alt 6. Feb 2008, 12:20
Ich habs fast befürchtet.

So eine Gülle Sch**** Vista
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#4

Re: Vista - EXE aus Anwendung starten ohne UAC Belästigungen

  Alt 6. Feb 2008, 12:22
Wenn Vista ernsthaft fragt, ob es das Programm starten darf, weil es es nicht kennt, dann bist du hier nicht auf die UAC gestoßen, sondern auf einen Schutz, den z.B. der Internet Explorer an Downloads anhängt. Wenn du jedoch doch die UAC meinst (und dann fragt Vista nicht, ob es das Programm starten darf, sondern ob das Programm Admin-Rechte bekommen darf), dann ist die Antwort einfach: Starte das aufrufende Programm als Admin. Aus Sicherheitsgründen darf ein elevated Programm nicht mit deinem Nicht-Admin-Programm kommunizieren, also musst du dich im Vorfeld auf dieselbe Ebene heben, um nicht nur die Abfrage zu vermeiden, sondern auch eine Kommunikation zu ermöglichen. Und ich gebe dir einen Tipp: Wenn UAC für dich nur eine Belästigung darstellt, schalte sie ab. Ansonsten ist es hilfreich, sich auch mal Gedanken darüber zu machen, wofür sie da ist, dann kommt man nämlich auch drauf, warum bestimmte Dinge so laufen, wie sie laufen.

Edit: Ich schicke mal trotz rotem Kasten ab, ist etwas mehr drin in meinem Beitrag.

Edit: Noch eine Ergänzung: Denk mal drüber nach. devcon benötigt Admin-Rechte. Du forderst wahlweise, dass es Adminrechte bekommt, ohne dass der Benutzer bescheid weiß (Umgehung der UAC => Sicherheitsproblem), oder du hast ein Programm, dass nur mit Admin-Rechten läuft, aber weißt nichtmal was davon. Beides zeugt nicht unbedingt von besonders durchdachtem Software-Design.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Vista - EXE aus Anwendung starten ohne UAC Belästigungen

  Alt 6. Feb 2008, 12:30
Moin !

Unsere Software braucht keine Admin Rechte. Frage mich allerdings warum Devcon zwingend Adminrechte braucht. Denn als normaler User kann ich im Gerätemanager ja auch Infos auslesen.

Zitat:
Wenn UAC für dich nur eine Belästigung darstellt, schalte sie ab
Das hilft aber keinem User ...

Naja es wird wohl doch darauf hinauslaufen das wir uns die nötigen Infos selber mühselig aus der Registry zusammentragen müssen.
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Vista - EXE aus Anwendung starten ohne UAC Belästigungen

  Alt 6. Feb 2008, 12:45
Dort wirst du aber nicht fündig werden.
-Die Zoneninformationen stehen in ADS
-die Abhängigkeit vom Adminrecht im Manifest/Dateinamen
Und falls du vor hast die UAC programmatisch abzuschalten, musst du in Kauf nehmen, dass dein Programm schnell von Virenscannern erkannt wird.
Markus Kinzler
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Vista - EXE aus Anwendung starten ohne UAC Belästigungen

  Alt 6. Feb 2008, 12:56
Moin mkinzler,

Zitat:
-Die Zoneninformationen stehen in ADS
-die Abhängigkeit vom Adminrecht im Manifest/Dateinamen
Das mag ja sein. Aber wir brauchen ausschließlich Informationen über serielle Ports im System. Und das steht in der Registry. Dort lesen wir ja jetzt schon rudimentär aus.
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#8

Re: Vista - EXE aus Anwendung starten ohne UAC Belästigungen

  Alt 6. Feb 2008, 13:16
Dafür gibt es aber auch Komponenten für Delphi, die den Gerätemanager auslesen. Die SetupAPI von JEDI z.B., da hats afaik sogar Beispiele.

[edit]
Beispiel, so wie ich's in nem akt. Projekt mache - Und ja, das funzt auch unter Vista:
Delphi-Quellcode:
function GetRegistryPropertyString(PnPHandle: HDEVINFO; const DevData:
  TSPDevInfoData; Prop: DWORD): string;
var
  BytesReturned: DWORD;
  RegDataType: DWORD;
  Buffer: array [0..256] of TCHAR;
begin
  BytesReturned := 0;
  RegDataType := 0;
  Buffer[0] := #0;
  SetupDiGetDeviceRegistryProperty(PnPHandle, DevData, Prop,
  RegDataType, PByte(@Buffer[0]), SizeOf(Buffer), BytesReturned);
  Result := Buffer;
end;

function GetCOMMDevices: TStringList;
const
  ConnectorGUID = '{4D36E978-E325-11CE-BFC1-08002BE10318}';
var
  GUID: PGUID;
  Buffer: array[0..1023] of TCHAR;
  NameBuffer: array[0..1023] of Char;
  Descriptionstr: string;
  PnPHandle: HDEVINFO;
  DevData: TSPDevInfoData;
  DeviceInterfaceData: TSPDeviceInterfaceData;
  Success: LongBool;
  BufSize: DWORD;
  Devn: Integer;
  S: string;
  aguid: Tguid;
begin
  LoadSetupApi;
  LoadConfigManagerApi;
  GetMem(GUID, SizeOf(TGUID));
  guid^ := StringToGUID(ConnectorGUID);
  SetupDiGetClassDescription(GUID^, @Buffer[0], Length(Buffer), BufSize);
  Descriptionstr := PTSTR(@Buffer[0]);
  Result := TStringList.Create;

  aguid := Guid^;
  PnPHandle := SetupDiGetClassDevs(@AGUID, nil, 0, DIGCF_PRESENT);
  //PnPHandle := SetupDiGetClassDevs(@AGUID, nil, 0, 0);
  if PnPHandle = Pointer(INVALID_HANDLE_VALUE) then
    begin
      FreeMem(GUID);
      //Result := '';
      Exit;
    end;
  Devn := 0;
  repeat
    DeviceInterfaceData.cbSize := SizeOf(TSPDeviceInterfaceData);
    DevData.cbSize := SizeOf(DevData);
    Success := SetupDiEnumDeviceInfo(PnPHandle, Devn, DevData);
    if Success then
      begin
        S := GetRegistryPropertyString(PnPHandle, DevData, SPDRP_FRIENDLYNAME);
        if S = 'then
          S := GetRegistryPropertyString(PnPHandle, DevData, SPDRP_DEVICEDESC);

        Result.Add (S);
        {
        if Pos(UMtsappli, s) > 0 then
          begin
            Result := StrBetween(s, '(', ')');
          end;
        }


        Inc(Devn);
      end;
  until not Success;
  SetupDiDestroyDeviceInfoList(PnPHandle);

  UnloadConfigManagerApi;
  UnloadSetupApi;
end;
Code ist nicht von mir. Hab ich glaube hier im Forum gefunden. Also Credits gehen an den jeweiligen Author. ^^

Die Funktion liefert dir im Zusammenhang mit der SetupAPI von JEDI die seriellen Ports im System als TStringList zurück.
[/edit]
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#9

Re: Vista - EXE aus Anwendung starten ohne UAC Belästigungen

  Alt 6. Feb 2008, 13:22
Zitat von moelski:
Unsere Software braucht keine Admin Rechte. Frage mich allerdings warum Devcon zwingend Adminrechte braucht. Denn als normaler User kann ich im Gerätemanager ja auch Infos auslesen.
Also, wenn ich unter Systemeigenschaften auf Gerätemanager klicke, meldet sich UAC. Es ist also offenbar nicht vorgesehen, dass ein normaler Benutzer darin rumpfuscht. Es zwingt dich außerdem ja niemand, devcon zu verwenden. Dieses will Admin-Rechte und damit ist dir jegliche Möglichkeit verwehrt, es ohne Admin-Rechte zu verwenden.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  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 04:54 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