HWND hWnd = FindWindow(NULL, "OSTOS Alarm Viewer & даже более ...");
if (hWnd) {
hWnd2 = FindWindowEx(hWnd, NULL, "AfxFrameOrView42", NULL);
if (hWnd2) {
hWnd3 = FindWindowEx(hWnd2, NULL, "Edit", NULL);
if (hWnd3) {
//ShowMessage("нашел edit");
AnsiString s="test";
SendMessage(hWnd3, WM_SETTEXT, s.Length(), Integer(&s[1]));//заполняеться мемо
}
}
}
Помогите перевести код Delphi на C++ Builder
Как можно в Edit'ы другого приложения вывести требуемый текст?
Для решения использовал следующие действия:
Код:
этот код заполняет 1 Edit в программе а как заполнить другой Edit?
Нашел код на Delphi немогу перевести на C++ Builder помогите!
Код:
var i:word; //счетчик - глобальная переменная
function proc(wnd:hWnd):boolean;stdcall;
var wndClass:array[0..255] of char;
begin
Result:=True;
GetClassName(wnd, wndClass, sizeof(wndClass));
if wndClass='TEdit' then
begin
case i of //выбираем Edit по счету и отсылаем сообщение
0: SendMessage(wnd,WM_SETTEXT,0,LParam(PAnsiChar('Text0')));
1: SendMessage(wnd,WM_SETTEXT,0,LParam(PAnsiChar('Text1')));
2: SendMessage(wnd,WM_SETTEXT,0,LParam(PAnsiChar('Text2')));
end;
inc(i); //увеличиваем счетчик на 1
end;
end;
EnumChildWindows(window,@proc,0);
function proc(wnd:hWnd):boolean;stdcall;
var wndClass:array[0..255] of char;
begin
Result:=True;
GetClassName(wnd, wndClass, sizeof(wndClass));
if wndClass='TEdit' then
begin
case i of //выбираем Edit по счету и отсылаем сообщение
0: SendMessage(wnd,WM_SETTEXT,0,LParam(PAnsiChar('Text0')));
1: SendMessage(wnd,WM_SETTEXT,0,LParam(PAnsiChar('Text1')));
2: SendMessage(wnd,WM_SETTEXT,0,LParam(PAnsiChar('Text2')));
end;
inc(i); //увеличиваем счетчик на 1
end;
end;
EnumChildWindows(window,@proc,0);
хотя если перевести код составляет проблему..