Ordner Freigabe



  • Hi Leute!

    Ich hab mal eine Frage...
    Und zwar wollte ich mal wissen, wie man im Netzwerk (nicht Internet) einen Ordner freigibt???

    mfG Quarki

    THx!



  • Dieser Thread wurde von Moderator/in Jansen aus dem Forum VCL/CLX (Borland C++ Builder) in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • NetShareAdd



  • Danke



  • Ich bekomme das nur leider nicht so ganz hin!
    Mein Code:

    #include <stdio.h>
    #include <windows.h>
    #include <lm.h>
    
     NET_API_STATUS res;
       SHARE_INFO_2 p;
       DWORD parm_err = 0;
    
     p.shi2_netname = TEXT("TESTSHARE");
          p.shi2_type = STYPE_DISKTREE; // disk drive
          p.shi2_remark = TEXT("TESTSHARE to test NetShareAdd");
          p.shi2_permissions = 0;
          p.shi2_max_uses = 4;
          p.shi2_current_uses = 0;
          p.shi2_path = TEXT("C:\\");
          p.shi2_passwd = NULL; // no password
    
           res=NetShareAdd("\\ADRINO\\", 2, (LPBYTE) &p, &parm_err);
           if(res==0)
           Label1->Caption = "Kein Fehler!";
    

    Nun Will mein Kompiler nicht char * sondern w_char *!!!
    Also nicht 'p.shi2_path = TEXT("C:\");', sondern 'p.shi2_path = L"C:\";'

    Wenn ich das jetzt bei allen durchführe, dann läuft alles aber meine Platte C wird NICHT freigegeben!!

    Hier Der Code nach der Durchführung:

    #include <stdio.h>
    #include <windows.h>
    #include <lm.h>   
    
    NET_API_STATUS res;
       SHARE_INFO_2 p;
       DWORD parm_err = 0;
    
     p.shi2_netname = L"TESTSHARE";
          p.shi2_type = STYPE_DISKTREE; // disk drive
          p.shi2_remark = L"TESTSHARE to test NetShareAdd";
          p.shi2_permissions = 0;
          p.shi2_max_uses = 4;
          p.shi2_current_uses = 0;
          p.shi2_path = L"C:\\";
          p.shi2_passwd = NULL; // no password
    
           res=NetShareAdd(L"\\ADRINO\\", 2, (LPBYTE) &p, &parm_err);
           if(res==0)
           Label1->Caption = "Kein Fehler!";
    

    ADRINO = Mein Computername!!

    Bitte um Hilfe!



  • Hat sich alles erledigt hab es selber herausgefunden trotzdem danke!



  • Und wie bitte hast du es jetzt gemacht?



  • String a;
    wchar_t b[MAX_PATH], c[MAX_PATH], d[MAX_PATH];
    DWORD parm_err = 0;
    
    a="C";
    a.WideChar(b, MAX_PATH);
    a="platte";
    a.WideChar(c, MAX_PATH);
    a="C:\\";
    a.WideChar(d, MAX_PATH);
    
    SHARE_INFO_2	shareinfo;
    shareinfo.shi2_netname = b;
    shareinfo.shi2_type = STYPE_DISKTREE;
    shareinfo.shi2_remark = c;
    shareinfo.shi2_max_uses = -1;
    shareinfo.shi2_current_uses = 0;
    shareinfo.shi2_path = d;
    shareinfo.shi2_permissions = ACCESS_ALL;
    NetShareAdd(NULL, 2, (LPBYTE) &shareinfo, &parm_err);
    

Log in to reply