Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何检查您是否单击了窗口上的关闭按钮?(红宝石)_Ruby_Windows_Winapi - Fatal编程技术网

Ruby 如何检查您是否单击了窗口上的关闭按钮?(红宝石)

Ruby 如何检查您是否单击了窗口上的关闭按钮?(红宝石),ruby,windows,winapi,Ruby,Windows,Winapi,我只想问一下Ruby中的哪个命令允许您检查Ruby中的应用程序或正在运行的应用程序是否即将关闭?例如,我运行了一个可执行文件,并单击了窗口上的关闭按钮。我想弹出一个对话框,告诉你即将关闭。按下OK按钮后,窗口最终关闭 在Ruby中如何做到这一点?我不知道Ruby中的工作原理,但一般来说,在Windows上,当窗口收到关闭请求时,它的窗口过程会收到一条消息。这是向用户显示提示的地方。如果应用程序想阻止窗口关闭,因为用户想要拒绝它,等等,应用程序可以简单地跳过销毁窗口,而不将消息传递给默认的消息处理

我只想问一下Ruby中的哪个命令允许您检查Ruby中的应用程序或正在运行的应用程序是否即将关闭?例如,我运行了一个可执行文件,并单击了窗口上的关闭按钮。我想弹出一个对话框,告诉你即将关闭。按下OK按钮后,窗口最终关闭


在Ruby中如何做到这一点?

我不知道Ruby中的工作原理,但一般来说,在Windows上,当窗口收到关闭请求时,它的窗口过程会收到一条消息。这是向用户显示提示的地方。如果应用程序想阻止窗口关闭,因为用户想要拒绝它,等等,应用程序可以简单地跳过销毁窗口,而不将消息传递给默认的消息处理程序DefWindowProc

如果用户单击窗口的关闭按钮,或从窗口的弹出式系统菜单中选择关闭选项,或在窗口处于焦点时按ALT-F4,则窗口会收到一条消息,如果消息传递给默认消息处理程序,则窗口会收到WM_close消息


根据需要将这些信息翻译成Ruby。

用户只是表示希望关闭一个窗口。您希望通过再次询问他们获得什么样的见解?虽然可能有合理的用例可以得到关于窗口关闭的通知,但这不是其中之一。我想这样做的一个重要原因。在关闭窗口之前,我打算显示一些重要的内容,一个通知,然后打开一个显示某些内容的特定窗口。我只想让用户知道他们是否确定要关闭窗口。有时,意外关闭按钮是由用户创建的。这取决于您在GUI中使用的框架,或者您是在使用Rails或Sinatra之类的web应用程序的上下文中说话吗?我使用的是一个运行Ruby代码的程序。基本上,比如说鞋子。我能想到的唯一方法是访问Win32应用程序,从窗口检查关闭按钮并检测它。