【问题标题】:How to get the property value in the installshield 2019 which is set by c++ dll SetMsiProperty api?如何获取由 c++ dll SetMsiProperty api 设置的 installshield 2019 中的属性值?
【发布时间】:2020-05-19 07:10:22
【问题描述】:

我正在使用 installshield 2019 专业版。 我想验证用户提供的用户名/密码。我在 c++ dll 中编写了一个自定义操作,并使用 SetMsiProperty 方法设置了一个属性。 现在,我试图在条件中使用该属性值来产生对话。但是在安装程序中我无法获得该属性。 这样做的方法是一样的吗?请帮忙。

提前致谢。

【问题讨论】:

    标签: c++ installshield custom-action


    【解决方案1】:

    通常在运行时获取密码并将其存储在属性中是不好的形式。如果您记录您的安装,然后搜索该属性或密码值,您会在日志中以 day 形式看到它。安全性差!

    要真正回答您的问题相当容易,尤其是如果您对 .Net 有任何经验。由于您使用的是 SetMsiProperty,您能猜出答案吗?尝试查找 GetMsiProperty。

    有时 MS 会将其更改为 MsiGetProperty

    【讨论】:

    • 我正在使用 c++ dll 代码,它正在验证用户名/密码并尝试将结果“true”/“false”设置为 msi 属性 VALID_USER_PASS。在那里我使用了 SetMsiProperty,但在 installshield 中,它再次无法获取 VALID_USER_PASS 属性值。
    • 到目前为止你尝试过什么?当您获取该属性时,您是否能够看到它为字符串检索的内容?
    • 1.在 c++ dll 2 中编写了一个自定义操作。此自定义操作从属性中获取用户名、域和密码。 3. 使用 LogonUser API 验证并返回布尔结果 true/false。 4. 现在基于该结果,我尝试使用 SetMsiProperty 方法设置 msi 属性。将属性 VALIDUSERNAMEPASSWORD 设置为“true”或“false”。 5. 在下一个按钮行为中添加了一个条件,如果 VALIDUSERNAMEPASSWORD = "true" 它将转到下一页,否则它将弹出错误对话框。所以在这里我没有得到 VALIDUSER.... installshiled 中的属性值。
    猜你喜欢
    • 1970-01-01
    • 2019-05-09
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    相关资源
    最近更新 更多