2012-04-12 49 views
0

innosetupインストールからネットワーク共有フォルダを作成することはできますか?インストール中にInno Setupを使用してフォルダを共有する

権限とすべてがありますか?

私のアプリケーションでは、クライアントネットワーク内の2つの共有フォルダを使用しています。誰でもそれらのフォルダに対して読み取り/書き込みができる必要があります。

私は手動で行うのを避けるために、セットアップでこれを作成するのが好きです。 それは可能ですか?

答えて

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、関連する例は見つかりません。これを行う方法に関するアイデアやリンクがあれば幸いです。 –

+0

@RRUZこのコードは、読み取り権限で作成します。どのようにして読み書きを設定できますか? – syloc

+0

同じWMIクラスの 'SetShareInfo'メソッドを使用する必要があります。 – RRUZ

関連する問題