首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Powershell中更新GUI

在Powershell中更新GUI
EN

Stack Overflow用户
提问于 2018-03-01 15:41:51
回答 1查看 1.8K关注 0票数 0

我想写一个具有交通灯功能的程序。框架的颜色应根据检查结果进行更改。我已经解决了条件的检查,所以在这个例子中,while-Loop替代了更大的检查。但是为了专注于这个问题,我把它简化成这样。我的问题是我不能更新UI的颜色。

所以程序应该一直在运行,但它似乎停滞不前:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[void] $Form.ShowDialog()

并且只有在我关闭表单后才会继续。那么,我如何绕过这一部分,进入infinit循环,这样我的窗体就会一直显示在不断变化的颜色中呢?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
$Form = New-Object System.Windows.Forms.Form
$Form.Text = "Test"
$Form.Size = New-Object System.Drawing.Size(300,300)
$Form.StartPosition = "CenterScreen"
$Form.BackColor = "Green"

$Form.Topmost = $True
$Form.Add_Shown({$Form.Activate()})
[void] $Form.ShowDialog()

while ($True)
    $test = Get-Content -Path C:\Users\admin\Documents\pro.txt
    if ($test -eq 2)
    {
    $Form.BackColor = "Green"
    } else {
    $Form.BackColor = "Red"
    }
     Start-Sleep -s 2

}

感谢您的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-01 17:03:28

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$Form.ShowDialog()

这一行需要在表单上进行交互。在关闭窗体之前,该行后面的代码将不会运行。启动表单的另一种方法如下所示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$Form.Show()

如果像这样启动窗体,代码应该会继续运行。尽管您可能仍然需要一个更好的解决方案,因为您的以下代码使用了start-sleep -s 2。我认为这也可能使您的表单休眠,这将使其潜在地不可用。

我建议您学习PowerShell事件处理程序here。对于您的解决方案,使用事件处理程序可能会有更好的解决方案。下面是一个事件处理程序的示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$Form_Load {
     # Your commands and stuff here #
}

$Form是事件正在查看的对象,然后是分隔符_,然后Load是实际事件的名称,代码在执行时会运行该事件。因此,当form $Form启动时,这些括号中的任何代码都将立即运行。这可以是任何东西,从加载表单,单击按钮,甚至是在列表框中更改选定的索引。

当涉及到我有能力处理表单时,事件处理程序将我的PowerShell图形用户界面构建能力提升到了一个新的水平。所以我强烈建议你学习事件处理程序,如果PowerShell PowerShell对你来说是正常的,你可以买到的最有用的工具是SAPIEN,它是一个非常有用的开发环境。它基本上是一个专门为PowerShell构建的Visual Studio。我认为它在400-500美元的范围内。

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

https://stackoverflow.com/questions/49053357

复制
相关文章
log4js日志
该文章介绍了如何利用log4j2的配置文件对日志进行切割和归档,并给出了具体的例子。
用户1141560
2017/12/26
2.3K0
log4js的配置
log4js是一个日志记录模块,可以单独使用,也可以,结合服务框架使用,这里结合express配置来使用。
挥刀北上
2023/05/25
9020
log4js的配置
Log4js 2.9.0 日志管理插件
Node端的日志插件Log4js,以后版本更新了继续跟进 安装&&版本 npm install log4js 或者 yarn add log4js "express": "4.16.2", "log4js": "2.9.0", 最简单的写法 var log4js = require('log4js'); var logger = log4js.getLogger(); logger.level = 'debug'; logger.debug("Some debug messages"); 稍
CloudCat
2022/06/15
4320
基于 log4js 做全链路日志
提到监控或应用观测,经常出现三个词:「链路(Tracing)」、「指标(Metric)」和「日志(Logging)」。
joefu
2022/01/20
2.5K1
MySQL kill会话不起作用?
在一次日常测试中发现,kill 一个会话后,SQL语句依然在运行并没终止;被kill的会话重新连接并继续执行原来的SQL语句。
老叶茶馆
2023/09/01
2520
MySQL kill会话不起作用?
nodejs总结之日志模块log4js
1 /** 2 * npm install log4js 3 * 源码及文档地址:https://github.com/nomiddlename/log4js-node 4 */ 5 var log4js = require('log4js'); 6 7 /** 8 * 第一种: 9 * configure方法为配置log4js对象,内部有levels、appenders、categories三个属性 10 * levels: 11 *
晓晨
2018/06/22
2.9K0
nodejs使用log4js做日志系统
在一个项目当中,日志系统在项目中重要性在这里就不再累述,log4js是nodejs中的一个日志模块,通过设置其优先级别,可以打印出不同级别的日志,便于后续的系统分析。下面来介绍一下log4js的具体使用,这里介绍的版本为2.8.0。
OECOM
2020/07/01
5K0
MySQL kill会话不起作用?
在一次日常测试中发现,kill 一个会话后,SQL语句依然在运行并没终止;被kill的会话重新连接并继续执行原来的SQL语句。
GreatSQL社区
2023/08/10
3980
MySQL kill会话不起作用?
RecyclerView.Adapter notifyDataSetChanged 不起作用
如果应用启动,不在聊天界面,接收到消息后就弹出通知栏消息通知用户,点击进入聊天界面。
张拭心 shixinzhang
2022/05/06
3K0
关于.gitignore不起作用「建议收藏」
由于公司和家里的as版本不同,倒腾了好久,但是代码到本地后build.gradle等文件做了修改,为了不影响公司版本,故家里的需要忽略这些文件的修改,想到的就是加gitignore配置,直接添加不起效果,找到如下办法:
全栈程序员站长
2022/11/01
2K0
setOnItemClickListener不起作用解决方法
setOnItemClickListener不起作用解决方法 问题 原因 源码解析 解决方法 问题 使用ListView时通常会和Adapter一起使用,在使用setOnItemClickListener方法监听节点时不起作用 原因 原因是因为在你自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件,此时这些子控件会获取到焦点,所以常常当点击item时变化的是子控件,item本身的点击没有响应,此时就该用到descendantFocusability属性了,下面让我
是阿超
2022/05/05
2K0
setOnItemClickListener不起作用解决方法
Nginx配置缺失导致CSS不起作用
启动nginx,打开网页,发现样式并没有如期加载,看chrome的console,显示如下:
血狼debugeeker
2021/03/02
3.9K0
解决CSS属性position:fixed不起作用
若父元素设置了transform属性,无论transform设置任何属性值,都会导致position:fixed属性失效!
赵彤刚
2022/12/13
3.3K0
解决CSS属性position:fixed不起作用
textarea 的 placeholder="" 不起作用
textarea 的 placeholder="请输入解决方案(极简化、不超过500字)" 不起作用
一个会写诗的程序员
2018/08/17
2K0
FeignClient 设置 fallback不起作用
StringCloud FeignClient 设置 fallback不起作用 今天在配置feign中是用hystrix的时候,FeignClient 中的 fallback不起任何作用,本来以为是 不支持这个属性了,打开源码一看,还提供这个fallback属性,后来翻阅各中资料,才发现是没有打开feign对hustrix的支持。下面是解决方案: 在application.yml中加入如下配置就可以了 feign: hystrix: enabled: true
码农笔录
2018/06/29
3.5K0
网站就必须用响应式布局吗?MVC视图展现模式之移动布局
本文先引入给读者一个自己研究的机会,下次深入说明一下: 废话不多说,直接上图 新建一个mvc的项目 在视图里面添加一个移动端视图 正常访问一下 Bootstrap自带的响应式的方式(页面代码并没有改变
逸鹏
2018/04/10
1.1K0
网站就必须用响应式布局吗?MVC视图展现模式之移动布局
【约束布局】使用 Design 模式编辑 ConstraintLayout 约束布局 ( 添加 Guideline 引导线 | 添加 FragmentContainerView )
向约束布局 ConstraintLayout 中添加两个 Fragment , 垂直方向各占 50 % , 一个在屏幕上半部分 , 一个占据屏幕下半部分 ;
韩曙亮
2023/03/30
1.1K0
【约束布局】使用 Design 模式编辑 ConstraintLayout 约束布局 ( 添加 Guideline 引导线 | 添加 FragmentContainerView )
【3/25】使用组合模式(Composite Pattern)实现布局容器
组合模式(Composite)是将对象组合成树形结构,以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。接下来我们考虑在当前项目中应用组合模式。
LIYI
2021/02/23
6900
【3/25】使用组合模式(Composite Pattern)实现布局容器
MVC视图展现模式之移动布局解析-续集
网站就必须用响应式布局吗?MVC视图展现模式之移动布局:http://www.cnblogs.com/dunitian/p/5213787.html 有人会疑问,为什么他能识别.mobile的后缀却不
逸鹏
2018/04/10
7970
MVC视图展现模式之移动布局解析-续集
点击加载更多

相似问题

node log4js maxlogsize不起作用

149

log4js npm错误,log4js配置

10

转义花括号在LOG4Js -替换{模式}{regex}{替换}

12

布局-土地概念在景观模式下不起作用

12

Log4js配置错误

119
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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