Avatar billede dj Nybegynder
26. februar 2001 - 10:05 Der er 5 kommentarer og
1 løsning

Windows Network - Shared Folders

Hejsa

Tjah .. jeg er løbet ind i lidt af et problem, jeg skal finde ud hvilke mapper en maskine på netværket har udbudt.

Dvs. jeg skal bruge en procedure noget lignende

Procedure GetSharedFolders(User: String; Folders: Tstrings);

Håber der er nogen der kan hjælpe.

Mvh. _DJ_
Avatar billede borrisholt Novice
26. februar 2001 - 10:07 #1
Hejsa

http://borrisholt.com kan du downloade et eksemple der viser dig hvordan du gøre

Jens B
Avatar billede dj Nybegynder
26. februar 2001 - 10:09 #2
hehe jeg vidste jeg skulle have kigget din side igennem først :P

nåh.. jeg ser lige på det, om det er det jeg skal bruge :)
Avatar billede dj Nybegynder
26. februar 2001 - 10:43 #3
Det ser jo ganske fornuftigt ud, bortset fra at jeg ikke har arbejdet ret meget med TTreeList.

Hvis jeg nu har et netværk der ser sådan her ud:

\\
- Workgroup
  - \\\\_DJ_
    - \\\\_DJ_\\Upload

Hvordan kan jeg så vide at \\\\_DJ_\\Upload hører til under _DJ_ som igen hører til under Workgroup?
Er der en eller anden form for GetParentNode eller noget ? :)

Mvh.
_DJ_
Avatar billede borrisholt Novice
26. februar 2001 - 11:00 #4
Hej _DC_

Du kan naturligvis benytte sig af GetParentNode ... Ellers står det jo allerede i din streng :
\\\\_DJ_\\Upload

\\\\ betyder nu kommer der et computer navn ....



Hvis du skal bruge det som tekst og ikke i et træ så prøv den her :

procedure EnumRemoteDrives(Items: TStrings);
    Function EnumerateFunc(lpnr: PNetResource; Items: TStrings; DrillDepth: Integer):  Boolean;
      var
      lpnrLocal: PNetResource;
      hEnum    : THandle;
      dwResult, dwResultEnum, cbBuffer, cEntries: DWORD;
      i:    Integer;
      p1:  PChar;
      p2:  pNetResource;
      s, t: String;

      begin
        dwResult := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK, 0, lpnr, hEnum);
        if dwResult <> NO_ERROR then
        begin
          EnumerateFunc := False;
          exit;
        end;
        cbBuffer := 32768;
        cEntries := $FFFFFFFF;
        lpnrLocal := PNetResource(GlobalAlloc(GPTR,cbBuffer));
        repeat
          dwResultEnum := WNetEnumResource(hEnum, cEntries, lpnrLocal, cbBuffer);
          if dwResultEnum = NO_ERROR then
            begin
              for i := 0 to cEntries - 1 do
                begin
                  p1 := PChar(lpnrLocal) + i * SizeOf(TNetResource);
                  p2 := PNetResource(p1);
                  s := StrPas(p2^.lpRemoteName);

                  if Length(s) > 2 then
                    if (s[1] = \'\\\') and (s[2] = \'\\\') then
                      begin
                        t := Copy(s, 3, Length(s) - 2);
                        if Pos(\'\\\', t) <> 0 then
                        Items.Add(s);
                      end;

                  if (p2.dwUsage and RESOURCEUSAGE_CONTAINER) =RESOURCEUSAGE_CONTAINER then
                    if DrillDepth < 3 then
                      EnumerateFunc(p2, Items, DrillDepth + 1);
                end;
          end;
        until dwResultEnum = ERROR_NO_MORE_ITEMS;
        GlobalFree(HGLOBAL(lpnrLocal));
        dwResult := WNetCloseEnum(hEnum);

        if dwResult <> NO_ERROR then
        begin
          EnumerateFunc := False;
          exit;
        end;
       
        EnumerateFunc := True;
      end;
begin
EnumerateFunc(nil, Items, 0);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  EnumRemoteDrives(Memo1.Lines);
end;


Jens B
Avatar billede dj Nybegynder
26. februar 2001 - 11:15 #5
ahh.. det var jo meget bedrer, resten skal jeg nok finde ud af at tilpasse :)

Tak for hjælpen

mvh. _DJ_
Avatar billede dj Nybegynder
13. marts 2001 - 20:19 #6
Borrisholt>> Kan du hjælpe mig lidt med den her: http://www.eksperten.dk/spm/56211

Det er lidt en \"udvidelse\" eller rettere indskrænkning af ovenstående function :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester