AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Autostart RUN und RUNONCE

Ein Thema von surfer007 · begonnen am 20. Jan 2016 · letzter Beitrag vom 22. Jan 2016
Antwort Antwort
Seite 1 von 2  1 2   
surfer007

Registriert seit: 17. Jan 2010
51 Beiträge
 
Delphi 7 Professional
 
#1

Autostart RUN und RUNONCE

  Alt 20. Jan 2016, 21:08
Hallo,

ich starte meine Anwendung via Registry RUNONCE und zur Sicherheit nochmal in der RUN Sektion, klappt auch soweit gut. RUNONCE damit meine Anwendung die aller erste Anwendung beim Windows Start ist. Nun habe ich einen Kunden mit Windows10 der meint nach einem Power Off startet die Anwendung (Kiosk) meist nicht. Also irgendwas löscht den RUN und RUNONCE Eintrag. Ja, der RUNONCE wird von meiner Anwendung nach dem Start wieder angelegt, ist also da! User ist Administrator und UAC Anforderung ist als Manifest drin. Bei Tests in einer VM mit Win10 konnte ich nichts feststellen, bei mir funktioniert es immer. Das ist der Code der die Start Einträge anlegt:

Delphi-Quellcode:
    
    
    // HKEY_LOCAL_MACHINE
    
    if TPJOSInfo.IsWow64 then begin
      MyPrg := TRegistry.Create(KEY_ALL_ACCESS OR KEY_WOW64_64KEY);
    end else begin
      MyPrg := TRegistry.Create(KEY_ALL_ACCESS OR KEY_WOW64_32KEY);
    end;
      MyPrg.Rootkey := HKEY_LOCAL_MACHINE;
      MyPrg.LazyWrite := false;
      try
        try
          if MyPrg.Openkey('Software\Microsoft\Windows\CurrentVersion\Policies\Explorer', true) then begin
            MyPrg.WriteInteger('DisableLocalUserRunOnce', 0);
          end;
        except
          MyLogAdd('Error writing registry: DisableLocalUserRunOnce', False);
        end;
      finally
        MyPrg.CloseKey;
      end;

      try
        try
          if MyPrg.Openkey('Software\Microsoft\Windows\CurrentVersion\RunOnce', true) then begin
            MyPrg.WriteString('!KioskStart', '"' + sPath + 'kioskstart.exe"');
          end;
        except
          MyLogAdd('Error writing registry: !KioskStart', False);
        end;
      finally
        MyPrg.CloseKey;
      end;

      try
        try
          if MyPrg.Openkey('Software\Microsoft\Windows\CurrentVersion\Run', true) then begin
            MyPrg.WriteString('Kiosk', '"' + sPath + 'kiosk.exe" /bootstart');
          end;
        except
          MyLogAdd('Error writing registry: Kiosk', False);
        end;
      finally
        MyPrg.CloseKey;
      end;
    MyPrg.Free;
Hat jemand einen Tipp warum das auf Win10 nach einem Power Off nicht mehr startet?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Autostart RUN und RUNONCE

  Alt 20. Jan 2016, 22:01
Wird dein Programm denn korrekt beendet? Hat es den noch die Möglichkeit den Wert in die Registry zu schreiben?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Autostart RUN und RUNONCE

  Alt 20. Jan 2016, 22:51
RunOnce => Beim nächsten Systemstart einmal starten

und nicht "wird als erstes gestartet".

Für den Kiosk-Mode solltest du die Shell (die wird immer und als erstes gestartet) austauschen (default explorer.exe)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
surfer007

Registriert seit: 17. Jan 2010
51 Beiträge
 
Delphi 7 Professional
 
#4

AW: Autostart RUN und RUNONCE

  Alt 20. Jan 2016, 23:03
Die Registry Einträge werden kurz nach dem Start, und während des Betriebs und auch beim beenden nochmals geschrieben. Da das Programm als Kiosk läuft wird in der Praxis die Maschine aber knallhart via Sicherung raus beendet. Da die Einträge aber mehrmals an verschiedenen Stellen gemacht werden gehe ich davon aus das die Einträge gemacht wurden. Das Problem tritt scheinbar nur nach Power Off auf. Normaler Reboot klappt. Übrigens klappt das so schon seit Jahren auf Systemen < Win10. RUNONCE wird benutzt um der Erste beim Booten zu sein.

Bei dieser Anwendung wird der Desktop benötigt, deshalb Explorer als Shell. Das Programm ist auch bei anderen Installationen im Einsatz und selbst als Shell eingetragen, da dann ohne Windows Desktop.

RUNONCE wird als allererstes gestartet, so können Taskbar und andere Restriktionen sofort gemacht werden. Der RUN Eintrag ist eigentlich nur die Rückversicherung. Komisch das die Anwendung gar nicht gestartet wird, also auch nicht via RUN der eigentlich nur 1x angelegt werden muss.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Autostart RUN und RUNONCE

  Alt 20. Jan 2016, 23:13
Wie schon bemerkt wurde. RUNONCE bedeute: Führe das Programm einmal automatisch aus. Und nicht: Führe es als erstes aus. Wenn jetzt ein Update dort auch einen Eintrag macht, dann ist nicht mehr sichergestellt, dass dein Programm als erstes Startet. Lösung, wie schon gesagt wurde: Trag dein Programm als Shell ein und ersetze damit so den Explorer als Shell. Dann sparst du dir auch das Rumgefrickel mit den Autorun-Schlüsseln in der Registry.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
surfer007

Registriert seit: 17. Jan 2010
51 Beiträge
 
Delphi 7 Professional
 
#6

AW: Autostart RUN und RUNONCE

  Alt 20. Jan 2016, 23:28
Ok, wenn ein anderes Programm auch RUNONCE benutzt, sollte trotzdem die eigene Anwendung drin stehen und gestartet werden.

Der "Kiosk" braucht aber den Windows Desktop. Oder ich müsste selber einen Desktop integrieren, also die Möglichkeit Icons mit Link zu Programmen anzulegen die der User dann benutzen kann. Viel Arbeit um etwas zu ersetzen das immer funktionierte. Zum Verständnis, mein Kiosk blendet unter anderem die Taskleiste aus, und deaktiviert die rechte Maustaste, macht einige Key Mappings um CTRL+ALT+DEL , Windows Taste usw. umzubiegen. Der User soll keinen Zugriff auf HD und System haben, eben ein Kiosk.

Bleibt immer noch die Frage warum läuft es < Win10 und warum wird im "worst case" Fall der Standard RUN Eintrag nicht ausgeführt.

Ich weiß was RUNONCE bedeutet, in der Praxis ist RUNONCE aber vor RUN und Autostart Ordner dran, also ich kenne keine Möglichkeit (außer Shell replacement) ganz vorne beim Bootvorgang zu sein.

Vielleicht muss ich doch auf Task Scheduler umsteigen, muss ich mal testen ob man da "früh genug" an der Reihe ist.

Geändert von surfer007 (20. Jan 2016 um 23:34 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: Autostart RUN und RUNONCE

  Alt 20. Jan 2016, 23:41
Zitat:
Viel Arbeit um etwas zu ersetzen das immer funktionierte.
Offensichtlich ja nicht immer.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#8

AW: Autostart RUN und RUNONCE

  Alt 21. Jan 2016, 07:51
Wenn ich die Shell durch meine SW ersetze, kann ich dann noch eine TShellView o.ä. verwenden? Und wenn es um Icons geht, die beim Anklicken ein Programm ausführen, ginge das nicht auch mit einem Button oder -noch einfacher- mit einem TImage.OnClick, oder -warte- mit einer TListView im Icon-Modus? "Viel Arbeit" wäre das ja nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

AW: Autostart RUN und RUNONCE

  Alt 21. Jan 2016, 07:54
Zitat:
TListView im Icon-Modus
Der original Desktop ist übrigens nichts anderes.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#10

AW: Autostart RUN und RUNONCE

  Alt 21. Jan 2016, 10:03
Ach was. Darauf wollte ich dezent hinweisen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

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 09:13 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