Avatar billede lolle Nybegynder
15. maj 2001 - 19:34 Der er 15 kommentarer og
1 løsning

LAN Search

Er den nogen som kan hjælpe mig med at lave et program som kan søge et LAN igennem for en fil man har skrevet ind i en Edit. Hvis filen eller filerne er fundet skal den listes i en colunmlist!

jeg har lavet lidt (interface osv.) men er gået i stå da jeg ikke kan finde ud af det med netværk!

jeg har været inde på de forskellige sider hvor der er tips om netværk osv.. men jeg kan ikke finde ud af det!

Er der nogen som vil hjælpe?

I kan hente det interface som jeg har lavet her: http://www.lolleguy.subnet.dk/SearchLAN.zip

Der er en tekst fil i zippen hvor der står noget om hvordan jeg havde tænkt mig det skulle virke.
Avatar billede makse Nybegynder
15. maj 2001 - 23:00 #1
Tag en kig på www.borrisholt.com - File IO - File Search.
Avatar billede afshin Nybegynder
15. maj 2001 - 23:55 #2
Du behøver ikke bekymre dig om at du befinder dig et et LAN, Kender du drevnavnene så brug dem som om de var lokale drev på din egen maskine..

Så laver du en standard søgning som du ville gøre for lokale drev.

/Afshin
Avatar billede TRoXa Novice
16. maj 2001 - 08:20 #3
afshin, det var jo nok ikke lige det han ville.. han vil ud på netværket, finde hver eneste maskine, og hver maskine skal søges igennem for shares, og de skal igen søges igennem for 1 bestemt fil ... han vil jo ikke sidde og mappe 2000 forskellige shares :)

Jeg prøver at finde ud af det :)

mvh
TRoXa
Avatar billede lolle Nybegynder
16. maj 2001 - 11:56 #4
troxa -> ja det er lige det jeg mener!

Det skal så selvføljelig også kunne downloade de filer den har fundet!
Avatar billede borrisholt Novice
16. maj 2001 - 12:06 #5
lolle >> du er ikke glemt ... Der går lige lidt tid (det bliver nok ikke idag) så har jeg en løsning klar ...

Jens B http://fotx.net/borrisholt
Avatar billede lolle Nybegynder
16. maj 2001 - 12:23 #6
borrisholt -> OK tak håber det blir godt ;)
Avatar billede megalas Nybegynder
16. maj 2001 - 14:15 #7
Er den nogen der kan sige mig hvor jeg kan finde nogle tutorials der omhandler delphi og LAN\'s?
Avatar billede borrisholt Novice
16. maj 2001 - 14:20 #8
megalas>> Jeg har lidt på http://borisholt.com

Eller så \"Søg og du skal finde\" eller på orginal sprogrt : \"Seek and Ye Shall find\".

Jens B http://fotx.net/borrisholt
Avatar billede cc1960 Nybegynder
17. maj 2001 - 13:06 #9
Hej.

Denne stump kode skulle vist klare dit problem.

cc.


unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

var
    Level: Integer;

procedure Info(S:String);
var
    I: Integer;
begin
    for I := 1 to Level do S := \' \'+S;
    Form1.Memo1.Lines.Append(S);
end;

function EnumerateFunc(lpnr:PNetResource): Boolean;
var
    dwResult, dwResultEnum: DWORD;
    hEnum: THANDLE;
    cEntries: DWORD;
const
    cbBuffer: DWORD = 16384;      // 16K is a good size
type
    TNetResourceList = Array[0..1000] of TNetResource;
    PNetResourceList =^TNetResourceList;
var
    lpnrLocal: PNetResourceList;
    i:DWORD;
begin
    Result := true;
    dwResult := WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_DISK,0,lpnr,hEnum);
    if (dwResult <> NO_ERROR) then
    begin
        Info(\'Error: WNetOpenEnum\');
        Result := FALSE;
    end else try
        lpnrLocal := PNetResourceList(GlobalAlloc(GPTR, cbBuffer));
        try
            Inc(Level);
            cEntries := DWORD(-1);
            repeat
                ZeroMemory(lpnrLocal, cbBuffer);
                dwResultEnum := WNetEnumResource(hEnum,      // resource handle
                                                cEntries,  // defined locally as -1
                                                lpnrLocal,  // LPNETRESOURCE
                                                cbBuffer); // buffer size
                if (dwResultEnum = NO_ERROR) then
                begin
                    if cEntries >0 then for i := 0 to Pred(cEntries) do
                    begin
                        Info(\'RemoteName:\'+lpnrLocal[i].lpRemoteName);
                        if RESOURCEUSAGE_CONTAINER = (lpnrLocal[i].dwUsage and RESOURCEUSAGE_CONTAINER) then
                        begin
                            if not EnumerateFunc(@lpnrLocal[i]) then
                            begin
                                Info(\'Error:EnumerateFunc returned FALSE\');
                            end;
                        end;
                    end;
                end else if (dwResultEnum <> ERROR_NO_MORE_ITEMS) then
                begin
                    Info(\'Error:WNetEnumResource\');
                    break;
                end;
            until (dwResultEnum = ERROR_NO_MORE_ITEMS) or (cEntries=0);
            Dec(Level);
        finally
            GlobalFree(HGLOBAL(lpnrLocal));
        end;
    finally
        dwResult := WNetCloseEnum(hEnum);

        if(dwResult <> NO_ERROR) then
        begin
            Info(\'Error:WNetCloseEnum\');
            Result := false;
        end;
    end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
    Level := 0;
    EnumerateFunc(nil);
end;

end.
Avatar billede cc1960 Nybegynder
17. maj 2001 - 18:24 #10
Får man ikke at vide hvorfor det er blevet afvist?

Jeg er måske lidt naiv!!!

Nå men til alle andre som skal bruge denne funktionalitet - her er koden.

cc
Avatar billede borrisholt Novice
18. maj 2001 - 12:25 #11
cc1960 >>
Jeg kan kun gætte på hvorfor. Men hvis det var mig der trykkede på knapperene så var

Grunden til du blev afvist var at du ikke svarede på spørgsmålet. Det kode du viser giver alle shared folders i et næt vært. Det er rigtigt det er grundstammen i løsningen, men der skal mere til. Udover det skal der søges i alle de funde bibloteker.

Endeligt hvis det skal virke skal det hele smides i tråde. Elleres blokerer du hele dit os i en 1/2 time.

Jens B
Avatar billede cc1960 Nybegynder
18. maj 2001 - 12:56 #12
lolle skriver:

\"men er gået i stå da jeg ikke kan finde ud af det med netværk!\"

Så jeg troede at det var hans eneste problem.

Jeg regnede med at han godt kunne skrive alt det andet slavekode.

Applicationen omkring må han da selv kunne skrive, eller skulle spørgsmålet jo være stillet på en lidt anden måde.

eks.

\"Skriv en application der kan finde en liste filer i hele nætværket.\"

cc
Avatar billede lolle Nybegynder
19. maj 2001 - 14:19 #13
cc1960 -> Fordi jeg ikke havde svaret, var fordi at den computer jeg sad ved ikke gad og opdatere side! Så jeg lukkede bare ie og ville vente med at svare lidt senere. Men så var Eksperten nede og jeg kunne ikke komme ind igen!

Du kan nok ha ret i at jeg nok skulle havde lavet spm\'et på en lidt anden måde end lige det jeg skrev!

Jeg kunne ikke bruge dit svar fordi den ikke lige gør det som jeg skulle bruge det til! Den finder alle shared folders, det er jo også det jeg skal bruge på en eller andet måde, men jeg jeg kan ikke finde ud af hvordan den så skal kunne søge det igennem for filer!

borrisholt -> I ka kalde mig en newbie hvis i vil men hva er tråde og hvordan er det de skal laves? jeg er kun begyndt med Delphi fordi jeg fik det i Alt om Data (Delphi 4) bladet. Der synes jeg det var sjovt at lave nogle små programmer!
Avatar billede lolle Nybegynder
31. juli 2001 - 23:42 #14
lukker!!
Avatar billede hermandsen Juniormester
19. marts 2002 - 13:47 #15
Hey cc1960!

Fandt lige jeres spørgsmål! Ville bare lige takke for den gode kode! Lige hvad jeg stod og manglede til et projekt! :)
Det virker bare!!! :)
Avatar billede cc1960 Nybegynder
20. marts 2002 - 21:16 #16
Hey hermandsen

Det var så lidt.
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