PDA

View Full Version : Cartella di sistema


Carmen
09-06-2006, 19:59
Ciao;

Con questo codice in VB6 mi ricavo la cartella di sistema (system/system32) di windows.

Dim sSave As String, Ret As Long
sSave = Space(255)
Ret = GetSystemDirectory(sSave, 255)
sSave = Left$(sSave, Ret)
Percorso = sSave + "\"


Avrei la necessità di fare la stessa cosa in rete lan sul pc su cui mi connetto. :help:

veneno
10-06-2006, 16:06
scusa, non riesco a capire cosa esattamente vuoi fare...
vorresti conoscere la cartella di sistema di un pc sulla tua stessa lan eseguendo il programma sul tuo pc?

71104
10-06-2006, 17:53
scusa, non riesco a capire cosa esattamente vuoi fare...
vorresti conoscere la cartella di sistema di un pc sulla tua stessa lan eseguendo il programma sul tuo pc? se è questo quello che Carmen chiede allora la cosa non è universalmente possibile. l'unica è eseguire un'altra istanza del programma sul computer remoto e mettere i due in comunicazione tramite mailslot o named pipe, che sono i due meccanismi più semplici che io conosca per comunicare via LAN tra macchine Windows (è per non farti usare i socket insomma :))

Carmen
10-06-2006, 20:35
Il mio problema principale è che la mia applicazione lavora già così, leggendo alcuni files che la stessa applicazione posiziona nella cartella di sistema.

L'applicazione client che si connette al server per prelevare i dati dal database deve anche utilizzare i files presenti nella cartella di sistema, che dal client non so come rilevarla, in quanto utilizzando il codice utilizzato mi ritorna la cartella di sistema del client.

71104
11-06-2006, 05:27
embe'? le applicazioni sono entrambe tue, no? il protocollo l'hai progettato tu, no? e allora fai in modo che sia il server ad ottenere il path della cartella e a comunicarlo al client :)
se il problema è la traduzione da path locale a UNC se vuoi posso provare a cercare tra le funzioni WNet, ricordo che ce n'era una fatta allo scopo...

Carmen
11-06-2006, 09:49
sarebbe ottimo...

71104
11-06-2006, 12:30
scusa ma ricordavo male: quella che ricordavo si chiama WNetGetUniversalName, ma serve a uno scopo leggermente diverso. ottenere il nome UNC partendo da quello locale non è semplice... parlando in generale sarebbe anzitutto necessario vedere se quel percorso è effettivamente in share, e se si allora trovare il nome della condivisione e a quale cartella corrisponde... e a complicare il tutto, all'interno del percorso potrebbero trovarsi anche più d'una cartella in share... :mc:
qua secondo me devi necessariamente fare delle assunzioni in base alla particolare configurazione su cui gireranno questi due programmi: ne puoi fare?

EDIT - esempio: se sai che il programma server girerà sempre su un computer in cui la cartella C:\Windows\ è condivisa in rete (in sola lettura spero :p) e che il nome della condivisione è "Pippo", allora fai in modo che il server restituisca al client "\\NomeServer\Pippo\System32"

Carmen
11-06-2006, 13:04
Sembra una cosa alquanto complicata. Direi di lasciar perdere. Cercherò di modificare l'applicazione per baipassare questo problema. Grazie lo stesso di tutto.