Newsgroup: it.comp.lang.delphi
Titolo: Avvio all'avvio di Windows

Avevo un'applicazione che dava all'utente la possibilità di scegliere se 
andasse eseguita all'avvio di Windows, e in questo caso modificava 
automaticamente il registro di Windows.
Con Windows 7 la procedura non funzionava più a causa della protezione.
Non avendo tempo di fare altro, ho sostituito l'automatismo con istruzioni 
su come inserire l'applicazione nella cartella Esecuzione automatica di 
Windows.
 
Adesso devo fare delle modifiche all'applicazione e mi chiedo se posso 
rimediare all'inconveniente sostituendo la procedura manuale con un 
automatismo simile a quello di prima, ma che non modifichi il registro con 
le relative implicazioni di sicurezza, ma si limiti a inserire un link 
all'exe dell'applicazione nella suddetta cartella Esecuzione automatica.
Avete idea di come si fa in Delphi ? 
 

 Windows.
 
Se si tratta di un problema di autorizzazione puoi sempre aggirare il 
problema andando a impostare i privilegi di amministratore al tuo programma.
Una volta settati questi privilegi, quando parte il programma, non vedrai 
piu' io messaggio che ti avvisa se il programma puo' o non puo' apportare 
modifiche.
Una strada piu' semplice e veloce e' quella di andare nelle proprieta'  del 
programma e impostare "esegui come amministratore" su true (biffato).
 
Se hai del tempo da dedicare .......... google "delphi administrator rights"
 
Ciao
 
Daniele 
 

 Avete idea di come si fa in Delphi ? 
 
Ti serve che parta automaticamente al login di un utente oppure all'avvio del
pc? Perché nel secondo caso, puoi creare un servizio
 
Enrico

"Enrico Bianchi"  ha scritto nel messaggio 
news:o04hvl$b0h$1...@virtdiesel.mng.cu.mi.it...
Ti serve che parta automaticamente al login di un utente oppure all'avvio 
del
pc? Perché nel secondo caso, puoi creare un servizio
Enrico
--
All'avvio del PC, ma non ho idea di come creare un servizio..
Ma non c'è un modo creare una link dentro la cartella Esecuzione automatica 
? 
 

Se si tratta di un problema di autorizzazione puoi sempre aggirare il
problema andando a impostare i privilegi di amministratore al tuo programma.
Se hai del tempo da dedicare .......... google "delphi administrator rights"
Daniele
--
Ma come si impostano i privilegi di amninistratore al programma (con Windows 
10) ? 
 

 Windows 10) ?
 
Temo che se non hai del tempo da dedicare non ne esci ....
Quella ricerca ti restituisce qualche centinaio di link dove, appunto, 
spiegano come si impostano  i  privilegi.
 
Ciao
 
Daniele 
 

 Ma non c'è un modo creare una link dentro la cartella Esecuzione automatica
 
Il problema di Esecuzione Automatica e` che presuppone che vi sia un utente che
abbia fatto il login, e che di conseguenza utilizzi i permessi dell'utente che
lo ha avviato. Un servizio e` indipendente da questo meccanismo perche` viene
lanciato all'avvio della macchina e puo` girare anche come SYSTEM
 
Enrico

 Ma non c'è un modo creare una link dentro la cartella Esecuzione automatica? 
 
Hai gia' cercato sui soliti siti?
 
 
A.

 Enrico
 

 automatica?
Hai gia' cercato sui soliti siti?
A.
--
Ho cercato, ma le soluzioni suggerite ruotano intorno a quella che ho 
adottato già da molto tempo, ma che con Windows 10 non mi funziona più 
 

 adottato già da molto tempo, ma che con Windows 10 non mi funziona più
 
Vai di servizio.
 
A.
 
 
 


Se non ricordo male, gia' da windows 8 la funzione della cartella Startup
e' stata deprecata e poi dismessa.
La soluzione ufficiale MS consiste nell'utilizzare il task scheduler,
che e' molto piu' potente ed affidabile del vecchio task scheduler.
 
Puoi programmare dei task che aprono delle applicazioni in automatico
al login dell'utente (quindi puoi replicare lo stesso comportamento)
 
So che e' possibile anche programmarlo tramite degli oggetti COM, ma
non so dirti di piu'.
 
ciao
Giacomo
 
 
 
 

 non so dirti di piu'.
 
Trovo surreale che a inizi secolo lo slogan di microsoft era mandare in pensione COM grazie all'avvento della "panacea" .net.
E mo torniamo a com... :-D
 
A.

 E mo torniamo a com... :-D
 
Concordo! :)
 
ciao
Giacomo

 Giacomo
 

Io personalmente uso NSSM per creare servizi per quei progetti che devono
essere avviati come tali ma non sono pensati per esserlo
Enrico
---
Ok sono andato a vedermi queste informazioni. Ho scaricato NSSM e ho creato 
un servizio del mio programma. In Windows risulta in esecuzione e quindi 
pensavo che all'avvio del PC, avviandosi il servizio, partisse il programma 
che dovrebbe segnalare le attività in scadenza. Questo non avviene però. Ho 
capito male il funzionamento del servizio ? 
 


Ah ah! Si, non hai mica tutti i torti! :)
 
Se proprio vuoi solo dati di prima mano, posso dirti che 
la mia esperienza con il task scheduler e' positiva ma limitata:
ho dei job che girano in condizioni diverse: uno tutti i giorni 
alle 13.00, uno all'avvio del sistema e uno al logon di un utente. 
Per ora mai riscontrati problemi di eventi saltati (o anche lanciati 
in ritardo) o eseguiti due volte.
 
ciao
Giacomo
 
 
 
 

 a risorse di rete.
 
Vero, ma anche questa è una casistica gestita in quanto posso definire con
quale utente il servizio può girare (locale, di dominio, SYSTEM)
 
Enrico

 capito male il funzionamento del servizio ? 
 
Di solito i servizi si usano per tre motivi:
 
 - Per raccogliere informazioni sul sistema.
 - Per eseguire task definiti durante l'esercizio del sistema.
 - Per servire informazioni all'utente tramite chiamate ben precise.
 
Tralasciando la terza categoria (che sono praticamente i servizi di server web,
database e similari), i primi due funzionano senza interazione da parte
dell'utente, pertanto sono processi sempre attivi che non comunicano mai con
l'utente se non per mezzo dell'output rilasciato. Pertanto, non è facile capire
come mai la tua applicazione non funzioni, perché non so come è fatta e non so
quali siano le variabili (intese come operazioni da effettuare) in gioco
 
Enrico

 e' stata deprecata e poi dismessa.
 
Sara' anche vecchia ed obsoleta ma non dismessa.
Io ho messo nello startup del mio pc un mio programma e funziona bene
http://www.howtogeek.com/208224/how-to-add-programs-files-and-folders-to-system-startup-in-windows-8.1/
 
 
Poi tornando al problema di stark, io ho delle serie difficolta' di 
comprensione del problema (come accade spesso).
Sposta un quesito, al quesito riceve almeno 4-5 risposte e ....... bypassa 
tutto.
 
Dato che il problema sia come avvisare l'utente di una scadenza, questo lo 
si puo' fare in tutti i modi suggeriti in questa discussione.
Non sapendo quali siano le condizioni di lavoro in cui si trovano gli 
utilizzatori del suo programma, TUTTI i gestionali che che ho visto fino ad 
ora (piccole aziende, bar, ristoranti, magazzini) danno le informazioni di 
scadenza degli effetti DOPO il login dell'operatore e SOLO se l'operatore e' 
autorizzato a vedere le scadenze (ad un operatore di sala non interessa cosa 
scade oggi).
 
Ringrazio tutti per le risposte che mi hanno insegnato qualcosa sui servizi 
(che al momento non ho mai preso in considerazione).
 
Ciao
 
Daniele
 
 
 

Tralasciando la terza categoria (che sono praticamente i servizi di server 
web,
database e similari), i primi due funzionano senza interazione da parte
dell'utente, pertanto sono processi sempre attivi che non comunicano mai con
l'utente se non per mezzo dell'output rilasciato. Pertanto, non è facile 
capire
come mai la tua applicazione non funzioni, perché non so come è fatta e non 
so
quali siano le variabili (intese come operazioni da effettuare) in gioco
Enrico
--
Quando lancio l'exe, già nella unit 'project' c'è una proc che verifica se 
sono maturate certe scadenze rispetto alla data corrente, nel qual caso 
dovrebbe proseguire con l'apertura di una finestra dove queste scadenze sono 
segnalate. In caso contrario, l'applicazione termina e l'utente non si 
accorge di nulla.
Scadenze da segnalare ce ne sarebbero. Infatti ho provato a lanciarla 
manualmente e ne ha segnalate. Invece come servizio appare in 'esecuzione', 
ma quando ho acceso il pc non mi ha segnalato niente.
 

 ma quando ho acceso il pc non mi ha segnalato niente.
 
Direi che sia corretto, il tuo è un applicativo che prevede una iterazione
utente, ovvero non può essere avviato come servizio. Prova ad usare il sistema
dei task come ti è stato suggerito in un altra parte del post
 
Enrico