Delphi如何通过已知句柄得到外部程序Edit的值 急!

Delphi如何通过已知句柄得到外部程序Edit的值 急!,第1张

又是我来答你的问题啦

procedure TForm1Button1Click(Sender: TObject);

var

h32770 : THandle;// spy4win 生成的语句

hEdit1: THandle;

buf:array [1100] of Char;

begin

h32770 := FindWindow('#32770', 'VC6MFC测试程序'); //// spy4win 生成的语句

hEdit1 := GetDlgItem(h32770, $000003E8);

//SendMessage(hEdit1, WM_SETTEXT, 0, Integer(PChar('设置的文字')));

SendMessage(hEdit1, WM_GETTEXT, 100, Integer(@buf));

ShowMessage(buf);

end;

找到外部程序窗体的Handle,然后:

SetWindowPos(Handle,HWND_NOTOPMOST,0,0,646,600,SWP_FRAMECHANGED and SWP_DRAWFRAME and SWP_SHOWWINDOW)

具体用法找查找SetWindowPos API函数。

用Delphi的编译器dcc32exe,可在DOS命令窗口编译你的Pascal程序,但程序的基本结构必须如下:

program Area; {程序首部}

{$APPTYPE CONSOLE} {编译指令。使用Turbo Pascal编译时不需要}

const pi=314159; {说明部分——数据描述}

var s,r:real;

begin {执行部分}

readln(r);

s:=pisqr(r);

writeln('s=',s);

end

也可直接从网上下载一个Turbo Pascal,然后在它的集成开发环境中打开、编译。

想当年,Turbo Pascal的火爆程序,可一点不输如今的C#,那是Anders Hejlsberg(Delphi之父,也是C#之父)的第一个开山之作,Borland就是靠着这个Turbo Pascal的编译器,挖到了第一桶金。 呵呵,扯远了。

function GetFocusHandle: HWND;

var

h: HWND;

c: array[0102432] of Char;

idAttach: Cardinal;

begin

H := GetForegroundWindow;

idAttach := GetWindowThreadProcessId(h, nil);

if not AttachThreadInput(idAttach , GetCurrentThreadId(), True) then Exit;

Result := GetFocus;

AttachThreadInput(idAttach, GetCurrentThreadId(), false );

end;

以上就是关于Delphi如何通过已知句柄得到外部程序Edit的值 急!全部的内容,包括:Delphi如何通过已知句柄得到外部程序Edit的值 急!、delphi 如何指定外部程序窗体尺寸、如何编译外部程序(pascal语言) delphi等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10035042.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存