【问题标题】:Share a folder during installation using Inno Setup在安装过程中使用 Inno Setup 共享文件夹
【发布时间】:2012-04-12 14:37:10
【问题描述】:

是否可以从 innosetup 安装创建网络共享文件夹?

有权限吗?

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

我喜欢在设置中创建它,以避免手动进行。 有可能吗?

【问题讨论】:

    标签: networking inno-setup shared-directory


    【解决方案1】:

    您可以使用 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 的读/写公共共享,但我找不到任何相关示例。任何有关如何执行此操作的想法或链接将不胜感激。
    • @RRUZ 此代码使用读取权限创建它。我们如何设置读写?
    • 您必须使用同一个 WMI 类的SetShareInfo 方法。
    • 您知道共享现有文件夹(而不是创建新文件夹)的方法吗?
    猜你喜欢
    • 2019-04-15
    • 1970-01-01
    • 2013-03-14
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多