|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Versilia
Messaggi: 569
|
Eprire cartella condivisa con password...
Da programma ho bisogno di aprire una cartella condivisa in rete... ed il PC che la ospita mi chiede utente e password.
Disolito per aprire cartelle ecc uso la semplicissima ShellExecute. C'è un modo con questa funzione di passate utente e password? Non ho trovato esempi in rete... Grazie a tutti! |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ci sono Api per montare una cartella condivisa su una lettera di unità (ovviamente cartella condivisa con username e password)...devo solo ritrovarle (spero di farcela entro stasera)...
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2006
Messaggi: 2722
|
C'è un insieme di funzioni per gestire condivisioni remote...
Devi prima autenticarti, con la ShellExecute() non vai lontano. Dai un'occhiata alle funzioni Net* : http://msdn.microsoft.com/library/de..._functions.asp EDIT: cambiato il link EDIT2: Ad esempio, comincia a guardare le funzioni NetUse*, come ad esempio NetUseAdd().
__________________
- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale. - A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson Ultima modifica di -fidel- : 24-10-2006 alle 11:56. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Sono quelle che ho usato anche io
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Esempio:
Codice:
#define _WIN32_WINNT 0x0400
#define STRICT
#include <windows.h>
#include <Lm.h>
int main (int argc, char *argv[])
{
USE_INFO_2 useInfo2;
NET_API_STATUS status;
DWORD dwParmError;
WCHAR szPassword[128];
lstrcpyW (szPassword, L"password");
ZeroMemory (&useInfo2, sizeof (USE_INFO_2));
useInfo2.ui2_local = NULL;
useInfo2.ui2_remote = L"server_remoto";
useInfo2.ui2_username = L"nome_utente";
useInfo2.ui2_password = szPassword;
useInfo2.ui2_asg_type = USE_WILDCARD;
status = NetUseAdd (NULL, 2, (LPBYTE) &useInfo2, &dwParmError);
return 0;
}
Notare le stringhe in Unicode.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Jan 2006
Messaggi: 2722
|
Quote:
__________________
- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale. - A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson |
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
L'unica cosa che non ho capito è perché nel mio esempio non posso mettere la stringa della password direttamente come literal.
useInfo2.ui2_password = L"password"; Così in questo modo avviene una violazione di accesso, sembra che la NetUseAdd cerchi di scriverci sopra. Ecco perché ho usato un buffer per la password.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Versilia
Messaggi: 569
|
Mi fate godere....
Riamngo sempre sbalordito da quanto mi potete essere utili! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:10.











Ecco perché ho usato un buffer per la password.








