AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Wie startet Firefox seinen Update Service?

Wie startet Firefox seinen Update Service?

Ein Thema von QuickAndDirty · begonnen am 18. Sep 2018 · letzter Beitrag vom 19. Sep 2018
Antwort Antwort
Schokohase
(Gast)

n/a Beiträge
 
#1

AW: Wie startet Firefox seinen Update Service?

  Alt 18. Sep 2018, 15:47
Probier es mal mit https://stackoverflow.com/a/30514865/1744164 (da musst du minimal noch Hand anlegen damit es läuft)
  Mit Zitat antworten Zitat
Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
690 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Wie startet Firefox seinen Update Service?

  Alt 18. Sep 2018, 16:12
Kann es sein, dass er den service beim windows start hoch fährt, dieser nach einem update schaut und wnen nichts da ist, der service sich einfach beendet ?
(Hab kein FF, von daher nur theorie)
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.031 Beiträge
 
Delphi 12 Athens
 
#3

AW: Wie startet Firefox seinen Update Service?

  Alt 18. Sep 2018, 16:20
Kann es sein, dass er den service beim windows start hoch fährt, dieser nach einem update schaut und wnen nichts da ist, der service sich einfach beendet ?
(Hab kein FF, von daher nur theorie)
Starttyp des Mozilla Update Service ist manuell
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty (18. Sep 2018 um 16:23 Uhr)
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.031 Beiträge
 
Delphi 12 Athens
 
#4

AW: Wie startet Firefox seinen Update Service?

  Alt 18. Sep 2018, 16:23
hab zurzeit diese rechte auf dem Service
Laut
SC SDSHOW MyUpdateService
Code:
D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)
mit
Code:
sc sdset MyUpdateService D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;RPWP;;;IU)
erweitere ich die rechte sinnvoll am besten direkt nach installation des service....wegen der uac.

geht sowas im batch
Code:
SC SDSHOW MyUpdateService > tempfile.txt
type tempfile.txt | echo (A;;RPWP;;;IU)>tempfile.txt
type tempfile.txt > SC SDSET MyUpdateService
naja auf jedenfall lässt sich der dienst jetzt auch ohne rechte starten
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty (18. Sep 2018 um 16:59 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.813 Beiträge
 
Delphi 12 Athens
 
#5

AW: Wie startet Firefox seinen Update Service?

  Alt 19. Sep 2018, 07:26
Nur mal nebenbei eine kleine Beobachtung von mir, als reiner Anwender (falls es dem TE lediglich um "ich will aber wissen wie es funktioniert" geht, bitte ignorieren):
<Rant>
Firefox läuft bei mir den ganzen Tag. Wenn es mal ein Update gibt, sagt er mir das, und auch, daß ich ihn neu starten muß damit es durchgeführt werden kann. In meinem Anwendungsfall (und ich vermute ich bin nicht der Einzige, der so "arbeitet") hat der Dienst nichts zu tun, was nicht der Browser von sich aus auch machen könnte. Andere Software setzt das auch ohne Dienst um, beim Start wird geprüft, ob es eine neuere Version gibt und gefragt, ob das jetzt installiert werden soll oder später oder eben gar nicht. Prominente Beispiele dafür sind paint.net und Notepad++. Die Entwickler dieser Produkte sind sicherlich nicht zu blöd, einen Update-Dienst zu entwickeln, aber es hat auch Vorteile, wenn man das die Anwendung selbst machen läßt, und auch den Benutzer mit einbezieht:
  • Dienste haben eventuell negative Auswirkungen auf die Performance
  • Vorschnell installierte Updates können eventuell negative Auswirkungen haben
Ich sehe ansonsten keine Vorteile, außer das man nur einmal die UAC abnicken muss, was eigentlich auch ein Nachteil ist, denn auch zB die Firefox Update Server könnten mal gekapert werden und dann haben wir den Salat.
</Rant>

Aber zum lernen, wie so ein Dienst funktioniert und installiert wird, ist das sicher eine tolle Gelegenheit. Dem Endanwender würde ich es dennoch nicht zumuten wollen.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Wie startet Firefox seinen Update Service?

  Alt 19. Sep 2018, 07:27
Der Dienst sorgt dafür, dass das Update von jedem Benutzer ausgeführt werden kann.
Markus Kinzler
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.031 Beiträge
 
Delphi 12 Athens
 
#7

AW: Wie startet Firefox seinen Update Service?

  Alt 19. Sep 2018, 09:52
Ja der Dienst "konserviert" halt die UAC-Abfrage und hat System Rechte. Und Ich will einfach vermeiden jedesmal die IT Abteilung bemühen zu müssen.
Die Software die dort ein Update erfährt wird oft aktualisiert, da sie diverse Instanzen einer Mobilen App verwaltet
Die Apps aus dem Playstore/Applestore aktualisieren sich ja eigenständig,
so dass man Aktualisierungen der Software nicht Kunde für Kunde ausrollen kann....
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.031 Beiträge
 
Delphi 12 Athens
 
#8

AW: Wie startet Firefox seinen Update Service?

  Alt 18. Sep 2018, 16:19
hab das versuch, geht leider nicht.
Aber wieso sollte es funktionieren wenn ich start und Query rechte anfordere...
das ist zurzeit die funktion.
Delphi-Quellcode:
function TServiceController.StartService(ServiceName : string) : TServiceStatusReturn;
var
  hService : SC_HANDLE;
  hServiceManager : SC_HANDLE;
  pDummy : PChar;
  Tries : Integer;
  err:Cardinal;
begin
  Result := ServiceGetStatus(nil,PChar(ServiceName));
  if Result <> ssrStopped then
    Exit;
// SetServiceObjectSecurity() // vermutlich
  hServiceManager := OpenSCManager(nil, nil, SC_MANAGER_CONNECT );
  if hServiceManager > 0 then
  begin
    GetLastError;
    hService := OpenService(hServiceManager,
                            PChar(ServiceName),
                            SERVICE_START);
    Err := getlasterror;
    if ERR >0 then
    Begin
      {$IFDEF FrameWork_VCL}
      Showmessage(SysErrorMessage(GetLastError));
      {$ENDIF}
      {$IFDEF FrameWork_FMX}
      TDialogService.Showmessage(SysErrorMessage(GetLastError));
      {$ENDIF}
    End;

    if hService > 0 then
    begin
      pDummy := nil;
      if winsvc.StartService(hService, 0, pDummy) then
      begin
        Tries := 5;
        repeat
          Sleep(10000);
          Result := ServiceGetStatus(nil,pchar(ServiceName));
          Dec(Tries);
        until (Tries = 0) or (Result = ssrRunning);
      end
      else
      begin
        Result := ssrError;
      end;
      CloseServiceHandle(hService);
    end
  end;
  CloseServiceHandle(hServiceManager);
end;
Vermutlich ist der fehler, dass ich den Service mit Shellexecute installiere...
Wenn ich den Service auch über den ServiceManager installieren würde könnte ich die via UAC Angeforderten rechte nutzen um diese funktion SetServiceObjectSecurity()auszuführen.
hmm
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:31 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