AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi versteckte freigaben finden
Thema durchsuchen
Ansicht
Themen-Optionen

versteckte freigaben finden

Ein Thema von MacBones · begonnen am 30. Jan 2006 · letzter Beitrag vom 20. Feb 2006
Antwort Antwort
Seite 2 von 3     12 3      
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: versteckte freigaben finden

  Alt 3. Feb 2006, 20:42
Moin MacBones,

Rückgabewert ist das, was die Funktion zurückgibt

Probier's mal so (auszugsweise):

Delphi-Quellcode:
var
  dwResult : DWORD;

  dwResult := NetShareEnum('MACBONES',.....);
  if dwResult <> NERR_SUCCESS then begin
    ShowMessage(SysErrorMessage(dwResult));
  end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
MacBones

Registriert seit: 30. Jan 2006
28 Beiträge
 
#12

Re: versteckte freigaben finden

  Alt 3. Feb 2006, 22:37
Danke, habs probiert und dann schreibt er:
"Für das Unicode-Zeichen ist kein zugeordnetes Zeichen in der Mehrbytecodepage vorhanden"

Muss ich da was konvertieren ('MACBONES') oder was soll das heißen ?
  Mit Zitat antworten Zitat
MacBones

Registriert seit: 30. Jan 2006
28 Beiträge
 
#13

Re: versteckte freigaben finden

  Alt 6. Feb 2006, 14:33
Hab schon vieles versucht, aber ich weiß echt nicht weiter, kommt und sagt es mir, was ich da machen muss. Mich verwirrt das alles zuviel mit dem Unicode zeug.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: versteckte freigaben finden

  Alt 6. Feb 2006, 21:40
Moin MacBones,

da ich so Dein Problem nicht reproduzieren kann, könnte es vielleicht helfen, wenn Du einmal genau schreibst, wie Du das Aufrufst, und wie die Deklarationen aussehen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
MacBones

Registriert seit: 30. Jan 2006
28 Beiträge
 
#15

Re: versteckte freigaben finden

  Alt 6. Feb 2006, 22:23
Hab da halt die JEDI runtergeladen und eingebunden, hab ich hier irgendwo bei im Forum gefunden, als ich die Suche verwendet hab.
Also die auferufene Function lautet:
Delphi-Quellcode:
function NetShareEnum(servername: LPTSTR; level: DWORD; var butptr: Pointer;
  prefmaxlen: DWORD; var entriesread: DWORD; var totalentries: DWORD;
  resume_handle: PDWORD): Integer; stdcall; external 'netapi32.dll';
Der aufruf lautet wie folgt:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  shareBuffer: PSHARE_INFO_502;
  s2: TShareInfo502Array;
  dwRead, dwEntries: Cardinal;
  i: Integer;
  server: LPTSTR;
begin
listbox1.Clear;
server:= nil;

  NetShareEnum(server, 502, Pointer(shareBuffer), DWORD(-1), dwRead, dwEntries, nil);
  s2 := TShareInfo502Array(shareBuffer);
  for i := 0 to dwRead - 1 do begin
    listbox1.Items.Add(s2[i].shi502_netname);
  end;
end;
Das wars im Prinzip.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: versteckte freigaben finden

  Alt 6. Feb 2006, 23:04
Moin MacBones,

deklariere doch einmal die Variable Server als WideString und übergebe dass dann so @Server[1].
Das geht natürlich nur, wenn die Variable nicht leer ist. Den Sonderfall müsstest Du dann getrennt betrachten, oder mit PWideChar arbeiten.
Im letzteren Falle könntest Du das so machen:

Delphi-Quellcode:
var
  pwcServer : PWideChar;
  sServer : string; // Soll hier nur als Beispiel für einen "normalen" string stehen
  dwLen : DWORD;

begin
  sServer := 'MacBones';
  dwLen := (length(sServer)+1) shl 2; // +1 für das abschliessende #00#00, mal 2 für 2 Byte je Zeichen
  GetMem(pwcServer,dwLen); // Platz reservieren
  try
    StringToWideChar(sServer,pwcServer,dwLen);
    if NetShareEnum(pwcServer,.....) <> NERR_SUCCESS then exit;
    try
    finally
      NetApiBufferFree(....);
    end;
  finally
    FreeMem(pwcServer,dwLen); // Platz wieder freigeben
  end;
Das dürfte auch die flexiblere Variante sein, da Du auch einen Leerstring erfolgreich als eigenen Rechner einsetzen kannst.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
MacBones

Registriert seit: 30. Jan 2006
28 Beiträge
 
#17

Re: versteckte freigaben finden

  Alt 8. Feb 2006, 21:04
ok das funktioniert... aber nur wenn ich entweder meinen eigen PC reinschreibe oder gar keinen also ''. Nach wie vor zeigt der Code also nur meine eigenen freigaben an und nicht die meines 2. Rechners 'Pentium_III', oder kann Delphi mit solchen Netzwerknamen nichts anfangen ?
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: versteckte freigaben finden

  Alt 8. Feb 2006, 21:21
Moin MacBones,

wenn Du den Rechner so nennen kannst, sollte auch die API da mitspielen, es wäre in jedem Falle kein Delphi-Problem.

Bekommst du, z.B., das Laufwerk C: als Exploreransicht angezeigt, wenn Du unter Start\Ausführen mal \\Pentium_III\C$ eingibst?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
MacBones

Registriert seit: 30. Jan 2006
28 Beiträge
 
#19

Re: versteckte freigaben finden

  Alt 9. Feb 2006, 15:59
verdammt, nein das geht nicht, da kommt son dialog wo man sich anmelden muss. wie kann ich das mit Delphi umgehen?
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#20

Re: versteckte freigaben finden

  Alt 9. Feb 2006, 19:20
Moin MacBones,

wenn Du einen Account hast, mit dem Du auf den anderen Rechner zugreifen darfst, und der administrative Rechte auf dem anderen Rechner hat, solltest Du hier mal nach Hier im Forum suchenLogonUser suchen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz