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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Открыть файл 
V
    Опции темы
Letov
  Дата 28.12.2007, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Подскажите, пожалуйста, как открыть файл. (Например, если это файл *.bmp то открыть программой для просмотра bmp, если это *.bat, то открыть на исполнение, если это *.doc, то открыть в программе для просмотра doc и т.д.).


--------------------
Не бывает плохих языков программирования. Бывают плохие программисты...

PM MAIL   Вверх
Exai1e
Дата 28.12.2007, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 2
Всего: 30



Код

ShellExecute(Application.Handle, 'open', PChar(sFullFileName), nil, nil, SW_SHOW);

uses
  ShellAPI 



--------------------
"Решение зависит от выбранного геморроя" © Snowy
"у нас как в армии - либо работает, либо так и задумано"
PM MAIL ICQ   Вверх
Letov
Дата 28.12.2007, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Огромное спасибо. Вот нашел в DRKB такой код

Код

Function ExecuteFile(FileName, Params, WorkingDir:string; Wait:boolean):integer;
{©Drkb v.3(2007): www.drkb.ru, 
®Vit (Vitaly Nevzorov) - [email protected]}
var
buffer: array[0..511] of Char;
TmpStr: String;
i: Integer;
StartupInfo:TStartupInfo;
ProcessInfo:TProcessInformation;
ext, key, fname, path:string;
exitcode:cardinal;
begin
if WorkingDir<>'' then ChDir(WorkingDir);
ext:=lowercase(ExtractFileExt(FileName));
path:=ExtractFilePath(FileName);
if ext<>'.exe' then
   With TRegistry.create do
     try
       RootKey:=HKEY_CLASSES_ROOT;
       OpenKey(ext, false);
       Key:=ReadString('');
       CloseKey;
       OpenKey(key+'\Shell\open\command', false);
       key:=ReadString('');
       fname:=ExtractFileName(key);
       if pos('/', fname)>0 then fname:=copy(fname,1, pos('/',fname)-1);
       FName:=StringReplace(FName, '%1', '', [rfReplaceAll, rfIgnoreCase]);
       if pos(' ',FileName)>0 then FileName:='"'+Filename+'"';
       TmpStr:=ExtractFilePath(key)+Fname+' '+FileName;
       if Params<>'' then TmpStr := TmpStr + ' ' + Params;
       Closekey;
     finally
       free;
     end
else
   begin
     TmpStr := FileName;
     TmpStr := TmpStr + ' ' + Params;
   end;
StrPCopy(buffer,TmpStr);
FillChar(StartupInfo,Sizeof(StartupInfo),#0);
StartupInfo.cb := Sizeof(StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := SW_SHOWNORMAL;
if CreateProcess(nil, buffer, nil, nil, false, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo) then
   begin
     if Wait then
       begin
         while WaitforSingleObject(ProcessInfo.hProcess,200)=WAIT_TIMEOUT         do application.ProcessMessages;
         GetExitCodeProcess(ProcessInfo.hProcess, exitcode);
       end;
   end
else
   Result := GetLastError();
end;


Но так гораздо привлекательнее))) 
Код
ShellExecute(Application.Handle, 'open', PChar(sFullFileName), nil, nil, SW_SHOW);

uses
  ShellAPI 




--------------------
Не бывает плохих языков программирования. Бывают плохие программисты...

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

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

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

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


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

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


 




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


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

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