![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Считать данные из другого приложения [D7, WinXP]
bva © (2005-10-20 12:00:00)Необходимо вытащить данные из двух TEdit другого приложения.
Помогите плиз.
делаю следущим образом но не получается.
Procedure FindPerso(FormName, WindName:string; var Account, Password:string);
Function GetText(WindowHandle: hwnd):string;
var txtLength : integer;
buffer: string;
begin
TxtLength := SendMessage(WindowHandle, WM_GETTEXTLENGTH, 0, 0);
txtlength := txtlength + 1;
setlength (buffer, txtlength);
sendmessage (WindowHandle,wm_gettext, txtlength, longint(@buffer[1]));
result := buffer;
end;
var I: Integer;
hSnapshoot: THandle;
pe32: TProcessEntry32;
hP:integer;
perso:string;
H, H2:hWnd;
begin
hSnapshoot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
i:=0;
if (hSnapshoot = -1) then
Exit;
pe32.dwSize := SizeOf(TProcessEntry32);
if (Process32First(hSnapshoot, pe32)) then
repeat
perso:=pe32.szExeFile;
if AnsiPos('PERSO.EXE',UpperCase(perso))<>0 then begin
i:=1;
H:=FindWindow(PChar(FormName),PChar(WindName));
H2:=FindWindowEx(H,H2,'TEdit',nil);
Account:=GetText(H2);
H2:=FindWindowEx(H,H2,'TEdit',nil);
Password:=GetTExt(H2);
break;
end;
until not Process32Next(hSnapshoot, pe32);
if i<>1 then begin
hP:=OpenProcess(PROCESS_TERMINATE, FALSE, GetCurrentProcessId );
TerminateProcess(hP,0);
end;
CloseHandle (hSnapshoot);
end;
Leonid Troyanovsky (2005-10-20 13:11:00) [1]
> bva © (20.10.05 12:00)
..
> hP:=OpenProcess(PROCESS_TERMINATE, FALSE, GetCurrentProcessId );
> TerminateProcess(hP,0);
Все предыдущее лишнее, т.е.
TerminateProcess(GetCurrentProcess, 0);
вполне достаточно.
--
Regards, LVT.