| Цитата | | Как открыть папку с помощью функции CreateProcess, |
| Код | var si : TStartUpInfo; pi : TProcessInformation; begin FillChar(si, sizeof(si), 0); si.cb := SizeOf(si); CreateProcess(nil, PChar('EXPLORER.EXE "C:\"'), nil, nil, false, 0, nil, nil, si, pi); end; |
Только так почему-то у меня не получилось узнать хэндл окна, хотя надо еще подумать. Вот как я делал:
| Код | var Handle : HWND; si : TStartUpInfo; pi : TProcessInformation; s : string;
function fn1 (h : HWND; param : LPARAM) : boolean; stdcall; begin Handle := h; Result := false; end;
begin FillChar(si, sizeof(si), 0); si.cb := SizeOf(si); CreateProcess(nil, PChar('EXPLORER.EXE "C:\"'), nil, nil, false, 0, nil, nil, si, pi); repeat Handle := HWND(-1); EnumThreadWindows(pi.dwThreadId, @fn1, 0); until Handle <> HWND(-1); SetLength (s, GetWindowTextLength(Handle)); GetWindowText(Handle, @s[1], Length(s)); Caption := s; end; | |