Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    [C++] aprire una directory di rete protetta da password

    Salve a tutti,
    ho bisogno di un programmino che mi apra nell'explorer di windows una directory di rete, nessun problema sino a qui...
    ho scritto questo codice che funziona perfettamente:

    codice:
    #include <iostream>
    #include <windows.h>
    #include <string>
    using namespace std;
    
    int main(){
        string cartella = "\\\\storage\\documenti";
        // ShellExecute ha come valore di ritorno un intero
        // se questo valore è maggiore di 32 la funzione è stata eseguita con succeso
        int x = int( ShellExecute(NULL, "open", &cartella[0], NULL, NULL, SW_SHOWNORMAL) );
        // gestisco i casi in cui la funzione fallisce,
        // quindi i casi in cui x sia minore o uguale di 32
        if(x <= 32){
            cout<<"Errore\n";
            system("pause");
            return 1;
        }
        // se arrivo qui x è maggiore di 32
        return 0;
    }
    il problema nasce se per accedere alla cartella è neccessaria l'autenticazione.
    infatti si apre l'explorer e devo inserire nome utente e password.

    Come posso evitarlo?
    Posso passare alla ShellExecute nome utente e passoword?
    oppure esiste un altra funzione per far questo?

    Grazie mille

  2. #2
    Puoi autenticare un PC per una share SMB usando la API NetUseAdd (includi lm.h).
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    ciao,
    grazie della risposta!
    chiedo troppo se ti chiedo un piccolo esempio?
    grazie cmq
    Ste

  4. #4
    Salve,
    ho fatto qualche prova con la funzione NetUseAdd...
    ma non riesco a risolve...

    Rispiego meglio il mio problema:
    - ho una storage di rete collegato ad una rete...
    - in questa rete son collegati un bel po' di pc...
    - per poter entrare nello storage da un qualsiasi pc devo andare su risorse di rete cliccare sull'icona dello storage e mettere nomeutente e password.
    - nomeutente e password son dello storage e son uguali per ogni pc della rete.

    Quello che voglio riuscire a creare è un piccolo eseguibile
    che semplicemente mi apra direttamente la cartella.
    Voglio che:
    - trovi la cartella
    - esegua l'autenticazione
    - mi apra la cartella nell'explorer.

    per far ciò la funzione NetUseAdd è adatta?
    Se è quella giusta come mi comporto?
    eseguo NetUseAdd e poi apro la cartella con ShellExecute??

    Grazie per ogni risposta
    Saluti Stefano

  5. #5
    Ho lì pronto del codice che usa NetUserAdd per fare qualcosa di simile a quello che vuoi fare tu, ma devo riadattarlo e adesso non ho tempo; magari vedo se questa sera prima di uscire faccio in tempo a postartelo, se no cerco di postarlo domani.
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6

    grazie mille del disturbo.

  7. #7
    Una curiosità mi assale nel frattempo che aspetto il tuo codice...
    La prima volta mi ha suggerito la NetUseAdd, la seconda volta la NetUserAdd.
    Quale delle due è quella corretta per il mio caso?

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Da MSDN

    NetUseAdd Function
    The NetUseAdd function establishes a connection between the local computer and a remote server

    NetUserAdd Function
    The NetUserAdd function adds a user account and assigns a password and privilege level.

    ... secondo te, qual e' quella piu' probabile, a giudicare dalla descrizione di quello che fanno ...?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    direi la prima...
    ma io nn son riuscito a risolve....

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Giusto ... pero', al posto della NetUseAdd, con un sistema a 32 bit, userei la API

    WNetAddConnection2
    http://msdn.microsoft.com/en-us/libr...13(VS.85).aspx

    Ecco un esempio (in cui fare le modifiche per la password)

    http://msdn.microsoft.com/en-us/libr...24(VS.85).aspx

    e un altro (con password e drive locale)

    http://msdn.microsoft.com/en-us/libr...27(VS.85).aspx
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.