ÄúÏÖÔÚµÄλÖÃÊÇ£º Èí¼þ > ¿ª·¢ÕßÍøÂç > ÕýÎÄ
¡¤ËٳɵçÄÔ¾«Ó¢£¨°ü·ÖÅ䣩°×Áì¸ßнһ×å´ÓÕâÀ↑ʼ



-JavaÌ×½Ó×Ö±à³Ì£¨Ï£©
-MediaStudio Pro 6.5½Ì³Ì
-Èý¿îÐ¶ÔØÈí¼þ×îÐÂÊÔÓÃ
-»ùÓÚVisual C++µÄWinsock APIÑо¿

ÓÃDelphiʵÏÖÍøÂçÇý¶¯Æ÷µÄÓ³ÉäºÍ¶Ï¿ª
2000-07-04¡¤ ¡¤-¡¤¡¤-

p>´ó¼ÒÔÚÔËÓÃDelphi±àÐ´ÍøÂçÓ¦ÓóÌÐòʱ¿ÉÄÜ»áÓöµ½ÕâÑùÒ»¸öÎÊÌ⣺ÔÚÒ»¸öÓÉWindows NTºÍNovell Netware×é³ÉµÄÍøÂç»·¾³ÖУ¬Ó¦ÓóÌÐòÐèҪʹÓÃNovellÍøÉϵÄijЩÊý¾Ý£¬Èç¹ûÿ´Î¶¼ÊÖ¹¤ÔÚWindows×ÊÔ´¹ÜÀíÆ÷ÖÐÓ³É䣬¶Ï¿ªÍøÂçÇý¶¯Æ÷£¬²»½ö·±Ëö¶øÇÒÏԵò»¹»×¨Òµ¡£±¾ÎĽ«½éÉÜÔÚDelphiÖÐʹÓÃWindows32 APIº¯Êý½â¾öÕâÒ»ÎÊÌâ¡£

Ò»¡¢ »ù±¾Ô­Àí

ÔÚMicrosoft Windows»·¾³Ï£¬Ó¦ÓóÌÐòʹÓÃWindowsÍøÂ纯Êý£¨WNet£©À´ÊµÏÖÍøÂ繦Äܶø²»ÓùØÐÄÍøÂçµÄ¹©Ó¦É̼°¾ßÌåʵÏÖ¡£ÒòΪWNetº¯ÊýÊǶÀÁ¢ÓÚÍøÂçµÄ¡£

Wnetº¯ÊýÖ÷ÒªÓУºWnetAddConnection , WnetAddConnection2 , WnetAddConnection3 , WnetCancelConnection2µÈ¡£±¾ÎÄÖ÷ÒªÓÃWnetAddConnection2£¬WnetCancelConnection2º¯Êý£¬ÏÂÃæ¼òµ¥½éÉÜһϣ¬¹ØÓÚWNetº¯Êý¸üÏêϸµÄ×ÊÁÏÇë²Î¿¼DelphiµÄÁ¬»úÎĵµºÍMicrosoft APIº¯Êý˵¡£

WNetAddConnection2ÔÚWindows.pasÖеĺ¯ÊýÔ­ÐÍÈçÏ£º


function WNetAddConnection2
(var lpNetResource: TNetResource;
lpPassword, lpUserName: PChar; dwFlags: 
DWORD): DWORD; stdcall;

Ϊµ÷Óô˺¯Êý±ØÐëÌîд
lpNetResouce½á¹¹£¬´Ë½á¹¹µÄ¶¨ÒåΪ£º
typedef struct _NETRESOUCE{
 DWORD dwScope; 
 DWORD dwType; 
 DWORD dwDisplayType;
 DWORD dwUsage;
 LPTSTR lpLocalName;
 LPTSR lpRemoteName;
 LPTSr lpProvider;
} NETRESOURCE; 
ÕâÀïʹÓÃdwType,lpLocalName,lpRemoteName,
lpProvider¼¸¸ö²ÎÊý¡£Æäº¬ÒåÈçÏ£º
dwType : ÓÃÓÚÖ¸¶¨ÍøÂçµÄ×ÊÔ´ÀàÐÍ£¬
ÓÐÒÔÏÂRESOURCETYPE_ANY(ÈκÎ×ÊÔ´) , 
 RESOURCETYPE_DISK(´ÅÅÌ×ÊÔ´) ,
 RESOURCETYPE_PRINT£¨´òÓ¡»ú×ÊÔ´£©¡£
lpLocalName : Ö¸¶¨±¾µØÉ豸¡£
lpRemoteName : Ö¸¶¨Ô¶³ÌÍøÂçÃû¡£
lpProvider : Ö¸¶¨Ìá¹©ÍøÂç×ÊÔ´µÄ¹©Ó¦ÉÌ¡£
ÈçΪ¿Õ£¬Ôò±íʾ¹©Ó¦ÉÌδ֪¡£
WNetAddConnection2º¯ÊýµÄ
lpPasswordΪԶ³Ì×ÊÔ´µÄ¿ÚÁî¡£
 lpUserNameΪԶ³Ì×ÊÔ´µÄÓû§Ãû¡£
dwFlags±ê־λÓÃÓÚÖ¸¶¨µÇ¼ʱÊÇ·ñÖØÐÂÁ¬½Ó
£¨0ʱ±íʾ²»ÖØÐÂÁ¬½Ó£¬CCONNECT_UPDATE_
PROFILEµÇÂ¼Ê±ÖØÐÂÁ¬½Ó£©¡£
WnetCancelConnection2ÔÚWindows.pas
Öеĺ¯ÊýÔ­ÐÍÈçÏ£º
function WNetCancelConnection2
(lpName: PChar; dwFlags: DWORD; fForce: BOOL): 
DWORD; stdcall;
lpName : Òª¶Ï¿ªµÄ   ÌÍøÂç×ÊÔ´»ò±¾µØÖض¨ÏòÇý¶¯Æ÷¡£
dwFlags : º¬ÒåͬÉÏ¡£
fForce : True±íʾ²»¹ÜÊÇ·ñÓÐÎļþ´ò¿ª£¬
Ç¿ÖÆÐÔ¶Ï¿ªÍøÂçÇý¶¯Æ÷£»False ±íʾÈçÓÐÎÄ
 ¼þ´ò¿ªÔòº¯ÊýÔËÐÐʧ°Ü¡£

¶þ¡¢ÊµÀý

ÔÚDelphiµÄFile²Ëµ¥ÏÂÑ¡ÔñNew Application£¬ÔÚForm1ÉÏ·ÅÖÃÒ»¸öButton£¬ÔÚButton1µÄClickʼþÖмüÈëÈçÏ´úÂ룺

procedure TForm1.Button1Click
(Sender : TObject);
var
 NetSource : TNetResource;
begin
 with NetSource do
 begin
 dwType := RESOURCETYPE_ANY;
lpLocalName := X:; 
// ½«Ô¶³Ì×ÊÔ´Ó³Éäµ½´ËÇý¶¯Æ÷
lpRemoteName := \\hqServer\sys; 
// Ô¶³ÌÍøÂç×ÊÔ´
lpProvider := ; // ±ØÐ븳ֵ,
ÈçΪ¿ÕÔòʹÓÃlpRemoteNameµÄÖµ¡£
 end;
 WnetAddConnection2(NetSource, Password, Guest, 
 //Óû§ÃûΪGuest£¬¿ÚÁîΪPassword
CONNECT_UPDATE_PROFILE); 
//Ï´εÇÂ¼Ê±ÖØÐÂÁ¬½Ó
//´ËʱÔÚWindows×ÊÔ´¹ÜÀíÆ÷Öпɿ´µ½ÍøÂçÇý¶¯Æ÷X£º
if MessageDlg(Are you sure to disconnect Drive ?,
mtConfirmation, [mbYes, mbNo], 0) = mrYes then 
//²»¹ÜÊÇ·ñÓÐÎļþ´ò¿ª£¬¶Ï¿ªÍøÂçÇý¶¯Æ÷X£º
 WNetCancelConnection2
( X:, CONNECT_UPDATE_PROFILE, True); 
end;
end;
±¾³ÌÐòÔÚDelphi3.0,4.0¡¢PWindows95¡¢Novell Netware 3.12ϱàÒëÔËÐÐͨ¹ý¡£
¡ö Ïà¹ØÄÚÈÝ
¡¡¿ØÖÆDelphiµÄ´°¿ÚÏÔʾλÖÃ
¡¡ÎÞ±êÌâÀ¸´°¿Ú³ÌÐòÉè¼ÆÖÐÊó±êÍ϶¯¼¼ÇÉ
¡¡½¨ Á¢ Ó¦ Óà Èí ¼þ ×¢ ²á °² È« »ú ÖÆ
¡¡DelphiÖеÄINIÎļþ±à³Ì
¡¡²ÉÓöàÏ߳̽øÐÐÊý¾Ý²É¼¯
¡¡Èí¼þÖи´»î½Ú²Êµ°µÄʵÏÖ
¡¡ÓÃDelphiʵÏÖ½ûÖ¹Óû§¹Ø±ÕWindow9X
¡¡ÔÚDELPHI³ÌÐòÖж¯Ì¬ÉèÖÃODBCÊý¾ÝÔ´
¡¡ÔõÑùÔÚTDatasetÖкºÓ¢»ìÓÃ
¸Ðл ·ÃÎÊÌì¼«Íø£¬Èç¹ûÄú¾õµÃ¸ÃÎÄÕÂÉæ¼°°æÈ¨ÎÊÌ⣬Çë¿´ÕâÀ