AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi [gelöst] Code 67 beim Verbinden eines Netzlaufwerkes
Thema durchsuchen
Ansicht
Themen-Optionen

[gelöst] Code 67 beim Verbinden eines Netzlaufwerkes

Ein Thema von Klaus01 · begonnen am 17. Jan 2006 · letzter Beitrag vom 17. Jan 2006
 
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.761 Beiträge
 
Delphi 10.4 Sydney
 
#1

[gelöst] Code 67 beim Verbinden eines Netzlaufwerkes

  Alt 17. Jan 2006, 15:50
Hallo,

ich versuche mich gerade an einer Consolenanwendung.
Aus diversen Codeschnipseln habe ich das untenstehende zusammengesetzt.

Das Programm soll einen freien Laufwerksbuchstaben finden (das tut es auch) und
auf diesen Laufwerksbuchstaben ein Netzlaufwerk verbinden ein Programm ausführen
und danach das Laufwerk wieder trennen.

Problem ist, bei dem Versuch das Laufwerk anzubinden bekomme ich folgende Fehlermeldung:

D:\development\Delphi6\Projects\mountTool>netInsta ll
Exception EOSError in module mapfree.exe at 0000ACAA.
System Error. Code: 67.
Der Netzwerkname wurde nicht gefunden.

Nun, nach langem Suchen bin ich nicht fündig geworden wo das Problem liegt.
Ich kann von der Kommandozeile (DosBox) das Laufwerk mit den Parametern verbinden.
Es hilft auch nichts den Rechnernamen mit der IPAdresse auszutauchen.

Vielleicht was ja jemand von Euch einen Rat.

Grüße
Klaus

Delphi-Quellcode:
program netInstall;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  windows,
  shellAPI,Dialogs;



function DriveExists(DriveByte: Byte): Boolean;
begin
  Result := GetLogicalDrives and (1 shl DriveByte) <> 0;
end;

function DriveType(DriveByte: Byte): String;
begin
  case GetDriveType(PChar(Chr(DriveByte + Ord('A')) + ':\')) of
    DRIVE_UNKNOWN: Result := 'unbekannt';
    DRIVE_NO_ROOT_DIR: Result := 'Laufwerk existiert nicht';
    DRIVE_REMOVABLE: Result := 'Wechselmedium';
    DRIVE_FIXED: Result := 'Festplatte';
    DRIVE_REMOTE: Result := 'Netzwerk';
    DRIVE_CDROM: Result := 'CD-ROM/DVD';
    DRIVE_RAMDISK: Result := 'RAM Disk';
  else
    Result := 'anderer Laufwerkstyp';
  end;
end;

function ConnectNetworkDrive(const ADrive: String;
  const ADirectory, AUsername, APassword: String;
  const ARestoreAtLogon: Boolean ): Boolean;
var
  NetResource: TNetResource;
  dwFlags: DWORD;
  lPwd, lUser: PChar;
begin
  NetResource.dwType:=RESOURCETYPE_DISK;
  NetResource.lpLocalName:=PChar(ADrive);
  NetResource.lpRemoteName:=PChar(ADirectory);
  NetResource.lpProvider:=nil;

  if ARestoreAtLogon then
    dwFlags:=CONNECT_UPDATE_PROFILE
  else
    dwFlags:=0;

  if AUsername<>'then
    lUser:=PChar(AUsername)
  else
    lUser:=nil;

  if APassword<>'then
    lPwd:=PChar(APassword)
  else
    lPwd:=nil;

  Result:=WNetAddConnection2(NetResource,
                             lPwd,
                             lUser,
                             dwFlags)=NO_ERROR;
end;





VAR
  i:Byte;
  found: Boolean;
  drives: Array[1..26] of char;

  freeDrive:String;

begin
  // init array
  FOR i:=1 TO 26 DO
    drives[i]:=' ';

  //mark any entry within the array which have a drive
  FOR i:=1 TO 26 DO
    begin
      if driveExists(i) THEN
        drives[(i + Ord('A')-ORD('A'))]:='x';
    end;

   // search for an available drive letter
   i:=1;
   found := false;
   REPEAT
     found := drives[i] = ' ';
     inc(i)
   until (i > 26) OR found;

   freeDrive:=lowerCase(chr(ord('A')+i-1))+':';

   // map network drive to available drive letter
   if ConnectNetworkDrive(freeDrive,' \\mhhb2kpc.mchh1.siemens.de\TMSetup',' /user:mhhb2kpc.mchh1.siemens.de\TMSetup ',' @siemens01 ',false) then
     WriteLn('Networkdrive connected')
   else
     begin
       RaiseLastOSError;
     end;

   IF fileExists(freedrive+'\test\project1.exe') THEN
     BEGIN
       WinExec(PChar(freedrive+'\test\project1.exe'),sw_show);
     END;
   // remove mapped network drive
   shellexecute(0,'open','net',PChar('use '+freedrive+' /delete'),nil,sw_hide);

  { TODO -oUser -cConsole Main : Insert code here }
end.
Klaus
  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 08:57 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