无忧启动论坛

标题: 快捷键关机,“不占”菜单 [打印本页]

作者: Cracada    时间: 2013-4-29 17:22
标题: 快捷键关机,“不占”菜单
我的GRUB菜单老是要在最后加上“重启”和“关机”占用两行,不像EZB菜单或者GFXMENU菜单那样方便,于是想了个小办法来解决这个问题,思路很简单:加两个隐藏的菜单条。但是reboot和halt是敏感命令,通过上下键选择的时候还是会选中那两个空白行。所以可以采用外部命令的办法解决,具体过程如下:

1)主菜单里加入外命令 hotkey

2)主菜单末尾加上两行隐藏菜单

  1. title ^F9
  2. /BOOT/GRUB/SYSCMD reboot

  3. title ^F10
  4. /BOOT/GRUB/SYSCMD halt
复制代码
3)在/BOOT/GRUB/下添加一个批处理,并命名为SYSCMD

  1. !BAT
  2. if "%~1"=="reboot" goto rebootpc
  3. if "%~1"=="halt" goto haltpc
  4. if "%~1"=="" exit 1

  5. :rebootpc
  6. reboot

  7. :haltpc
  8. #halt
复制代码
至此搞掂。

对GRUB批处理没什么了解,也不知道上面的写法有没有什么错误,反正命令执行结果是正确的
另外:之所以“不占”二字加引号,是因为通过左右键来选择菜单的时候,这两行还是会出现的
作者: 不点    时间: 2013-4-29 18:21
无需调用外部命令。试试如下的办法:
  1.     title ^F9
  2.    echo Reboot now... && reboot

  3.     title ^F10
  4.    echo Halt now... && halt

复制代码
echo 不是一个 “启动敏感” 的命令,因此,可以用它来打头。grub4dos 只检查命令行中的第一个单词,看它是不是 “启动敏感” 的命令,如果不是,就认为整个的命令行都不是 “启动敏感” 的。


作者: xianglang    时间: 2013-4-29 19:38
本帖最后由 xianglang 于 2013-4-29 19:39 编辑

建议G4D干脆将这两个命令,搞成内置热键算了;当然如果能够提供可以自己设置用哪个热键,并显示在状态栏就更好了。

作者: Cracada    时间: 2013-4-29 20:35
不点 发表于 2013-4-29 18:21
无需调用外部命令。试试如下的办法:echo 不是一个 “启动敏感” 的命令,因此,可以用它来打头。grub4dos  ...

还可以这样啊,学习了,感谢感谢~~~
作者: feifanll    时间: 2013-5-2 11:10
高,想法很好。我也试试......
作者: Cracada    时间: 2013-5-13 20:55
小改一下,加个“确认”

  1. !BAT

  2. clear
  3. set keyt=
  4. echo -e \n\t$[0106]按 $[010E]回车键$[0106] 确认($[010E]%~1$[0106]),其他任意键返回(默认)\n\t
  5. #echo -e \n\t$[0106]Press $[010E]Enter $[0106]to $[010E]%~1$[0106],other key back to main menu(default)\n\t
  6. pause --wait=5 && set /A keyt=*0x4CB00

  7. #按esc返回主菜单
  8. if not exist keyt configfile (md)4+8

  9. #按下回车,重启或关机
  10. if /i "%keyt%"=="0xD" if "%~1"=="reboot" reboot
  11. if /i "%keyt%"=="0xD" if "%~1"=="halt" halt

  12. #5秒未按键或按其他键返回主菜单
  13. configfile (md)4+8
复制代码

作者: czswuyou    时间: 2013-5-15 12:59
想法好啊,支持




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3