如何在屏幕指定位置输出文字?如何更改其它应用程序界面标签?(200分)

  • 主题发起人 主题发起人 cqcredit
  • 开始时间 开始时间
C

cqcredit

Unregistered / Unconfirmed
GUEST, unregistred user!
有谁知道,如何在屏幕指定位置输出文字?<br>有一个已经安装好的应用程序,我想更改其中的某些标签,用DELPHI怎么处理?<br>高手们能给段DELPHI程序代码吗?<br>我的邮箱: cqcredit@163.com
 
建议你直接修改 exe文件,用工具改还简单点。<br>你通过你自己的程序去监控这个软件是否执行了,执行了的话,修改application.name,title还容易点,一般有api可以改,但是如果要修改里面某张form的label的话,就很惨了。<br>还是针对EXE里面的字眼,修改已有的exe文件的数据段部分容易点,如果没有加密的话。
 
直接用WIN32 API TextOut可以在屏幕任意位置输出文本。<br>如果你要修改某些标签,那只需要找到句柄 修改就可以了
 
楼上的,给段代码啊!
 
暗夜中独舞,的方法大概就是,取得桌面的DC,然后TEXTOUT,但是这样做没有持久性。<br><br>楼主可以试透明窗体。
 
同意Textout<br><br>想修改程序的Tabsheet,有点难度了
 
朋友们,给段代码可以吗? 你们说的TEXTOUT,我试过,根本不行!
 
TEXTOUT如果有多个表单,就算找到句柄,也很难判断当前是哪个,该写在哪里,而且要执行另外的程序,有点像外挂,不大拿得出手。<br><br>我觉得这样不是很方便,建议还是直接修改exe。<br>不过修改exe的局限性也很大,就是字数一般要比原来的少,如果一个label只有2个中文,你没地方写第三个字。
 
CWindowDC dc(GetDesktopWindow());<br><br> CPen pen(PS_SOLID,1,RGB(255,34,55));<br> CPen *pOldPen=dc.SelectObject(&amp;pen);<br> dc.TextOut(100,100,"test");<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dc.SelectObject(pOldPen);<br><br>既然你想用TEXTOUT 给个C++的你参考吧,
 
{在左上角显示时间}<br>procedure ThreadProc;<br>var<br>&nbsp; hScreenDC: hdc;<br>&nbsp; SystemTime: _SYSTEMTIME;<br>&nbsp; Temp: string;<br>&nbsp; MyOutput: PChar;<br>begin<br>&nbsp; while true do<br>&nbsp; begin<br>&nbsp; &nbsp; Sleep(100);<br>&nbsp; &nbsp; hScreenDC := GetDC(0);<br>&nbsp; &nbsp; GetLocalTime(SystemTime);<br>&nbsp; &nbsp; Temp := format('Current Time is %d-%d-%d %d:%d:%d', [SystemTime.wYear,<br>&nbsp; &nbsp; &nbsp; SystemTime.wMonth,<br>&nbsp; &nbsp; &nbsp; &nbsp; SystemTime.wDay,<br>&nbsp; &nbsp; &nbsp; &nbsp; SystemTime.wHour,<br>&nbsp; &nbsp; &nbsp; &nbsp; SystemTime.wMinute,<br>&nbsp; &nbsp; &nbsp; &nbsp; SystemTime.wSecond]);<br>&nbsp; &nbsp; MyOutPut := Pchar(temp);<br>&nbsp; &nbsp; TextOut(hScreenDC, 0, 0, MyOutPut, lstrlen(MyOutPut));<br>&nbsp; &nbsp; ReleaseDC(0, hScreenDC);<br>&nbsp; end;<br>end;<br><br>{在右上角显示时间}<br>procedure ThreadProc1;<br>var<br>&nbsp; hScreenDC: hdc;<br>&nbsp; SystemTime: _SYSTEMTIME;<br>&nbsp; Temp: string;<br>&nbsp; MyOutput: PChar;<br>begin<br>&nbsp; while true do<br>&nbsp; begin<br>&nbsp; &nbsp; Sleep(100);<br>&nbsp; &nbsp; hScreenDC := GetDC(0);<br>&nbsp; &nbsp; GetLocalTime(SystemTime);<br>&nbsp; &nbsp; Temp := format('Current Time is %d-%d-%d %d:%d:%d', [SystemTime.wYear,<br>&nbsp; &nbsp; &nbsp; SystemTime.wMonth,<br>&nbsp; &nbsp; &nbsp; &nbsp; SystemTime.wDay,<br>&nbsp; &nbsp; &nbsp; &nbsp; SystemTime.wHour,<br>&nbsp; &nbsp; &nbsp; &nbsp; SystemTime.wMinute,<br>&nbsp; &nbsp; &nbsp; &nbsp; SystemTime.wSecond]);<br>&nbsp; &nbsp; MyOutPut := Pchar(temp);<br>&nbsp; &nbsp; TextOut(hScreenDC, 1000, 0, MyOutPut, lstrlen(MyOutPut));<br>&nbsp; &nbsp; ReleaseDC(0, hScreenDC);<br>&nbsp; end;<br>end;
 
很感谢大家!
 
后退
顶部