2012-04-12 76 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