kyniel 发表于 2011-11-23 20:39:58

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

本帖最后由 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("") Then
        Local $state=WinGetState("")
        If BitAND($state,8) Then
                WinSetState("","",@SW_MAXIMIZE)
        EndIf
EndIf
WEnd

Func _quit()
        Exit
EndFunc
上面是代码,编译以后,运行一下,以后开机就自启动了。要关闭就按shift+f10就行了。

xms77 发表于 2011-11-23 21:34:14

鼠标一点的事情还自己编个程序啊!

lixiaolong 发表于 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

支持一下。有源码新手学习了

kyniel 发表于 2011-11-23 22:33:21

回复 3# lixiaolong

谢谢你的回复,看了一下确实打开.chm的文件,直接调用cmd命令最大化打开了,在scite编辑工具中按f1查看帮助文档(即非右键选择打开的其他方式)打开文件还是不能最大化打开,其实我也知道修改注册表肯定能达到这个效果,不过上次百度了一天,也没查到理想的方式。

kyniel 发表于 2011-11-23 22:35:19

回复 2# xms77
其实你的签名说明我的现状!
{:face (245):}
每次打开都要点一次最大化真的很麻烦!

menfan1 发表于 2011-11-24 08:16:16

最简单的方法就是修改注册表吧

xms77 发表于 2011-11-24 12:45:08

回复 6# kyniel
能够想尽一切办法来偷懒的人其实一点都不懒!

drunk 发表于 2011-11-24 12:59:05

楼上说的好{:1_508:}
支持个

lixiaolong 发表于 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]
查看完整版本: 强制chm最大化打开,一劳永逸(不知道那位大大有更方便的方法)[已解决]