找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 87649|回复: 25

[其他] disableX.exe - 禁用 cmd 窗口的关闭按钮(并移除右键的“关闭”菜单)

[复制链接]
发表于 2011-8-3 15:57:59 | 显示全部楼层 |阅读模式
发现论坛里 DisableExit 和 CWnd 都只是禁用了关闭按钮,却没有移除标题栏右键的“关闭”菜单。

网上找到的 C 源代码,用 Dev-C++ 4.9.9.2 编译成功。
  1. @echo off
  2. disableX.exe
  3. echo 关闭按钮已禁用
  4. pause
复制代码
2012-11-14 更新:
使用 TDM-GCC 中的 gcc 命令 gcc -Os -s disableX.c -o disableX.exe 重新编译,体积由原来的 16.4 KB 减小到 8.5 KB。

注:13 楼 的 disableX.exe 体积只有 1.5 KB。

http://bcn.bathome.net/s/tool/index.html?key=disableX

评分

参与人数 2技术 +2 收起 理由
flaven + 1 这个用alt+F4还是可以退
Hello123World + 1 支持一下,wallpaperchanger一直在用!

查看全部评分

 楼主| 发表于 2011-8-3 16:11:01 | 显示全部楼层
说一下 disableX 的编译方法。

不是直接编译保存好的 c 源代码,而是:
    在菜单栏选择 File -> New -> Project -> Console Application,
    之后将源代码复制进去,保存,
    最后点击菜单栏的 Execute -> Compile,就完成了。
发表于 2011-8-3 16:18:18 | 显示全部楼层
好些怀有不良意图和怀有良好心愿的人看见了都会欢呼雀跃!~
发表于 2011-8-3 21:13:04 | 显示全部楼层
DisableExit是这个吧?
http://bbs.bathome.net/thread-11632-1-1.html

gray.exe可以禁用右键里面的关闭
http://bbs.bathome.net/thread-6532-1-1.html
 楼主| 发表于 2011-8-3 21:19:03 | 显示全部楼层
回复 4# Batcher


是的,是那个 DisableExit。

gray.exe 要常驻。
发表于 2011-9-25 11:19:30 | 显示全部楼层
这个对win7用户没有压力~ 照样可以关掉~
发表于 2012-3-10 10:38:40 | 显示全部楼层
确实该雀跃了!真是我需要的~!!
 楼主| 发表于 2012-11-16 17:47:37 | 显示全部楼层
2012-11-14 更新:
使用 TDM-GCC 中的 gcc 命令 gcc -Os -s disableX.c -o disableX.exe 重新编译,体积由原来的 16.4 KB 减小到 8.5 KB。
发表于 2012-11-16 17:57:10 | 显示全部楼层
用TCC编译的话应该只有2k
 楼主| 发表于 2012-11-16 18:00:03 | 显示全部楼层
回复 9# Demon


尝试过。但提示:
disableX.c:7: warning: assignment makes pointer from integer without a cast
disableX.c:8: warning: assignment makes pointer from integer without a cast
tcc: undefined symbol 'GetConsoleWindow'
tcc: undefined symbol '_GetSystemMenu@8'
tcc: undefined symbol '_DeleteMenu@12'
tcc: undefined symbol '_DrawMenuBar@4'
发表于 2012-11-16 18:02:20 | 显示全部楼层
回复  Demon


尝试过。但提示:
tmplinshi 发表于 2012-11-16 18:00


给我源码,我试试。
 楼主| 发表于 2012-11-16 18:05:10 | 显示全部楼层
回复 11# Demon
  1. #define _WIN32_WINNT    0x0500
  2. #include <Windows.h>
  3. #include <stdio.h>

  4. int main()
  5. {
  6.     DeleteMenu(GetSystemMenu(GetConsoleWindow(), FALSE), SC_CLOSE, MF_BYCOMMAND);
  7.     DrawMenuBar(GetConsoleWindow());
  8. }
复制代码
发表于 2012-11-16 18:21:33 | 显示全部楼层
 楼主| 发表于 2012-11-16 18:25:35 | 显示全部楼层
回复 13# Demon


    感谢! 可以说下怎么编译的吗?
发表于 2012-11-16 18:32:00 | 显示全部楼层
回复  Demon


    感谢! 可以说下怎么编译的吗?
tmplinshi 发表于 2012-11-16 18:25


用tiny_impdef.exe生成新的def文件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 22:36 , Processed in 0.024138 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表