论坛风格切换切换到宽版
  • 8438阅读
  • 43回复

[原创]自动字体设置之 AutoFontSet 0.6 [复制链接]

上一主题 下一主题
离线jingulong
发帖
513
金钱
0
威望
0
只看该作者 20 发表于: 2003-03-25
谢谢版主提示。
但有一点是肯定的,您那第二个(现在还没法的)的 Sample使用动态方式,关键是拦截LoadLibraryA 和 GetProcessAddress,解决只是时间问题。
不过现在正考虑Norton误报的问题(对付Symantec!难啊!!!),加上其他杂事,又懒。只好拖一拖了。
世外人法无定法
离线xxoo
发帖
274
金钱
0
威望
0
只看该作者 21 发表于: 2003-03-26
既然是误报, 那就让他去吧
偶认为没必要为别人的失误伤神, 说不定他马上会修正这个问题呢!
离线jpstone
发帖
*
金钱
*
威望
*
只看该作者 22 发表于: 2003-03-27
谢谢您提供这么好的工具!
测试后,基本情况和斧头所说类似,只是偶尔可以列出FontSet.Sample.GA.exe样例文件中的字体调用,但修改后运行报错
离线Suntime

发帖
522
金钱
30
威望
3
只看该作者 23 发表于: 2003-03-27
不错, 这东东还能对付一些 DELPHI 程序!
图画曾识零陵郡,不到潇湘岂有诗!

欢迎光临我的阳光部落
离线Yonsm

发帖
57
金钱
60
威望
6
只看该作者 24 发表于: 2003-03-28
Norton 认为这是病毒,没错,修改 PE 文件被认为是病毒是经常的事,不用管它:)
说一个问题:
  当程序用 Dialog 资源的时候,但又不用 DialogBox 函数线是对话框,而是用 CreateDialogIndirect 创建对话框的时候的字体设置的情况——目前 AutoSetFont 无法处理:(
  举个例子,我要修改 VC 的对话框(比如“关于”对话框)的字体,发现修改 MSDEV.exe 中的对话框资源,没用:(,用 SoftICE 跟踪看了一下,发现他是用 CreateDialogIndirectParam 创建的对话框,参数也好像没问题的,不知怎么的字体就是改不过来。郁闷!
  能否帮忙看看修改 MSDEV.exe 的对话框字体?
            Yonsm (QQ:123018)
<同样内容的短消息发给了搂主的>
离线曾半仙

发帖
2409
金钱
20
威望
2
只看该作者 25 发表于: 2003-03-28
我也遇见过,
这个情况我十分的不解!!
VC对话框字体又粗又大.
结果装protel的时候,
按照他的说法(不装这字体protel对话框字体会很难看),装了个字体,
VC竟然也好了.
离线jingulong
发帖
513
金钱
0
威望
0
只看该作者 26 发表于: 2003-03-29
QUOTE
下面引用由Yonsm2003/03/28 02:16pm 发表的内容:
...发现他是用 CreateDialogIndirectParam 创建的对话框,参数也好像没问题的,不知怎么的字体就是改不过来。郁闷!
  能否帮忙看看修改 MSDEV.exe 的对话框字体?
                  Yonsm (QQ:123018)

Yonsm 你好:
对不起,昨天晚上回家才看到你的帖。
你说得没错,这个对话框是通过 CreateDialogIndirectParam 产生,但不在MSDEV.exe中,在 DevShl.dll 中,如果你要修改,应该修改的地方请参考:
5005A312           push   offset byte_50037CEC ; 指向 "MS Sans Serif"
5005A317           push   20h         ; DWORD
5005A319           push   edi         ; DWORD
5005A31A           push   edi         ; DWORD
5005A31B           push   edi         ; DWORD
5005A31C           push   edi         ; DWORD
5005A31D           push   edi         ; DWORD
5005A31E           push   edi         ; DWORD
5005A31F           push   edi         ; DWORD
5005A320           push   2BCh         ; int
5005A325           push   edi         ; int
5005A326           push   edi         ; int
5005A327           neg   eax
5005A329           push   edi         ; int
5005A32A           push   eax         ; int
5005A32B           call   ds:CreateFontA
祝你好运。
btw
1 AutoFontSet 0.x 目前还没有考虑对 dll 内部字体函数的拦截。
2 现在“误报”的问题已经解决。打算过一阵再贴出来。 :biggrin:
世外人法无定法
离线Yonsm

发帖
57
金钱
60
威望
6
只看该作者 27 发表于: 2003-03-29
QUOTE
下面引用由jingulong2003/03/29 09:40am 发表的内容:
Yonsm 你好:
  对不起,昨天晚上回家才看到你的帖。
  你说得没错,这个对话框是通过 CreateDialogIndirectParam 产生,但不在MSDEV.exe中,在 DevShl.dll 中,如果你要修改,应该修改的地方请参考:
5005A312  ...

非常感谢!不过你说的这个地方我也跟踪到了,但是这并不是设置对话框字体的,这是设置About 对话框下部分的“Warnning:....”的字体,对话框的字体好像并没有使用 API 设置,应该是使用系统的默认字体?我的意思是是否可以通过修改 Dialog 的资源或者修改 CreateDialogIndirectParam 的参数(比如其中一个 Struct 的 style 域)来达到目的?
尝试过了,没找到好方法:(
BTW:
能在下一个版本考虑上诉的情况:)
再次感谢!
离线chenmy

发帖
2863
金钱
60
威望
6
只看该作者 28 发表于: 2003-04-02
我发现一个使用上的问题!
近版自动字体设置之 AutoFontSet 程序(0.5和0.6)是采用追尾(在被修改的程序文件后面增加
一段代码——约1K)的形式修改字体的。这就限制了其使用的时机,只能在做好汉化之后使用。
如果用其修改字体后,发现汉化部份还需修改,最好先用自动字体设置之 AutoFontSet 0.6 还原,
后修改汉化。如果你未还原就动手修改,那就要靠运气了。一旦汉化编辑器改变了文件的大小,你
就得从头来过了。
我是中国人·最爱是中文!
离线Suntime

发帖
522
金钱
30
威望
3
只看该作者 29 发表于: 2003-04-02
呵呵,先用 AutoFontSet 修改要汉化的程序,用 VL 汉化编译的目标程序经常报错,不过并不是说这就要前功尽弃,只要用 AutoFontSet 还原目标程序后再进行修改还是可用的——————
图画曾识零陵郡,不到潇湘岂有诗!

欢迎光临我的阳光部落