Alextp
|
Posted: Mon Oct 10, 2005 19:20 Post subject: |
|
|
Догадался, как сделать проще всего. Handle окна передается плагину в FsExecuteFile (пар. MainWin), так что просто вызываем RereadPanel с этим хендлом:
Code: | procedure RereadPanel(hWnd: THandle);
const
EM_DISPLAYBAND = WM_USER+51;
cm_RereadSource = 540;
begin
Sleep(200);
SendMessage(hWnd, EM_DISPLAYBAND, cm_RereadSource, 0);
Sleep(200);
end; |
2botace
Спасибо за подсказку! Да, твой код на Дельфи:
Code: | type
TEnumWindowsParam = record
dwPID: DWORD;
hFoundWnd: HWND;
end;
PEnumWindowsParam = ^TEnumWindowsParam;
function EnumWindowsProc(hWnd: THandle; l: LPARAM): BOOL; stdcall;
var
pParam: PEnumWindowsParam;
dwPID: DWORD;
buf: array[0..200] of char;
begin
pParam:= PEnumWindowsParam(l);
dwPID:= 0;
GetWindowThreadProcessId(hWnd, @dwPID);
if pParam^.dwPID=dwPID then
if (GetClassName(hWnd, buf, SizeOf(buf))>0) and (buf='TTOTAL_CMD') then
begin
pParam^.hFoundWnd:= hWnd;
Result:= false;
end;
Result:= true;
end;
function GetTCHWnd: THandle;
var
param: TEnumWindowsParam;
begin
param.dwPID:= GetCurrentProcessId;
param.hFoundWnd:= 0;
EnumWindows(@EnumWindowsProc, LPARAM(@param));
if IsWindow(param.hFoundWnd)
then Result:= param.hFoundWnd else Result:= 0;
end; |
|
|