首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将参数传递给CustomAction并使用返回值

将参数传递给CustomAction并使用返回值
EN

Stack Overflow用户
提问于 2011-11-03 06:00:10
回答 2查看 5.8K关注 0票数 2

有没有办法将数据传递给(托管的、C#的) CustomAction?优选地,使用会话对象的CustomActionData集合。我还想在UI控件部分中使用CustomAction的返回值。

更具体地说,我希望允许用户指定用户名和密码,我正在安装的服务将在该用户名和密码下运行。因此,我创建了一个对话框,当用户单击Next时,我希望启动一个自定义操作来检查凭据是否有效。如果帐户存在,则自定义操作将返回Success,如果帐户不存在,则返回其他值(最好是NotExecuted或SkipRemainingActions,但将接受失败)。然后,在(wxs)对话框中,如果自定义操作返回成功,只需转到下一个对话框(按照安装顺序)。如果该操作返回备用值(NotExecuted),则会出现一个SpawnDialog,告诉用户帐户无法验证,但如果他们愿意,可以使用yes或no按钮继续操作。

如果有人能解释一下用Wix做这件事的最好方法,那就太好了。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-08 01:17:43

考虑到windows installer UI的局限性,我决定采用一种稍微不同的方法。我现在启用/禁用Next按钮,这取决于基本字段输入是否有效,即如果Username字段为空,则该按钮被禁用。我使用(C#) CustomAction验证用户帐户是否存在,方法是通过属性传递用户名/密码,并在另一个属性中返回结果。回到安装程序UI中,如果帐户无效,则会出现一个消息框。

我还提供了一个复选框,允许用户忽略帐户检查并继续操作。

我是从https://geekproject.com/post/wix-service-account-dialog/那里得到这个想法的

请参见下图。

票数 6
EN

Stack Overflow用户

发布于 2011-11-04 08:40:40

Windows Installer并不真正通过C#自定义操作来支持此功能。

WiX工具集提供了对从C#访问安装程序属性的支持,但它确实有一些限制。另外,我不认为你可以用它来控制自定义操作返回代码。

所以最好的解决方案仍然是一个接收安装句柄的win32 DLL:http://www.codeproject.com/KB/install/msicustomaction.aspx

这样,您就可以使用Windows Installer API读取和设置属性:

创建自定义操作后,您可以使用installer属性而不是返回代码来调节下一个对话框:

  • condition向下一个dialog
  • condition显示消息框自定义操作的

控件事件,该操作通知用户无法继续的原因或其选项为

这里有一篇更详细的文章:http://setupanddeployment.com/installation-user-interface/validate-user-input-installation/

这种方法可以防止用户继续处理无效数据,但可以很容易地为用户提供一些选项,并自动处理这些选项。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7990840

复制
相关文章
在 Discourse 中如何使用输入对话框
如下图显示的内容,可以在输入框中输入文本,然后在主题中可以根据你输入的文本重新生成字符串:
HoneyMoose
2021/09/08
2.2K0
在 Discourse 中如何使用输入对话框
基于 Laravel 的用户动态模块开发
几乎所有的社区应用都有用户动态这个部分,用户可以通过好友动态获能取到更多感兴趣的内容,从而提高社区活跃度和用户粘性。它的实现相对来讲比普通的内容发布要复杂一些,主要体现在内容多样性上。 为了解决这个问题,我们得把这些不同类型的内容抽象,提取共性,使用相同的结构来处理,开发起来就会简单很多。 概念抽象 用户动态,顾名思义,动态的产生,就是一系列事件的历史记录,所以首先关注“事件”这个名词,它有哪些属性: 触发者,基于社区所有的事件几乎都是由用户触发的 事件主体,事件的主体信息,例如“xxx发布了文章” 中的
overtrue
2018/07/05
1.5K0
PyQt5 技术篇-调用输入对话框(QInputDialog)获取用户输入内容。
说明: 参数一,有self用self,没有的话用None; 参数二,标题; 参数三,提示; 参数四,默认值。
小蓝枣
2020/09/23
1.9K0
MFC创建对话框
开发环境 VS2015, 目前VS2017存在bug,创建对话框会出现问题 操作步骤: 添加对话框资源 在新建的视图资源上右键添加类 输入对话框类名,以C(大写)开头,建议Dlg结尾
包子388321
2020/06/16
1.5K0
数据分析:在缓慢变化中寻找跳变——基于缓慢变化维度的用户分群
引导语 数据分析中,我们常常有下面几种分群方式 基础属性类:年龄、性别、城市、学历、用于首次来源 ·  特点:基本是不变化的,虽然年龄、城市等也会发生变化,但本质上我们是将其作为一个用户固定属性进行分析 ·  优势:用户属性稳定,分群永远不变化 · 劣势:是维度有限,很多分析维度很难找到固定属性 图:某业务用户数分年龄段曲线(来自腾讯灯塔截图) 动态属性类:当天启动方式、当日拉活渠道、新老用户、当日播放视频数、当日是否领取红包 · 特点:基本上是基于用户当天的一些行为或状态数据,例如启动方式,每天
腾讯大讲堂
2020/07/31
7720
用户输入
大多数程序都在解决最终用户问题,为此通常需要从用户那里获取一些信息。在程序需要一个名字时,你需要提示用户输入该名字;程序需要一个名字时,你需要提示用户输入一系列名字。
狼啸风云
2019/01/18
9790
数据分析:在缓慢变化中寻找跳变——基于缓慢变化维度的用户分群
引导语 数据分析中,我们常常有下面几种分群方式: 基础属性类:年龄、性别、城市、学历、用于首次来源 特点: 基本是不变化的,虽然年龄、城市等也会发生变化,但本质上我们是将其作为一个用户固定属性进行分析。 优势: 用户属性稳定,分群永远不变化。 劣势: 是维度有限,很多分析维度很难找到固定属性。 图:某业务用户数分年龄段曲线(来自腾讯灯塔截图) 动态属性类:当天启动方式、当日拉活渠道、新老用户、当日播放视频数、当日是否领取红包。 特点: 基本上是基于用户当天的一些行为或状态数据,例如启动方式,每
腾讯NEXT学位
2020/08/04
7670
minigui: 基于miniStudio1.2.1创建模式对话框(DialogBox)
版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/80939641
10km
2019/05/25
8820
[iOS] 输入框高度随输入内容变化
对于第一点,有一个方便的计算方法,就是获取UITextView内容的高度比上UITextView的字体的高度,即可得到当前的行数。
wOw
2018/09/18
2.6K0
基于Swing的FontChooser对话框
不知道为什么,原生的Swing有JFileChooser,JColorChooser但是却没有JFontChooser。虽然网上有很多类似的实现,但是鉴于是作业,我还是自己写了一个简单的FontChooser来练练手。而且真正写起来也不是那么的顺畅,果然还是发现了很多的坑。。。
mythsman
2022/11/14
5730
基于Swing的FontChooser对话框
javascript 动态函数如何创建?
JavaScript作为一门动态语言,提供了多种创建动态函数的方法。动态函数的创建允许我们在运行时根据需要生成函数,从而实现灵活的编程和动态逻辑。本文将介绍动态函数的概念,探讨几种常用的方法来创建动态函数,并分享一些动态函数的应用场景。
海拥
2023/06/27
6080
javascript 动态函数如何创建?
[MFC]将基于对话框的工程改成基于BCG的
应用程序类的父类由CWinApp改成CBCGPWinApp。构造函数增加如下代码:
祥知道
2020/03/10
9020
PyQt5 输入对话框QInputDialog
(int, bool ok) QInputDialog.getInt (QWidget parent, QString title, QString label, int value = 0, int min = -2147483647, int max = 2147483647, int step = 1, Qt.WindowFlags flags = 0)
用户6021899
2019/08/14
2.7K0
pycharm如何创建py文件_pycharm输入不了
PyCharm是一款很好用的编写Python工程的IDE,用PyCharm创建一个Python文件或者向工程添加一个.py文件时,为了更好的使所编写的代码在各操作环境更好的运行,我们往往需要在.py文件中添加头文件标注相关信息。例如:
全栈程序员站长
2022/09/28
1.7K0
pycharm如何创建py文件_pycharm输入不了
[android] fragment的动态创建
在一个商业软件中,会有很多的界面,如果没一个界面对应一个activity,那么activity会非常的多,清单文件也会非常的乱,谷歌在android3.0以后引入了新的概念叫fragment
唯一Chat
2019/09/10
2.1K0
mfc 创建模态对话框与非模态对话框
所谓模态对话框就是该对话框被创建后,其父窗口不能响应任何消息,无法操作,只有在关闭了新创建出来的窗口后才能继续操作其后面的父窗口。而非模态对话框则不会有这种情况,非模态对话框创建完成后不影响父窗口的操作,两个窗口可以同时响应消息。
我与梦想有个约会
2023/10/20
3960
mfc 创建模态对话框与非模态对话框
点击加载更多

相似问题

Rails Carrierwave视频上传程序

11

Rails carrierwave多文件上传错误

10

Carrierwave、Rails 4和多次上传

40

Rails CarrierWave:上传的文件未保存

11

如何在Rails中保存到carrierwave之前更改文件名?

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文