2012-04-12 213 views
0

是否可以通过innosetup安装创建网络共享文件夹?在使用Inno Setup安装期间共享文件夹

有权限和所有?

我的应用程序在客户端网络中使用2个共享文件夹,每个人都必须能够读/写这些文件夹。

我喜欢在设置中创建它,以避免手动执行此操作。 IT可能吗?

回答

3

您可以使用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 
+0

感谢你为这个代码,这是有帮助的使用,但我还需要创建一个读/写公众股,这似乎需要一个Win32_SecurityDescriptor,我找不到任何相关的例子。任何想法或链接如何做到这一点将不胜感激。 – 2012-08-06 20:09:29

+0

@RRUZ此代码使用读取权限创建它。我们如何设置读写? – syloc 2014-09-03 16:05:42

+0

您必须使用相同WMI类的'SetShareInfo'方法。 – RRUZ 2014-09-03 16:40:16

相关问题