在使用Inno Setup安装期间共享文件夹
问题描述:
是否可以通过innosetup安装创建网络共享文件夹?在使用Inno Setup安装期间共享文件夹
有权限和所有?
我的应用程序在客户端网络中使用2个共享文件夹,每个人都必须能够读/写这些文件夹。
我喜欢在设置中创建它,以避免手动执行此操作。 IT可能吗?
答
您可以使用Win32_Share类的Create
方法。
试试这个样本
Const
FILE_SHARE = 0;
MAXIMUM_CONNECTIONS = 25;
function CreateShared(const Path, Name, Description : string):Integer;
var
FSWbemLocator: Variant;
FWMIService : Variant;
FWbemObjectSet: Variant;
begin
FSWbemLocator := CreateOleObject('WBEMScripting.SWBEMLocator');
FWMIService := FSWbemLocator.ConnectServer('', 'root\CIMV2', '', '');
FWbemObjectSet := FWMIService.Get('Win32_Share');
Result:=FWbemObjectSet.Create(Path, Name, FILE_SHARE, MAXIMUM_CONNECTIONS, Description);
end;
并以这种方式
Err:= CreateShared('C:\Foo', 'MyShare','This is a public shared folder'); //0 indicates Success
感谢你为这个代码,这是有帮助的使用,但我还需要创建一个读/写公众股,这似乎需要一个Win32_SecurityDescriptor,我找不到任何相关的例子。任何想法或链接如何做到这一点将不胜感激。 – 2012-08-06 20:09:29
@RRUZ此代码使用读取权限创建它。我们如何设置读写? – syloc 2014-09-03 16:05:42
您必须使用相同WMI类的'SetShareInfo'方法。 – RRUZ 2014-09-03 16:40:16