Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Открыть папку, CreateProcess 
:(
    Опции темы
DriveSoftware
Дата 4.10.2003, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 17.3.2003

Репутация: нет
Всего: 4



Приветик!

Как открыть папку с помощью функции CreateProcess,
т.к. надо знать Handle окна с этой папкой.
PM MAIL WWW ICQ   Вверх
<Spawn>
Дата 4.10.2003, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 1
Всего: 64



а чем ShellExecute не нравится?

Код
ShellExecute(Handle, 'open',PAnsiChar(ExtractFilePath(Application.ExeName)),nil,nil, SW_SHOWNORMAL)



--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
DriveSoftware
Дата 4.10.2003, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 17.3.2003

Репутация: нет
Всего: 4



Мне нужно знать Handle открытого окна, а ShellExecute этого не дает!
PM MAIL WWW ICQ   Вверх
p0s0l
Дата 5.10.2003, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 14
Всего: 112



Цитата
Как открыть папку с помощью функции 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;



--------------------
С уважением, г-н Посол.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0418 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.