Seite 1 von 1

verzögerte Autostart einer App ?

Verfasst: Do, 19. Jul 2018 2:20
von AUGE_OHR
hi,

ich habe eine LNK zu einer Xbase++ App in Autostart.
die App überwacht den Zugriff auf Laufwerke insbesondere USB-Stick.

wenn ich die App normal starte sind ja schon die Laufwerke/RAMdisk vorhanden und die App reagiert sofort auf neue Laufwerke.
wenn die App in Autostart liegt reagiert sie (scheinbar) nicht bei 1st Mal :angry4: danach aber wie gewohnt jedes mal.

vermutlich liegt das Problem an die RAMdisk die erst geladen/erstellt wird ... vor oder nach Autostart :?:
deshalb frage ich nach einer Möglichkeit die App "verzögert" zu starten aber das ist scheinbar nur mit einem Dienst (Service) möglich :?:

Re: verzögerte Autostart einer App ?

Verfasst: Do, 19. Jul 2018 7:33
von Tom
Hallo, Jimmy.

Du hast doch in der Anwendung selbst die Hoheit darüber, was sie wann macht. Wenn Du also gleich am Anfang der Main() schlicht ein kleines Weilchen wartest, dann müsste das den gleichen Effekt haben als wenn die Anwendung verzögert starten würde, oder? Und wenn Du weißt, worauf genau Du wartest, ist es noch einfacher.

Re: verzögerte Autostart einer App ?

Verfasst: Do, 19. Jul 2018 7:38
von Martin Altmann
Oder man ruft Sie mit der Anzahl als Sekunden, die gewartet werden sollen, als Parameter auf.
Kein Parameter, keine Wartezeit.

Viele Grüße,
Martin

Re: verzögerte Autostart einer App ?

Verfasst: Do, 19. Jul 2018 7:44
von Martin Altmann
Oder Du baust Dir eine .BAT-/.CMD-Datei, die die zu startenden Anwendungen enthält und packst diese Datei in das Autostart.
Hat den Vorteil, dass Du die Reihenfolg beim Start vorgeben kannst und du kannst in der .BAT-/.CMD-Datei mit dem TIMEOUT-Kommando vor den jeweiligen Aufrufen arbeiten!

Viele Grüße,
Martin

Re: verzögerte Autostart einer App ?

Verfasst: Do, 19. Jul 2018 8:07
von AUGE_OHR
moin,

ich habe das so modifiziert :

Code: Alles auswählen

   IF lDelay = .T.
      oDlg:oTb:Modify(NIL,11,"waiting for Delay")

      oThread := Thread():new()
      oThread:start( { || PostAppEvent( xbeSD_Delay,,,oDlg ) } )
      oThread:setStartTime( SECONDS() + (60*3) )
   ELSE
      PostAppEvent( xbeSD_Delay,,,oDlg )
   ENDIF
 
      DO CASE
         CASE nEvent == xbeSD_Delay
            IF lRunOnce = .F.
               lRunOnce := .T.
               delegated_eval( { || ot4xb_CreateGenericWindow(...) } )
               oDlg:oTb:Modify(NIL,3,"click on Icon for Menu")
            ENDIF
leider ändert es nichts an dem Autostart Problem :(

das ganze passiert in der Windows Queue und die CLASS starte ich mit delegated_eval() jetzt verzögert.
hab eine Anfrage an Pablo gestellt ob es da mit Autostart ein Problem geben könnte.

im Grund will ich die Verzögerung gar nicht denn das Tool soll ja sofort greifen.
ich werde mir was anderes überlegen ... (.BAT-/.CMD-Datei)

Re: verzögerte Autostart einer App ?

Verfasst: Fr, 20. Jul 2018 3:38
von AUGE_OHR
so funktioniert es unter Windows 7 aber nicht unter Windows 10 [-X

Code: Alles auswählen

      oThread:start( { || PostAppEvent( xbeSD_Delay,,,oDlg ) } )
      oThread:setStartTime( SECONDS() + (60*1) )
wenn man es so schreibt ist die Reihenfolge richtig

Code: Alles auswählen

      oThread:setStartTime( SECONDS() + (60*1) )
      oThread:start( { || PostAppEvent( xbeSD_Delay,,,oDlg ) } )
natürlich muss o:setStartTime() vor o:Start() sein
---

habe aus dem USB Teil der CLASS MyVolHandler ein Demo gemacht und das funktioniert mit Autostart.
ARRIVE.ZIP
Demo full source
need ot4xb
(1.91 KiB) 214-mal heruntergeladen
das ist es also auch nicht ...