#1 12. November 2005 Hey, ich hab da ein problem und zwar habe ich einen Button ="Einlesen". Dann hab ich noch eine listbox in der alle benutzer die im netzwerk sind angezeigt werden sollen - wenn man auf den button klickt....hoffe ich konnte euch das einigermassen erklären und ihr habt des soweit verstanden und könnt mir da HELFEN - WÄRE ECHT NETT + Multi-Zitat Zitieren
#2 12. November 2005 Wie Was Warum.... ?( Musst schon genau erkären was du willst -> da steckt ja noch nicht mal ne Frage drin Willste wissen wie man die Netzwerkuser in die Box bringt oder wie man das Einlesen macht oder ?( ?( ?( :] + Multi-Zitat Zitieren
#3 12. November 2005 Jo genau du hast es erkannt: Ich möchte in einer ListBox alle User die im Netzwerk online sind ausgeben. Doch wie funktioniert das? + Multi-Zitat Zitieren
#4 13. November 2005 du könntest ja dazu schreiben welchen compiler du benutzt, falls du den borland c++builder benutzt hier n snippet is etwas länger geworden, aber ist ja auch ne tolle sache die du da machen willst gecoded für: ListBox1 am besten nich einfach kopieren und einfügen ... schau dir den quelltext erstmal an, und besonders die kommentare Code: BOOL WINAPI EnumerateFunc(LPNETRESOURCE lpnr) // AUF KEINEN FALL IN DEN HEADER EINTRAGEN { DWORD dwResult, dwResultEnum; HANDLE hEnum; DWORD cbBuffer = 16384; // 16K sollte als buffer ausreichen DWORD cEntries = -1; // alle möglichen ergebnisse auflisten LPNETRESOURCE lpnrLocal; DWORD i; dwResult = WNetOpenEnum(RESOURCE_GLOBALNET, // alle netzwerke RESOURCETYPE_ANY, // alle resourcen 0, lpnr, &hEnum); // handle der resource if (dwResult != 0 /*NO_ERROR*/) { if (dwResult == 50) return false; } lpnrLocal = (LPNETRESOURCE) GlobalAlloc(GPTR, cbBuffer); do { ZeroMemory(lpnrLocal, cbBuffer); dwResultEnum = WNetEnumResource(hEnum, // resource-handle &cEntries, // lokal mit -1 definiert lpnrLocal, // LPNETRESOURCE &cbBuffer); // buffer-größe if (dwResultEnum == NO_ERROR) { for(i = 0; i < cEntries; i++) { Form1->DisplayStruct(&lpnrLocal[i]); if(RESOURCEUSAGE_CONTAINER == (lpnrLocal[i].dwUsage & RESOURCEUSAGE_CONTAINER)) EnumerateFunc(&lpnrLocal[i]); } } else if (dwResultEnum != ERROR_NO_MORE_ITEMS) { return false; } } while(dwResultEnum != ERROR_NO_MORE_ITEMS); GlobalFree((HGLOBAL)lpnrLocal); dwResult = WNetCloseEnum(hEnum); if(dwResult != NO_ERROR) { throw Exception (AnsiString("WNetCloseEnum ") + SysErrorMessage(dwResult)); } return TRUE; } //--------------------------------------------------------------------------- void __fastcall TForm1::DisplayStruct(LPNETRESOURCE NetResource) // AUF JEDEN FALL IN DEN HEADER EINTRAGEN { if (NetResource->dwDisplayType == RESOURCEDISPLAYTYPE_SERVER) { if (ListBox1->Items->Strings[0]=="please wait ...") { ListBox1->Clear(); ListBox1->Font->Color=clWindowText; // löscht die graue formatierung und den "please wait"-text } if (ListBox2->Items->IndexOf(NetResource->lpRemoteName) < 0) ListBox2->Items->AddObject(NetResource->lpRemoteName, (TObject*)RESOURCEDISPLAYTYPE_SERVER); // trägt jede einzelne Domaine in die ListBox1 ein } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { ListBox1->Clear(); Button1->Visible=false; EnumerateFunc(NULL); ListBox1->Font->Color=StringToColor(AnsiString(0x006E6E6E)); // trägt eigendlich nur zur schönheit bei, der text im listbox wird grau, so lange er nix findet (dauert teilweise etwas lange) ListBox1->Items->Add("please wait ..."); } //--------------------------------------------------------------------------- + Multi-Zitat Zitieren