grazie, ora ti spiego meglio, forse esiste una soluzione migliore.

io ho la necessità di impedire l'accesso ad alcune funzioni (per funzione intendo un modulo, come ad es. gestione magazzino) del programma se c'è già un utente che le sta utilizzando.
Fino ad adesso utilizzo un file ini in cui metto un flag per indicare se la funzione è disponibile o no e quando ci entro blocco il flag.
Il problema è che se per qualche motivo si blocca l'applicazione resta il flag attivo e quindi nessuno può entrare nella funzione.

Io utilizzo i dbf, dovrei usare qualcosa di più robusto ma deve essere pianificato con calma il porting.

Ritornando al problema, ho provato ad aprire una tabella fittizia in modo esclusivo (abbolendo il file ini) ma se l'applicazione viene terminata in modo anomalo il problema del blocco rimane fino a quando non si riavvia il pc o si fa una ricostruzione archivi.

La cosa migliore sarebbe quella di prevedere le possibili anomalie e proteggerle, ma la cosa non è semplice in quando i problemi vengono da degli eseguibili dos di cui non ne sono proprietario.

Pensavo ai semafori ipotizzando che nel momento in cui l'applicazione si chiude questi vengano automaticamente distrutti, quindi in teoria si risolve automaticamente tutto.

Considera che il mio programma viene utilizzato in rete quindi i "semafori" dovrebbero essere visibili anche dai clients.

Grazie per la pasienza.

Se non mi sono spiegato bene... cercherò di spiegarmi meglio.