2012-12-25 55 views
3

我想知道在控制檯中使用Perl時是否有隱藏關閉按鈕或至少使其不可點擊的方式。我知道使用GUI時可能會出現這種情況,但我需要製作基於控制檯的應用程序,並且不希望用戶有意關閉它。Perl控制檯窗口 - 如何使它不可關閉?

+0

任何進程都可以關閉,所以你想達到什麼目的? –

+0

「控制檯中的Perl」是什麼意思?安慰?這是一個終端窗口嗎?哪個OS?哪個終端? – sidyll

+1

我正在努力實現,您將需要編寫一個命令來關閉它。 控制檯中的Perl應該是MS Windows的終端。 –

回答

5
use strict; 
use Win32::Console::ANSI qw/ SetCloseButton /; 

$SIG{INT}='IGNORE'; # no Ctrl-C interrupt 
SetCloseButton(0); # no close button 
+0

這很聰明。你知道它是否也陷阱Alt + F4鍵盤快捷鍵? –

+0

這是一個很好的解決方案,謝謝。我不介意Alt + F4組合關閉窗口,這對我來說就夠了。 –

3

我不認爲你可以阻止用戶關閉Windows命令提示窗口。您不僅需要隱藏關閉按鈕,還必須隱藏關聯的系統菜單項,上下文菜單項(取決於Windows的風格),並捕獲Alt + F4鍵盤快捷鍵。

如果您可以控制整個端到端流程,您可以通過隱藏控制檯窗口,捕獲輸出並將其發送到您創建的窗口(不具備關閉功能,當然)。

否則,你將不得不相信你的用戶是大男孩和女孩,並不會關閉窗口。