Il linguaggio di programmazione Delphi
 

Avvio all'avvio di Windows

Stark 10 Nov 2016 16:34
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 *******
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 ?
Daniele 11 Nov 2016 11:24
Ciao,
premetto che non ho mai avuto la necessita' di fare degli autostart,
nell'unica occasione ho fatto come te ovvero mettere il programma nella
cartella avvio.

> 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 *******
> Non avendo tempo di fare altro, ho sostituito l'automatismo con istruzioni
> su come inserire l'applicazione nella cartella Esecuzione automatica di
> 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
Enrico Bianchi 11 Nov 2016 14:44
On 2016-11-10, Stark <starkwedderr@gmail.com> wrote:

> 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
Stark 11 Nov 2016 14:52
"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
?
Stark 11 Nov 2016 14:58
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) ?
Daniele 11 Nov 2016 15:11
Ciao,

>> Se hai del tempo da dedicare .......... google "delphi administrator
>> rights"

> Ma come si impostano i privilegi di amninistratore al programma (con
> 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
Enrico Bianchi 13 Nov 2016 16:06
On 2016-11-11, Stark <starkwedderr@gmail.com> wrote:

> All'avvio del PC, ma non ho idea di come creare un servizio..

Puoi partire da qua:
http://stackoverflow.com/questions/3582108/create-windows-service-from-executable
Io personalmente uso NSSM per creare servizi per quei progetti che devono
essere avviati come tali ma non sono pensati per esserlo

> 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
Alberto Salvati 14 Nov 2016 09:19
> All'avvio del PC, ma non ho idea di come creare un servizio..

Nessuno nasce avendo idea di come creare un servizio.
L'unico modo di arrivare alla seconda volta è passare per la prima.
E il web SE NE CADE di esempi di come farlo.

Aggiungo che, si, magari non è facile (ma cosa lo è nel nostro lavoro??), ma
almeno non hai le rogne legate al progettare una interfaccia utente a prova di
Boldrini/Razzi/Boschi...

> Ma non c'è un modo creare una link dentro la cartella Esecuzione automatica?

Hai gia' cercato sui soliti siti?


A.
Alberto Salvati 14 Nov 2016 09:23
> Io personalmente uso NSSM per creare servizi per quei progetti che devono
> essere avviati come tali ma non sono pensati per esserlo

E' una soluzione della quale si parla molto poco e che personalmente non ho mai
usato. Cosa succede se l'applicazione prevede molta interfaccia utente?
Funziona, si in*****a o che altro?


> Un servizio e` indipendente da questo meccanismo perche` viene
> lanciato all'avvio della macchina e puo` girare anche come SYSTEM

Preciso ma incompleto...non è da te ! :-D
Il pezzo che manca è questo:

Essendo l'utente system un utente locale e non di dominio, occorre PENSARE a
come gestire l'eventuale esigenza da parte del servizio di avere accesso a
risorse di rete.

A.

>
> Enrico
Stark 14 Nov 2016 14:09
"Alberto Salvati" ha scritto nel messaggio
news:6d18de94-e6eb-4fc4-8937-6bb340458600@googlegroups.com...
> Ma non c'è un modo creare una link dentro la cartella Esecuzione
> 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ù
Alberto Salvati 14 Nov 2016 14:25
> 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ù

Vai di servizio.

A.
Giacomo Degli Esposti 14 Nov 2016 14:34
On Monday, November 14, 2016 at 2:09:28 PM UTC+1, Stark wrote:
> "Alberto Salvati" ha scritto nel messaggio
> news:6d18de94-e6eb-4fc4-8937-6bb340458600@googlegroups.com...
>> Ma non c'è un modo creare una link dentro la cartella Esecuzione
>> 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ù

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
Alberto Salvati 14 Nov 2016 14:43
> La soluzione ufficiale MS consiste nell'utilizzare il task scheduler,
> che e' molto piu' potente ed affidabile del vecchio task scheduler.

In base a cosa dici questo?

> So che e' possibile anche programmarlo tramite degli oggetti COM, ma
> 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.
Giacomo Degli Esposti 14 Nov 2016 14:55
On Monday, November 14, 2016 at 2:43:39 PM UTC+1, Alberto Salvati wrote:
>> La soluzione ufficiale MS consiste nell'utilizzare il task scheduler,
>> che e' molto piu' potente ed affidabile del vecchio task scheduler.
>
> In base a cosa dici questo?

Confesso! Non in base a esperienza mia diretta! :)
Ho sentito alcuni pareri da clienti e conoscenti che lo usano
quotidianamente senza avere avuto problemi che invece uscivano
con le vecchie versioni (tipicamente eventi saltati)

>> So che e' possibile anche programmarlo tramite degli oggetti COM, ma
>> 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

Concordo! :)

ciao
Giacomo
Alberto Salvati 14 Nov 2016 15:06
> Confesso! Non in base a esperienza mia diretta! :)
> Ho sentito alcuni pareri da clienti e conoscenti che lo usano
> quotidianamente senza avere avuto problemi che invece uscivano
> con le vecchie versioni (tipicamente eventi saltati)

Non è per mettere in dubbio ciò che scrivi, ma oramai, salvo poche eccezioni,
non mi fido e credo solo a quello che vedo di persona.


A.









>
> ciao
> Giacomo
Stark 14 Nov 2016 20:25
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 ?
Giacomo Degli Esposti 14 Nov 2016 21:03
On Monday, November 14, 2016 at 3:06:34 PM UTC+1, Alberto Salvati wrote:
>> Confesso! Non in base a esperienza mia diretta! :)
>> Ho sentito alcuni pareri da clienti e conoscenti che lo usano
>> quotidianamente senza avere avuto problemi che invece uscivano
>> con le vecchie versioni (tipicamente eventi saltati)
>
> Non è per mettere in dubbio ciò che scrivi, ma oramai, salvo poche
eccezioni, non mi fido e credo solo a quello che vedo di persona.

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 ******* 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
Enrico Bianchi 14 Nov 2016 21:40
On 2016-11-14, Alberto Salvati <zzzato@gmail.com> wrote:

> E' una soluzione della quale si parla molto poco e che personalmente non ho
> mai usato. Cosa succede se l'applicazione prevede molta interfaccia utente?

Sono due tipologie di applicazioni differenti. Per fare un esempio, stiamo
parlando della differenza tra SQL Server e SSMS (SQL Server Management Stu*****)

> Essendo l'utente system un utente locale e non di dominio, occorre PENSARE
> a come gestire l'eventuale esigenza da parte del servizio di avere accesso
> 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
Enrico Bianchi 14 Nov 2016 22:42
On 2016-11-14, Stark <starkwedderr@gmail.com> wrote:

> Ho
> 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
Daniele 15 Nov 2016 13:15
Ciao,

> Se non ricordo male, gia' da windows 8 la funzione della cartella Startup
> 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
Stark 15 Nov 2016 14:13
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.
Enrico Bianchi 15 Nov 2016 22:11
On 2016-11-15, Stark <starkwedderr@gmail.com> wrote:

> Invece come servizio appare in 'esecuzione',
> 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

Links
Giochi online
Dizionario sinonimi
Leggi e codici
Ricette
Testi
Webmatica
Hosting gratis
   
 

Il linguaggio di programmazione Delphi | Tutti i gruppi | it.comp.lang.delphi | Notizie e discussioni delphi | Delphi Mobile | Servizio di consultazione news.