TC官方合作论坛

标题: 已删除 [打印本页]

作者: 18667006365    时间: 2015-12-3 21:37
标题: 已删除
本帖最后由 18667006365 于 2016-4-15 21:21 编辑

已删除
作者: lzwquit    时间: 2015-12-3 21:44
感谢分享
作者: 18667006365    时间: 2015-12-3 21:44
上面调试窗口,是黑底绿色宋体,需要其它色彩字体的调试窗口,可以到群里面,联系我,免费发放.

作者: sam7894604    时间: 2015-12-3 21:45
我来给你支持了~
作者: yanzehua    时间: 2015-12-3 21:50

作者: 言术    时间: 2015-12-3 22:28
看看
作者: 1487047266    时间: 2015-12-4 01:34
另类调试输出窗口
作者: rainshine    时间: 2015-12-4 02:33
看看源码 给点优化
作者: rainshine    时间: 2015-12-4 02:43
优化空间蛮大的 给你改改昂
作者: 千叶de悠一    时间: 2015-12-4 03:08
这不是控制台吗
作者: 千叶de悠一    时间: 2015-12-4 03:10
居然不是控制台

作者: rainshine    时间: 2015-12-4 03:53
修改了几个小地方 等待改成了循环判断 编辑框用户只能读 不能写 自动滚动到底部 自动选中最后一条输出
还有把最重要的输出给改掉了 提交字符串太慢 不如直接发送消息过去来的直接   实际上以后还可以支持数组的输出 遍历一下就好
再就是改了改输出框宽高的设置 然后没啥了 再就是我觉得应该在输出框的exe里弄个监测之类的 万一用户没点关闭 主程序异常退出了呢 那输出框留在那里好难看
也算是好久没碰代码的一个自己的小复习练习吧。不知道还有没有人记得我- -。好了就是这样各位晚安
已知改过的代码有俩BUG懒得写了……具体看注释
  1. 变量 句柄=数组()
  2. 功能 调试输出窗口_初始化()
  3.     句柄[0]=进程打开("rc:Pr.exe")
  4.     进程等待初始化(句柄[0],1000)
  5.     句柄[1]=枚举窗口("TForm1",1)//BUG1:此处按照窗口类名枚举窗口可能枚举到多个,造成冲突,建议写winapi,枚举进程ID下的窗口句柄.
  6.     while(句柄[1]==0)
  7.         句柄[1]=枚举窗口("TForm1",1)
  8.     end
  9.     句柄[2]=枚举窗口(句柄[1],3)
  10.     窗口发送消息(句柄[2],207,-1,0)//用户只读,不可编辑
  11.     窗口设置位置(句柄[1],6,9)
  12.         窗口设置大小(句柄[1],400,200)   
  13.     var 宽,高
  14.     窗口获取客户区(句柄[1],0,0,宽,高)
  15.     窗口设置大小(句柄[2],宽,高)
  16.     窗口设置标题(句柄[1],窗口获取标题(窗口获取自我句柄()))
  17.     窗口置顶(窗口获取自我句柄(),真)
  18. 结束

  19. 功能 调试输出窗口_销毁()
  20.     windowpostmessage(句柄[1],16,0,0)
  21. 结束

  22. 功能 输出(内容)
  23.     var len=dllcall("user32.dll","int","SendMessageW","int",句柄[2],"int",14,"int",0,"int",0)//取原长度
  24.     var temp=""//BUG2:此处建议单独分配内存存放原编辑框内容,tc貌似因为Buffer太小的原因 输出多了总崩溃
  25.     dllcall("user32.dll","int","SendMessageW","int",句柄[2],"int",13,"int",len+1,"pwchar *",temp)//获取编辑框原来的内容
  26.     dllcall("user32.dll","int","SendMessageW","int",句柄[2],"int",12,"int",0,"wchar *",temp&内容&"\r\n")//设置新的
  27.     dllcall("user32.dll","int","SendMessageW","int",句柄[2],"int",177,"int",len,"int",len+strlen(内容))//选中最后输出的一条方便复制
  28.     dllcall("user32.dll","int","SendMessageW","int",句柄[2],"int",277,"int",7,"int",0)//滚动到最后一行
  29.     窗口设置焦点(句柄[1])
  30. 结束
复制代码

作者: qwe1063422121    时间: 2015-12-4 08:35
............
作者: dangq    时间: 2015-12-4 08:55
顶顶顶顶顶顶顶顶顶
作者: 东月山    时间: 2015-12-4 09:55
嘿嘿,这个帖子要回复看看!!...
作者: 东月山    时间: 2015-12-4 09:59
搜狗浏览器提醒您,这可能是虚假的中奖网站,哈哈
作者: sam7894604    时间: 2015-12-4 10:05
本帖最后由 sam7894604 于 2015-12-4 10:10 编辑

我说与或非你还真荣幸阿,能被有名的 rainshine 修改代码
既然 rainshine 改了一份,那我也手痒鸡婆点在改…基于 rainshine 的代码修改
另外善用 Array 的 Key,会比起数字编号来的直观!


  1. 变量 全_调试 = 数组()
  2. 功能 调试输出窗口_初始化()
  3.     全_调试["进程"] = 进程打开("rc:Pr.exe")
  4.     如果(进程等待初始化(全_调试["进程"],1000) != 0)
  5.         消息框("创建调试窗口进程失败")
  6.     否则
  7.         变量 局_宽,局_高,局_句柄 = 枚举窗口("TForm1",1)
  8.         如果(是否整型(局_句柄))
  9.             变量 局_标题 = 窗口获取标题(窗口获取自我句柄())
  10.             全_调试["窗口"] = 窗口查找子窗口(局_句柄,"","TMemo")
  11.             窗口发送消息(全_调试["窗口"],207,1,0)        //用户只读,不可编辑                EM_SETREADONLY
  12.             窗口发送消息(全_调试["窗口"],197,-1,0)        //设置最大长度避免溢出        EM_SETLIMITTEXT
  13.             窗口设置大小(局_句柄,400,200)
  14.             窗口获取客户区(局_句柄,0,0,局_宽,局_高)
  15.             窗口设置大小(全_调试["窗口"],局_宽,局_高)
  16.             窗口设置标题(局_句柄,局_标题)
  17.             窗口置顶(窗口获取自我句柄(),真)
  18.         否则
  19.             消息框("有未关闭的调试窗口")
  20.         结束
  21.     结束
  22. 结束

  23. 功能 调试输出窗口_销毁()
  24.     进程关闭(全_调试["进程"])
  25. 结束

  26. 功能 输出(内容)
  27.     窗口发送消息(全_调试["窗口"],177,-2,-1)                        //EM_SETSEL
  28.     窗口发送消息(全_调试["窗口"],194,0,内容 & "\r\n")        //EM_REPLACESEL
  29. 结束
复制代码


此外…Delphi 的窗体就没有 Unicode 吗?
因为很重要所以我放大

作者: cjxdn    时间: 2015-12-4 10:15
看看
作者: rainshine    时间: 2015-12-4 15:45
sam7894604 发表于 2015-12-4 10:05
我说与或非你还真荣幸阿,能被有名的 rainshine 修改代码
既然 rainshine 改了一份,那我也手痒鸡婆点在改 ...

哈哈 没你有名了 看过你写的那么多tc4模块 真心膜拜 现在我都销声匿迹隐退江湖咯 新人们都还不知道我呢   昨晚手痒痒了~就随手修改了下 也不是很精细 还是有点问题   这下与或非更荣幸了……又被老鬼修改代码 而且那俩bug貌似都被巧妙解决了 目测现在比较完善了
话说我居然忘了ReplaceSel还可以这么用 嘿嘿 好久不碰脑袋都生锈了 而且我看了你代码才知道原来tc的SendMessage居然可以直接发送字符串过去啊……不知道是tc5的新特性还是原来就支持 我都忘光了。。 另外其实我觉得他这个直接用OutputDebugString更好些。
ps 怪不得那个图标我看着眼熟 就想不起来是什么语言的默认图标了= =。delphi 7原生好像全部ansi来着。你整个回复就最下面那行红字最显眼……
作者: 高冷小Q    时间: 2015-12-4 16:28
好久了等你
作者: fl75537638    时间: 2015-12-4 16:41
理解就好
作者: 18667006365    时间: 2015-12-4 20:43
rainshine 发表于 2015-12-4 03:53
修改了几个小地方 等待改成了循环判断 编辑框用户只能读 不能写 自动滚动到底部 自动选中最后一条输出
还有 ...

感谢rainshine的指点.
作者: 18667006365    时间: 2015-12-4 20:45
sam7894604 发表于 2015-12-4 10:05
我说与或非你还真荣幸阿,能被有名的 rainshine 修改代码
既然 rainshine 改了一份,那我也手痒鸡婆点在改 ...

非常感谢.
作者: wangbaihong    时间: 2015-12-4 20:51
疯狂的程序员
作者: iycamtkg    时间: 2015-12-4 22:34
学习一下
作者: yy4363    时间: 2015-12-4 23:10
是不是很直接?六不六??给不给力???

功能:
1.支持单线程调试输出和多线程调试输出;
2.启动后,调试窗口自动左上角;
3.调试窗口标题自动设置主窗口标题;
4.主窗口关闭,调试窗口跟随关闭;
5.5.0以上版本,可以把该方案存放在模板里面,5.0以下的就是用TLL吧;
6.速度很快.
7.更多优势,自己来体会吧.^_^
--------------------------------------------
作者: 黎传晖    时间: 2015-12-5 01:28
dsfsdfsdfsd
作者: rainshine    时间: 2015-12-5 03:20
18667006365 发表于 2015-12-4 20:43
感谢rainshine的指点.

不谢。
作者: sam7894604    时间: 2015-12-5 11:21
rainshine 发表于 2015-12-4 15:45
哈哈 没你有名了 看过你写的那么多tc4模块 真心膜拜 现在我都销声匿迹隐退江湖咯 新人们都还不知道我呢   ...

哈哈,你只是暂时消失呢,估计回来还是有很多人知道你的!
我改的部份是移植我自己再用的日志功能,ReplaceSel 也是之前研究找来的,比起拷贝文字在新增在写入还要快得多,而且相对稳定…
SendMessage 是 TC5 就能发送字串的样子,具体啥事能发的我也忘了…哈哈哈
OutputDebugString 估计方便点,不过这函数不支持 Unicode 要处理下简繁转换就行~印象中记得你之前也有发过这函数的封装
我现在对没有支持 Unicode 的语言挺反感的…各种不方便啊…

作者: richard135    时间: 2015-12-9 23:44
好东西@
作者: 1487047266    时间: 2015-12-13 23:40
比如有三个游戏窗口,如何让调试输出窗口也对应的 开三个窗口呢?
作者: 18667006365    时间: 2015-12-14 00:03
1487047266 发表于 2015-12-13 23:40
比如有三个游戏窗口,如何让调试输出窗口也对应的 开三个窗口呢?

这个就是要自己设置了,开游戏窗口后,启动一次调试窗口.
作者: 1487047266    时间: 2015-12-14 12:45
18667006365 发表于 2015-12-14 00:03
这个就是要自己设置了,开游戏窗口后,启动一次调试窗口.

喔 ,谢谢
作者: xwei9277    时间: 2015-12-14 14:29
支持!TC有你更精彩!
作者: qq1301857075    时间: 2015-12-15 17:29

作者: 墨染年华    时间: 2015-12-15 19:15
学习
作者: saina6281    时间: 2015-12-17 21:25
类调试输出 ,解决一些烦
作者: taizizhi    时间: 2015-12-18 23:46
谢谢学习了
作者: rong14789    时间: 2015-12-19 19:37
要要要
作者: 一杯水    时间: 2015-12-20 01:00
··········
作者: itsok    时间: 2015-12-30 13:19
顶顶顶顶对对对
作者: zxj8645    时间: 2015-12-30 19:10
RE: 【与或非开源】TC5.0 - 另类调试输出 ,解决一些烦恼 [修改]
作者: sandorn    时间: 2015-12-31 17:18
学习学习!!!!!
作者: lcylcyll    时间: 2016-1-1 22:24
看看怎么来用的啊
作者: JSDYWZ    时间: 2016-1-21 17:35
TC5.0 - 另类调试输出 ,解决一些烦恼
作者: nasmaak    时间: 2016-1-30 17:03
66666666
作者: qq260893875    时间: 2016-2-3 03:56
66666666
作者: menglovelili    时间: 2016-2-3 11:37
学习学习
作者: z8935640    时间: 2016-2-9 09:19
trhthryjt
作者: jodon27    时间: 2016-2-9 19:47
学习一下!!
作者: laowantong    时间: 2016-2-9 22:18

作者: 天翔    时间: 2016-2-9 23:52
学习一下!!!
作者: yjbdmc    时间: 2016-2-13 05:35
kkkkkkkkkkkkkkkkkkk
作者: 260932348    时间: 2016-2-14 03:29

作者: sunshadow_ja    时间: 2016-2-14 09:42
5555555555555555555555555555555555
作者: 75600385    时间: 2016-2-16 18:20
,,666666
作者: 悟空道人    时间: 2016-2-19 20:44
看看先
作者: dt12319    时间: 2016-2-28 20:45
22222222222222222222222222222
作者: hehuangzang    时间: 2016-3-1 22:29
家建军节建军节建军节
作者: 来不及的来得及    时间: 2016-3-23 01:45
提示: 作者被禁止或删除 内容自动屏蔽
作者: sd172240    时间: 2016-3-23 17:08
好东西啊,谢谢楼主分享
作者: myaoao    时间: 2016-4-15 20:40
1111111111




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1