console窗口禁止关闭

By admin at 2017-12-07 • 1人收藏 • 1442人看过
import console; 
import win;

console.open();
console.setTitle("显示日志")
var hwnd = console.getWindow();
var hmenu = ::User32.GetSystemMenu(hwnd,false);
::User32.RemoveMenu(hmenu,0xF060/*_SC_CLOSE*/,0);
win.modifyStyleEx(hwnd,0x40000/*_WS_EX_APPWINDOW*/,0x80/*_WS_EX_TOOLWINDOW*/);

console.pause(true);


更新:

如果需要设置console控制台的位置, 

 import console; 

console.box(,,60,10,31,"请输入文本:" ) 
console.pause(true);

如果这个设置窗口的位置, 那么

import console
var hwnd = console.getWindow();
win.setPos(hwnd,1,1);
console.open()



拦截控制台关闭信息

import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=759;bottom=469)
winform.add()
/*}}*/

import console
console.open()
//处理函数
func = function(a) { 
	if( a==2/*_CTRL_CLOSE_EVENT*/ ){
		console.log("确定要退出吗")
		sleep(2000);
		return true; 
	}
}
//转换为静态api函数约定
func_c = raw.tostdcall( func,"int(int)" );
//挂接
var ret = ::Kernel32.SetConsoleCtrlHandler(func_c,true);
console.log("执行结果",ret)

winform.show() 
win.loopMessage();

发现jacen大人已经封装好了上面的那个函数, 可以直接用''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

console.setCtrlHandlerThread( function(ctrlType){
	import console;
	console.log("确定要退出吗");
	sleep(2000);
	return true; 
})


登录后方可回帖

登 录
信息栏
公 告:

专注分享

谢绝纯提问

谢谢合作!
本站域名:HtmLayout.Cn
aardio可以快速开发上位机,本站主要记录了学习过程中遇到的问题和解决办法及aardio代码分享

这里主要专注于aardio学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.

Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
本 站 主 站:Stm32cube中文网
Sciter中文在线文档Sciter在线学习文档
空间赞助:才仁机械
打赏本站
Loading...