Guten Abend,
schon länger habe ich den Gedanken im Kopf, mir ein kleines Tool zu schreiben das für mein WebDav ein Lokales Laufwerk (kein Netzwekordner) erstellt.
Beschäftigt habe ich mich mit Netzwerk-/Web Programmierung bisher wenig, fast gar nicht, bis auf Links aufrufen, bissel Browserkram.
Neugierig wie ich bin, fragte ich einfach mal ChatPGT wie das geht
.
Ich habe eigentlich nicht viel erwartet. ChatPGT hat mir aber Code präsentiert, den ich für schlüssig hielt. Wohl weil ich 95% davon eh nicht verstehe.
Ich kopierte den Code nach Delphi und Überraschung, er "funktionierte".
Also nicht ganz. Es gab keine Errors, das Kompilieren lief problemlos durch. Nur ohne Ergebnis. Es wird kein Laufwerk erstellt, einfach nichts.
Ist der Code von ChatPGT komplett strubbelig aber kompilierbar? Veräppelt ChatPGT mich und der Code bezweckt etwas ganz anderes?
Wäre der Code voller Fehler, hätte es mich nicht gewundert. Das er problemlos kompiliert schon.
Delphi-Quellcode:
unit Unit1;
interface
uses
Winapi.Windows,
Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs,
Vcl.StdCtrls;
const
CONNECT_INTERACTIVE = $00000008;
CONNECT_PROMPT = $00000010;
CONNECT_REDIRECT = $00000080;
CONNECT_UPDATE_PROFILE = $00000001;
RESOURCETYPE_DISK = $00000001;
type
TForm1 =
class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
function WNetAddConnection2A(lpNetResource: PNetResourceA;
lpPassword: PChar; lpUserName: PChar; dwFlags: DWORD): DWORD;
stdcall;
external '
mpr.dll'
name '
WNetAddConnection2A';
function MapWebDAV(
const RemotePath, LocalDrive:
string;
const UserName, Password:
string): Boolean;
var
NetResource: TNetResourceA;
Drive: Char;
begin
Drive := LocalDrive[1];
FillChar(NetResource, SizeOf(NetResource), 0);
with NetResource
do
begin
dwType := RESOURCETYPE_DISK;
lpRemoteName := PAnsiChar(RemotePath);
lpLocalName := PAnsiChar(Drive + '
:');
lpComment :=
nil;
lpProvider :=
nil;
end;
Result := WNetAddConnection2A(@NetResource, PChar(Password),
PChar(UserName), CONNECT_INTERACTIVE
or CONNECT_PROMPT
or
CONNECT_UPDATE_PROFILE) = NO_ERROR;
end;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
MapWebDAV('
https://nx34493.your-storageshare.de/remote.php/dav/files/Andreas/', '
Z:', '
User', '
PW');
end;
end.