比如,c:\tmp文件夹,被共享为Share1;如何根据“Share1”,获取它的本地路径值“c:\tmp”。
只需取本机的共享即可,就像“我的电脑/管理/共享文件夹”中列举的一样。我现在通过WNetOpenEnum,能够正常取得lpRemoteName,但是lpLocalName始终为nil。
只需取本机的共享即可,就像“我的电脑/管理/共享文件夹”中列举的一样。我现在通过WNetOpenEnum,能够正常取得lpRemoteName,但是lpLocalName始终为nil。
解决方案 »
- 关于showmodal的问题,请帮忙看哈子`
- 我做一个文件备份软件,客户端做好了,我想再做一个服务端来监视多个客户端是否在运行,应从那些方面入手呢?
- 论如何缩小系统的大小
- 我的DELPHI软件的问题
- 一个时间操作的问题?
- 菜鸟问题,DELPHI6中怎么实现分行输入语句啊?不能直接按回车
- win2000的IE临时文件、Cookies、历史记录和C:\winnt\temp里的东西都在注册表中的什么地方呀?
- 一个简单的问题
- 怎么使用EXE文件的参数
- 听说,Inprise 将不会继续支持Delphi 不知是真是假
- delphi 有没有像PB里面Tabular一样的控件?
- 如何以流方式在这个记录集结构中加上参数对文件进行操作
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
PShare_Info_2 = ^TSHARE_INFO_2;
TSHARE_INFO_2 = record
shi2_netname: PWideChar;
shi2_type: DWORD;
shi2_re: PWideChar;
shi2_permissions: DWORD;
shi2_max_uses: DWORD;
shi2_current_uses: DWORD;
shi2_path: PWideChar;
shi2_passwd: PWideChar;
End; type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}
function NetShareGetInfo(ServerName : PWideChar; NetName : PWideChar; ShareLevel : DWORD;var Buffer : Pointer) : Integer;stdcall;external 'netapi32.dll';
procedure TForm1.Button1Click(Sender: TObject);
var
ShInfo: PShare_Info_2;
lError: DWord;
shareName:PWideChar;
shareNames:PWideChar;
begin
new(ShInfo);
shareName:='test';
shareNames:=shareName;
lError :=NetSharegetInfo(nil,shareNames,2,Pointer(ShInfo));
showmessage(inttostr(lError));
showmessage(WideCharToString(ShInfo.shi2_path));
end;
end.
获取本机共享目录的信息
shareName:='test';你可以在任意一个分区创建一个test的共享文件夹,都可以取到它的路径
但是dispose(ShInfo)始终提示:Invalid Pointer Operation.
为什么,怎么办?
Dispose(Data)相当于释放4个字节(Pointer类型)
Dispose(PRECA(Data))则释放16个字节(TRect类型)