又是我来答你的问题啦
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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)