AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Freigabe unter Windows erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

Freigabe unter Windows erstellen

Ein Thema von Captnemo · begonnen am 28. Aug 2003 · letzter Beitrag vom 30. Aug 2003
 
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#1

Freigabe unter Windows erstellen

  Alt 28. Aug 2003, 07:45
Hi,

ich habe den Thread weiter unten über das auflisten der Freigaben gelesen. War sehr aufschlußreich.
Da ich in einem Programm eine Freigabe selbst machen will, habe ich mir die Jedi-Libary herunter geladen und mit mal dran gemacht.

Ich komme damit aber nicht richtig klar.

folgendes habe ich ausprobiert:
Delphi-Quellcode:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, ShellApi, LmShare, LmAccess;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    ProgressBar1: TProgressBar;
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

const
  NERR_Success = 0;
  MAX_PREFERRED_LENGTH = DWORD(-1);

type
  NET_API_STATUS = type DWORD;

  PSHARE_INFO_0 = ^SHARE_INFO_0;
  SHARE_INFO_0 =
    packed record
      shi0_netname : PWChar;
    end;

type
  PSHARE_INFO_2 =^SHARE_INFO_2;
  SHARE_INFO_2 = packed record
     shi2_netname : PWChar;
     shi2_type : Dword;
     shi2_remark : PWChar;
     shi_permissions : DWord;
     shi2_max_uses : DWord;
     shi2_current_uses : DWord;
     shi2_path : PWChar;
     shi2_passwd : PWChar;
end;

var
  reg: TRegistry;
  buffer1, buffer2, buffer3: array [1..32] of Char;
  i: Integer;
  ipaddress, subnetmask, DefaultGateway: string;
  Adapter, Adapter_Key: string;
  stringlist: TStrings;

implementation

uses ipadresse;

{$R *.dfm}

function NetApiBufferFree(
    const Buffer : Pointer
    ) : NET_API_STATUS; stdcall; external 'netapi32.dll';


function NetShareEnum(
    const servername : PWChar;
    const level : DWord;
    const bufptr : Pointer;
    const prefmaxlen : DWord;
    const entriesread : PDWord;
    const totalentries : PDWord;
    const resume_handle : PDWord
    ) : NET_API_STATUS; stdcall; external 'netapi32.dll';

procedure TForm1.Button3Click(Sender: TObject);
var
  si2Work : PSHARE_INFO_2;
  si2Save : PSHARE_INFO_2;
  dwEntriesRead : DWORD;
  dwTotalEntries : DWORD;
  i : DWORD;
begin
  if NetShareEnum(nil,2,@si2Work,MAX_PREFERRED_LENGTH,@dwEntriesRead,@dwTotalEntries,nil) <> Nerr_Success then exit;
  try
    si2Save := si2Work;
    for i := 1 to dwEntriesRead do
    begin
      if si2Save.shi2_type = STYPE_DISKTREE then
           memo1.lines.Add(si2Save.shi2_netname);
      inc(si2Save);
    end;
  finally
    NetApiBufferFree(si2Work);
  end;
end;

procedure TForm1.Button4Click(Sender: TObject);
var
 share: PSHARE_INFO_2;
 err: DWord;
begin
     Share.shi2_netname:='SBK';
     share.shi2_type:=STYPE_DISKTREE;
     share.shi_permissions:=ACCESS_ALL;
     share.shi2_path:='c:\\mysql';
     NetShareAdd('',2,@Share,@err);
     ShowMessage(Inttostr(err));
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
     Application.Terminate;
end;

end.
Die Funktion für das Auflisten (Button3Click) habe ich dem Thread entnommen. Das funktioniert auch.
Aber bei der Funktion zum Freigeben (Button4Click) bekomme ich immer eine Zugriffsverletzung, und das schon beim ersten zugriff auf Share.shi2_netname.

Kann mir einer von euch weiterhelfen?
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
 


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:50 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