TC官方合作论坛

 找回密码
 立即注册
楼主: 18667006365

已删除

  [复制链接]
发表于 2015-12-4 03:10:18 | 显示全部楼层
居然不是控制台
回复 支持 反对

使用道具 举报

发表于 2015-12-4 03:53:46 | 显示全部楼层
修改了几个小地方 等待改成了循环判断 编辑框用户只能读 不能写 自动滚动到底部 自动选中最后一条输出
还有把最重要的输出给改掉了 提交字符串太慢 不如直接发送消息过去来的直接   实际上以后还可以支持数组的输出 遍历一下就好
再就是改了改输出框宽高的设置 然后没啥了 再就是我觉得应该在输出框的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. 结束
复制代码
回复 支持 反对

使用道具 举报

发表于 2015-12-4 08:35:13 | 显示全部楼层
............
回复

使用道具 举报

发表于 2015-12-4 08:55:18 | 显示全部楼层
顶顶顶顶顶顶顶顶顶
回复 支持 反对

使用道具 举报

发表于 2015-12-4 09:55:01 | 显示全部楼层
嘿嘿,这个帖子要回复看看!!...
回复 支持 反对

使用道具 举报

发表于 2015-12-4 09:59:42 | 显示全部楼层
搜狗浏览器提醒您,这可能是虚假的中奖网站,哈哈
回复 支持 反对

使用道具 举报

发表于 2015-12-4 10:05:02 | 显示全部楼层
本帖最后由 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 吗?
因为很重要所以我放大
回复 支持 反对

使用道具 举报

发表于 2015-12-4 10:15:21 | 显示全部楼层
看看
回复

使用道具 举报

发表于 2015-12-4 15:45:31 | 显示全部楼层
sam7894604 发表于 2015-12-4 10:05
我说与或非你还真荣幸阿,能被有名的 rainshine 修改代码
既然 rainshine 改了一份,那我也手痒鸡婆点在改 ...

哈哈 没你有名了 看过你写的那么多tc4模块 真心膜拜 现在我都销声匿迹隐退江湖咯 新人们都还不知道我呢   昨晚手痒痒了~就随手修改了下 也不是很精细 还是有点问题   这下与或非更荣幸了……又被老鬼修改代码 而且那俩bug貌似都被巧妙解决了 目测现在比较完善了
话说我居然忘了ReplaceSel还可以这么用 嘿嘿 好久不碰脑袋都生锈了 而且我看了你代码才知道原来tc的SendMessage居然可以直接发送字符串过去啊……不知道是tc5的新特性还是原来就支持 我都忘光了。。 另外其实我觉得他这个直接用OutputDebugString更好些。
ps 怪不得那个图标我看着眼熟 就想不起来是什么语言的默认图标了= =。delphi 7原生好像全部ansi来着。你整个回复就最下面那行红字最显眼……
回复 支持 反对

使用道具 举报

发表于 2015-12-4 16:28:07 来自手机 | 显示全部楼层
好久了等你
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-9-30 16:57 , Processed in 0.035775 second(s), 18 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

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