hsr/////////////////////////////////////////////////////
특정한 이름의 창이란 어떠한건지요....
아래것을 참조해보세요
1. 같은 어플 내의 창이라면 2가지예로
---------------------------------
procedure TForm1.Button3Click(Sender: TObject);
var
Form : TForm;
i, j : integer;
begin
for i := 0 to Application.ComponentCount-1 do begin
if (Application.Components[i] is TForm) then begin
Form := TForm(Application.Components[i]);
if Form.Caption = 'Form2' then begin//특정폼의 갭셩으로 알아낸후
for j := 0 to Form.ComponentCount-1 do begin
if (Form.Components[j].Name = Edit1.Name) then begin //특정폼의 특정 컴포
TEdit(Form.Components[j]).Text := '성공';
end;
end;
end;
end;
end;
end;
---------------------------------------
procedure TForm1.Button4Click(Sender: TObject);
begin
if assigned(Form2) then
Form2.Edit1.Text := '성공';
end;
//////////////////////////////////////
2.다른 프로그램창이라면 2가지예로
procedure TForm1.Button5Click(Sender: TObject);
var
hForm, EHwnd :HWND;
begin
hForm := FindWindow(nil, 'TargetForm');
if hForm <> 0 then begin
EHwnd := FindWindowEx(hForm, 0, PChar('TEdit'), '');
if EHwnd <> 0 then
//SendMessage(EHwnd, WM_SETTEXT, 0, LParam(PChar('성공')));
PostMessage(EHwnd, WM_SETTEXT, 0, LParam(PChar('성공')));
end;
end;
---------------------------------------------------
Handle을 구해 GlobalFindAtom등의 함수로 TWinControl로 받아
TForm형으로 바꿔하는방법등이 있습니다
아래는 자료실이던가 하여간 참조한 내용입니다.
//////////////////////
function TForm1.FindControl2(Handle: HWnd): TWinControl;
var
AtomText: array[0..31] of Char;
WindowAtom: TAtom;
begin
Result := nil;
if Handle <> 0 then
begin
//GlobalFindAtom을 이용해서 대상 윈도의 아톰을 구해온다.
WindowAtom := GlobalFindAtom( StrFmt( AtomText, 'Delphi%.8X', [GetCurrentProcessID] ) );
//GetProp를 이용해서 아톰에서 윈도우포인터를 구해온다...
//이것은 TWinControl이 생성될때 SetProp를 이용해서 써넣은것을 읽어오는것이다.
Result := TWinControl( Pointer( GetProp( Handle, MakeIntAtom( WindowAtom ) ) ) );
end;
end;
/////////////////////////
procedure TForm1.MemoAddStr(Index: Integer; Value: string);
var
MemoWnd, EditWnd: THandle;
SelStart, LineLen: Integer;
Line: string;
begin
MemoWnd := FindWindow('Notepad', '제목 없음 - 메모장');
if MemoWnd <> 0 then
begin
EditWnd := FindWindowEx(MemoWnd, 0, 'Edit', '');
if EditWnd <> 0 then
begin
if Index >= 0 then
begin
SelStart := SendMessage(EditWnd, EM_LINEINDEX, Index, 0);
if SelStart >= 0 then
Line := Value + #13#10
else
begin
SelStart := SendMessage(EditWnd, EM_LINEINDEX, Index - 1, 0);
if SelStart < 0 then Exit;
LineLen := SendMessage(EditWnd, EM_LINELENGTH, SelStart, 0);
if LineLen = 0 then Exit;
Inc(SelStart, LineLen);
Line := #13#10 + Value;
end;
특정한 이름의 창이란 어떠한건지요....
아래것을 참조해보세요
1. 같은 어플 내의 창이라면 2가지예로
---------------------------------
procedure TForm1.Button3Click(Sender: TObject);
var
Form : TForm;
i, j : integer;
begin
for i := 0 to Application.ComponentCount-1 do begin
if (Application.Components[i] is TForm) then begin
Form := TForm(Application.Components[i]);
if Form.Caption = 'Form2' then begin//특정폼의 갭셩으로 알아낸후
for j := 0 to Form.ComponentCount-1 do begin
if (Form.Components[j].Name = Edit1.Name) then begin //특정폼의 특정 컴포
TEdit(Form.Components[j]).Text := '성공';
end;
end;
end;
end;
end;
end;
---------------------------------------
procedure TForm1.Button4Click(Sender: TObject);
begin
if assigned(Form2) then
Form2.Edit1.Text := '성공';
end;
//////////////////////////////////////
2.다른 프로그램창이라면 2가지예로
procedure TForm1.Button5Click(Sender: TObject);
var
hForm, EHwnd :HWND;
begin
hForm := FindWindow(nil, 'TargetForm');
if hForm <> 0 then begin
EHwnd := FindWindowEx(hForm, 0, PChar('TEdit'), '');
if EHwnd <> 0 then
//SendMessage(EHwnd, WM_SETTEXT, 0, LParam(PChar('성공')));
PostMessage(EHwnd, WM_SETTEXT, 0, LParam(PChar('성공')));
end;
end;
---------------------------------------------------
Handle을 구해 GlobalFindAtom등의 함수로 TWinControl로 받아
TForm형으로 바꿔하는방법등이 있습니다
아래는 자료실이던가 하여간 참조한 내용입니다.
//////////////////////
function TForm1.FindControl2(Handle: HWnd): TWinControl;
var
AtomText: array[0..31] of Char;
WindowAtom: TAtom;
begin
Result := nil;
if Handle <> 0 then
begin
//GlobalFindAtom을 이용해서 대상 윈도의 아톰을 구해온다.
WindowAtom := GlobalFindAtom( StrFmt( AtomText, 'Delphi%.8X', [GetCurrentProcessID] ) );
//GetProp를 이용해서 아톰에서 윈도우포인터를 구해온다...
//이것은 TWinControl이 생성될때 SetProp를 이용해서 써넣은것을 읽어오는것이다.
Result := TWinControl( Pointer( GetProp( Handle, MakeIntAtom( WindowAtom ) ) ) );
end;
end;
/////////////////////////