Newsgroup: it.comp.lang.visual-basic
Titolo: Una idea per un programma di gestione files/pratiche

Mi hanno chiesto da realizzare una utilità per uno studio professionale....
Questo studio ha organizzato i lavori dei propri clienti in questo modo....
Tutti i lavori dei clienti vanno su una macchina centrale in una cartella
"Lavori"
li dentro esistono delle sottocartelle organizzate secondo un codice
parlante
ad es.
AB001-ZD9000-2003
AB001=codicecliente
ZD9000=numero pratica
2003 =anno di avvio pratica
Dentro la cartella c'è un mare di roba!
Disegni, foto, promemoria, altre cartelle
Il sistema funziona....per poche pratiche...crescon le esigenze...cresce la
necessità di automatizzare...
Però non vogliono sacrificare la semplicità....
Allora avevo pensato...di concerto con loro....
Punto 1)
Ogni X minuti un programma confronta un database centralizzato con la
struttura di tutta la dir lavori...se trova file nuovi li aggiunge (se non
ne trova li toglie) dalla tabella he descrive le varie pratiche dei clienti.
Prima domanda:
con una struttura ricorsiva tiro fuori nome del file e controllo attributi
etc etc....
Non è che c'è una API che lo fa per me? Dopotutto anche windows vorrà sapere
il nome dei file di una dir no?
ok al limite guardo su allApi (questa era una domanda di pigrizia)
Punto 2)
Il programma che interroga la dir "lavori"
deve girare su Win nt Workstation il database che espone i file delle
pratiche sta sempre li e viene interrogato da 10 pc WinXP e Win98...
l'idea di farlo come "servizio" mi piace poco....non lo so fare !
rimane allora la possibilità di mandarlo in esecuzione e aspettare sigh!
Altra idea...e se invece lo mettessi in esecuzione pianificata e lo faccio
eseguire ogni 10/15 minuti?...impegnerebbe poco il server no?
Mi piacerebbe l'idea che ogni X interroga la dir e poi si auto-elimina e non
spreca risorse!
Che ne dite?
Punto 3) la vera domanda...
Questi qui voglion semplificarsi la vita...giustamente.....
L'idea di fnzionamento che piacerebbe.....
 vado in esplora risorse e mi addentro nella dir "lavori"
trovo la dir (ad esempio)
AB001-ZD9000-2003
click col destro
"Controlla Pratica"
che lancia e passa il valore "AB001-ZD9000-2003" al mio programma di
consultazione!
Siccome ho installato winzip e tutte le volte che faccio un click col desto
mi appare "aggiungi a winzip" ...c'è verso emulare questo comportamento col
vb???
O al limite col C++ (ma al limite eh!!!) ...
questo proprio non so da che parte rifarmi...casomai è una cazzata lo
so....ma non so che cercare!!!!
Thanks!!!!

 Thanks!!!!
non sono sicuro di avere capito. intendi aggiungere nel menu di
contesto una voce che lanci il tuo prog all'occorrenza ? ti fidi molto
degli addetti, vero ? comunque, se gugli tipo add context menu visual
basic, mi sembra che sia possibile.
mi piace poco comunque. imho una cosa del genere dovrebbe passarsi
_tutta_ la cartella ogni volta ( bak compresi :) , quindi essere
eseguita dal sistema, non dall'utente. a te sta farla abbastanza
leggera, mica facile...
ciao

 ciao
eh codesto non so.....!
in teoria vista che sarà una cosa abbastanza "standard" mi aspetterei
(desidererei) che mi passasse un puntatore,una struttura...un qualcosa....
col programma filtro perchè di tutto  l'ambarandan che passa mi servirebbe
solo il nome
non so (nella mia ignoranza) come dire....
una cosa del tipo
ObjectPassato.name
Sarà una battaglia di API me lo sento......per fortuna mi piace il miele
(ARGH che battutaccia!!!!)
Grazie!
p.s.
La foto di java-renna ha spopolato per le vacanze!!!!

 so....ma non so che cercare!!!!
No, sei troppo pessimista... se ho ben capito cosa vuoi fare, prova cosi'
(se non ho capito mi scuso in anticipo)...
Apri il blocco note e copi:
8<----
REGEDIT4
[HKEY_CLASSES_ROOT\Folder\shell\Cazzeggia\command]
@="explorer /E \"%L\""
8<----
e lo salvi come chiave.reg, lo unisci al registro di sistema.
Troverai una nuova voce per le directory chiamata "Cazzeggia" che richiama
il comando  explorer /E "%L"   dove %L e' la dir contestuale.

 vb???
Per cose semplici e' sufficiente aggiungere un verbo nel registro, nel tuo
caso una chiave 'HKCR\Folder\shell\Controlla Pratica\command' e, nel valore
predefinito di command, qualcosa tipo 'c:\pippo.exe "%1"'
Altrimenti devi creare una Shell Extension, trovi qualcosa su
http://www.vbbyjc.com/articles/bmphand.htm
Per quanto riguarda tutto l'insieme, potresti considerare anche un'idea
alternativa, ovvero creare un programma client simil-explorer che faccia
lavorare gli utenti cosi' come sono abituati, con file, cartelle ecc... (qui
per esempio varrebbe la pena scomodare il sempre vilipeso FileSystemObject,
che ti semplificherebbe non poco la vita... vedi anche la prima domanda) ma
che contestualmente lavori anche sul tuo database.
A questo punto non avresti problemi di servizi, server impegnato e
quant'altro, e inoltre puoi aggiungere facilmente funzionalita' avanzate,
specie a livello di interfaccia grafica, che fare invece come integrazioni
alla shell risulterebbe abbastanza ostico; per avere un'idea di quello che
ho in mente pensa all'interfaccia di programmi tipo WinAce, se l'hai
presente...
certo, c'e' sempre il problema che qualcuno potrebbe infischiarsene del tuo
programma e lavorare normalmente con la shell di Windows, ma l'utente credo
dovrebbe entrare nell'ordine di idee che che, per il risultato che vuole
ottenere, e' meglio avere un'applicativo "vero" piuttosto che lavorare a
livello di file system "rattoppato" da programmi qui e li...
Ciao
--
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

 il comando  explorer /E "%L"   dove %L e' la dir contestuale.
ah, ecco, sei tu che l'hai installato dappertutto qui da me ! :P

Smpre su  
www.planetsourcecode.com
  (che ti consiglio di consultare) trovi:
http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=33361&lngW
Id=1


www.planetsourcecode.com
  dice:
-----------------------------------
Ok, now follow this and you will have no problems open regedit browse to the
following key HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\ you should notice
that there should be a key called something like open2 with a subkey of
command. create a new 'open' key, but increment the number that follows it
... for example 'open3' or 'open4' you should now have something like this
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\open3\ Set this keys default
value to the name of the application that you want to use. for example i
will create one called 'note pad' Now create a subkey to the 'open' key that
you just created. call it 'command'. set the default value of the 'command'
key to the path and file name of the application that you want to open. you
should have something like this as the path to the key
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\open4\command\ if you want the
application to be able to recieve files ... simple place a space and '%1'
following the .exe. you should have something like this.
'c:\winnt\system32\notepad.exe %1' Close the registry, go to your desktop
and try it out !!
------------------------------------
Fammi sapere, ciao
Andrea

 che contestualmente lavori anche sul tuo database.
CUT
vero ma quello sarà un passo ulteriore...per ora voglion fare così:
Spostano copiano incollano fanno quello che cavolo li pare con i file dentro
la cartella "pratica"
...se serve...
 senza andare a spulciarsi tabelle etc etc....
vorrebbero cliccare sulla cartella col tast destro...
menu "Info pratica..." e da li si scatena il programma che mostra quante
pratiche c'ha quel cliente...quante evase e quante no...etc etc....
però non sapevo che cercare..."shell extension" ora lo so!
il programma che c'è su quel sito che mi hai consigliato....non va sotto
XP!..cmq mi sa che la strada (un po casinosa a dire il vero) è quella!
Thanks a tutti!