Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Открыть папку в Explorer'е


Автор: Budy 13.6.2005, 18:45
:Привет, доброго времени суток!
Подскажите плз, как мона открыть программно папку в броузере.

Автор: _hunter 13.6.2005, 18:56
ShellExecute()

Автор: Budy 14.6.2005, 12:09
Не могу понять, не работает.
Подскажите плз, как этой проце сказать что надо открыть папку Dir: String.
Пробую ShellExecute(Form1.Handle,'','','',PAnsiChar(Dir),SW_NORMAL);

Автор: Rrader 14.6.2005, 12:17
Код

ShellExecute(Form1.Handle, 'Open', PChar(Dir), NIL, NIL, SW_NORMAL);

Автор: Poseidon 14.6.2005, 12:26
Код
uses ShellApi
...

ShellExecute(Handle,nil,Dir,nil,nil,SW_Restore);


Dir - это твоя папка в String - виде
Добавлено @ 12:27
Rrader, молодец smile , опередил smile

Автор: Dimannn 14.6.2005, 22:21
Код

WinExec('explorer.exe '+Dir,SW_Normal);


Работает без ShellApi.

Автор: Akella 15.6.2005, 15:34
WinExec и ShellExecute устаревшие функции и оставлены для совместимости, нужно использовать
CreateProcess, мало того не требуется дополнительных объявлений в USES,типа ShellApi

Код

procedure TForm1.Button1Click(Sender: TObject);
var
  StartInfo: TStartupInfo;
  ProcInfo: TProcessInformation;
  CmdLine: ShortString;
begin
  { Помещаем имя файла между кавычками, с соблюдением всех пробелов в именах Win9x }
//CmdLine := '"' + Filename + '" ' + Params;
  CmdLine := 'explorer /e, d:\myfolder';
  FillChar(StartInfo, SizeOf(StartInfo), #0);
  with StartInfo do
  begin
    cb := SizeOf(StartInfo);
    dwFlags := STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES;
    wShowWindow := sw_normal;
  end;
  CreateProcess(nil, PChar( String( CmdLine ) ), nil, nil, false,
                          CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil,
                          nil,StartInfo,ProcInfo);


end;


Автор: Poseidon 15.6.2005, 23:51
Цитата(dsergey @ 15.6.2005, 15:34)
WinExec и ShellExecute устаревшие функции и оставлены для совместимости
Может и так, но они рабочие! И согласись, проще написать одну строчку, чем насколько.

Автор: Alex 16.6.2005, 07:03
dsergey, ты не совсем прав устаревшая и оставленная только для совместимости функция WinExec.

Автор: Akella 16.6.2005, 08:46
И про ShellExecute я тоже где-то читал, но всё же не нужно подключать дополнительные модули

Автор: Girder 16.6.2005, 10:16
Она просто так сказать "опасна" smile Как следствие... её возможность юзером могут быть ограниченны(через реестр). Да и как погаваривают... сама MS планирует базовые её возможности ограничит(какой-то авторитетный аналитик писал про повышение(и проблеммах) безопасности в Win) - как следствие, "теоретически", код который работает на одном компе... может не работать на другом.

PS: Поживем... увидем smile

Автор: Budy 16.6.2005, 18:11
Big thank, реально рулит smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)