找回密码
 加入
搜索
查看: 7058|回复: 9

[系统综合] 强制chm最大化打开,一劳永逸(不知道那位大大有更方便的方法)[已解决]

  [复制链接]
发表于 2011-11-23 20:39:58 | 显示全部楼层 |阅读模式
本帖最后由 kyniel 于 2011-11-25 08:46 编辑

我的两台电脑,使用chm文件的时候,打开的时候总是不能默认最大化打开。我可能是装的系统的原因,话说我的两台电脑都是xp,但不是同个封装啊,不知道其他人有没有这种情况。所以写了个au3自启动强制最大化来解决,发在这里希望能帮助有类似情况的朋友,同时哪位大大有更好的方法,希望赐教!
#NoTrayIcon

If Not @Compiled Then
        MsgBox(0,"","请先编译,然后运行.exe文件")
        Exit
EndIf

HotKeySet("!{F10}","_quit")

If Not FileExists("D:\chmmax.exe") Then
        FileCopy(@ScriptDir&"\chmmax.exe","D:\chmmax.exe")
EndIf

If RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run","chmmax")="" Then
        RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run","chmmax","REG_SZ","D:\chmmax.exe")
EndIf

While 1
If WinExists("[class:HH Parent]") Then
        Local $state=WinGetState("[class:HH Parent]")
        If BitAND($state,8) Then
                WinSetState("[class:HH Parent]","",@SW_MAXIMIZE)
        EndIf
EndIf
WEnd

Func _quit()
        Exit
EndFunc
上面是代码,编译以后,运行一下,以后开机就自启动了。要关闭就按shift+f10就行了。
发表于 2011-11-23 21:34:14 | 显示全部楼层
鼠标一点的事情还自己编个程序啊!
发表于 2011-11-23 21:43:46 | 显示全部楼层
回复 1# kyniel

这个不用什么程序也可以实现.

看看注册表CHM是怎么打开的,
HKEY_CLASSES_ROOT\chm.file\shell\open\command
REG_EXPAND_SZ值:"%SystemRoot%\hh.exe" %1

你的要求利用CMD命令可以搞定.
start /max "" "%SystemRoot%\hh.exe" %1
但是【HKEY_CLASSES_ROOT\chm.file\shell\open\command】这里有些系统是无法修改的.

所以修改【HKEY_CURRENT_USER】当前的用户信息.

HKEY_CURRENT_USER\Software\Classes\ 下添加信息就可以了.
RegWrite("HKEY_CURRENT_USER\Software\Classes\chm.file\shell\open\command", "", "REG_EXPAND_SZ", "cmd.exe /c start /max """" ""%SystemRoot%\hh.exe"" %1")

;删除
;~ RegDelete("HKEY_CURRENT_USER\Software\Classes\chm.file")


添加后打开CHM文件试试.
发表于 2011-11-23 22:15:52 | 显示全部楼层
支持一下。有源码新手学习了
 楼主| 发表于 2011-11-23 22:33:21 | 显示全部楼层
回复 3# lixiaolong

谢谢你的回复,看了一下确实打开.chm的文件,直接调用cmd命令最大化打开了,在scite编辑工具中按f1查看帮助文档(即非右键选择打开的其他方式)打开文件还是不能最大化打开,其实我也知道修改注册表肯定能达到这个效果,不过上次百度了一天,也没查到理想的方式。
 楼主| 发表于 2011-11-23 22:35:19 | 显示全部楼层
回复 2# xms77
其实你的签名说明我的现状!

每次打开都要点一次最大化真的很麻烦!
发表于 2011-11-24 08:16:16 | 显示全部楼层
最简单的方法就是修改注册表吧
发表于 2011-11-24 12:45:08 | 显示全部楼层
回复 6# kyniel
能够想尽一切办法来偷懒的人其实一点都不懒!
发表于 2011-11-24 12:59:05 | 显示全部楼层
楼上说的好
支持个
发表于 2011-11-24 17:49:14 | 显示全部楼层
本帖最后由 lixiaolong 于 2011-11-24 18:59 编辑

回复 5# kyniel

哈哈,我琢磨琢磨有解决办法了.

首先编译一个程序,内容是这样.
ShellExecute(@ScriptDir & "\AutoIt3Help.exe", "", "", "", @SW_MAXIMIZE)


把它的名字改为【AutoIt3HelpMaximize.exe.exe】,把它放在和【AutoIt3Help.exe】同一个目录下.

在【C:\Program Files\AutoIt3\SciTE\Properties】里找【au3.properties】这个文件用记事本打开.

找这个部分.
command.help.$(au3)=$(autoit3dir)\AutoIt3Help.exe "$(CurrentWord)"
command.help.subsystem.$(au3)=2
把它改为(先备份)
command.help.$(au3)=$(autoit3dir)\AutoIt3HelpMaximize.exe "$(CurrentWord)"
command.help.subsystem.$(au3)=2
保存后打开SciTE按F1.

这个还是有点问题。。。

我又测试了,程序内容改成这个没问题了.
Run("AutoIt3Help.exe", "", @SW_MAXIMIZE)

评分

参与人数 1金钱 +20 收起 理由
kyniel + 20 辛苦了,原来scite是这么调用.chm的,谢谢

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-1 07:29 , Processed in 0.098355 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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