Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2016, 21:12   #1
SSSSSSSSSSSSSSS
Новичок
Джуниор
 
Регистрация: 29.05.2016
Сообщений: 9
По умолчанию Помогите с файлами (открытие файла из списка в соответствующем файлу приложению, через ShellExecute)

Сделал таким образом вывод имен файлов в listbox
SendMessage(Lst1.Handle,LB_DIR,0,in teger(pchar('D:\документы\*.*')));
Можно ли сделать так что бы по нажатию кнопки файл из списка открывался в стандартной для него программе(word, блокнот и т.д)????
SSSSSSSSSSSSSSS вне форума Ответить с цитированием
Старый 29.05.2016, 22:18   #2
tsar_
Форумчанин
 
Аватар для tsar_
 
Регистрация: 06.01.2011
Сообщений: 369
По умолчанию

Ну ShellExecute открывает файлы в ассоциированных приложениях...
Программирую по необходимости
tsar_ вне форума Ответить с цитированием
Старый 29.05.2016, 22:26   #3
SSSSSSSSSSSSSSS
Новичок
Джуниор
 
Регистрация: 29.05.2016
Сообщений: 9
По умолчанию

Пробовал так, не работает
Shellexecute(Handle,'open',PAnsiCha r(Lst1.Items.Strings[Lst1.ItemIndex]),nil,nil,SW_SHOW);
не подскажете что может быть не так?
SSSSSSSSSSSSSSS вне форума Ответить с цитированием
Старый 29.05.2016, 22:51   #4
tsar_
Форумчанин
 
Аватар для tsar_
 
Регистрация: 06.01.2011
Сообщений: 369
По умолчанию

Выкладывай проект...
Программирую по необходимости
tsar_ вне форума Ответить с цитированием
Старый 29.05.2016, 23:04   #5
SSSSSSSSSSSSSSS
Новичок
Джуниор
 
Регистрация: 29.05.2016
Сообщений: 9
По умолчанию

вот ссылка на программу
https://cloud.mail.ru/public/Kiyf/DQK4RKZkm
SSSSSSSSSSSSSSS вне форума Ответить с цитированием
Старый 29.05.2016, 23:17   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
вот ссылка на программу
да нафига? посмотри, что возвращает функция Shellexecute().
Код:
function GetShellExecuteError(const ErrorCode: Integer; const FileName: string = ''): string;
var
 FN:string;
begin
{      Value	                             Meaning
 0              	The operating system is out of memory or resources.
 ERROR_FILE_NOT_FOUND	The specified file was not found.
 ERROR_PATH_NOT_FOUND	The specified path was not found.
 ERROR_BAD_FORMAT	The .EXE file is invalid (non-Win32 .EXE or error
                        in .EXE image).
 SE_ERR_ACCESSDENIED	The operating system denied access to the specified file.
 SE_ERR_ASSOCINCOMPLETE	The filename association is incomplete or invalid.
 SE_ERR_DDEBUSY	        The DDE transaction could not be completed because other
                        DDE transactions were being processed.
 SE_ERR_DDEFAIL	        The DDE transaction failed.
 SE_ERR_DDETIMEOUT	The DDE transaction could not be completed because the
                        request timed out.
 SE_ERR_DLLNOTFOUND	The specified dynamic-link library was not found.
 SE_ERR_FNF	        The specified file was not found.
 SE_ERR_NOASSOC	        There is no application associated with the given
                        filename extension.
 SE_ERR_OOM	        There was not enough memory to complete the operation.
 SE_ERR_PNF	        The specified path was not found.
 SE_ERR_SHARE     	A sharing violation occurred.}

 Result:='';
 FN:='';
 if FileName<>''
  then FN:=' '+FileName;
 case ErrorCode of
  {0                      }  0 : Result:='Системе не хватает памяти или ресурсов для выполнения операции';
  {SE_ERR_FNF             }  2 : Result:='Файл'+FN+' не найден.';
  {SE_ERR_PNF             }  3 : Result:='Путь к файлу'+FN+' не найден.';
  {SE_ERR_ACCESSDENIED    }  5 : Result:='Нет доступа к файлу'+FN+'.';
  {SE_ERR_OOM             }  8 : Result:='Недостаточно памяти для выполнения операции.';
  {ERROR_BAD_FORMAT       } 11 : Result:='Файл'+FN+' не является приложением Win32 или повреждён.';
  {SE_ERR_SHARE           } 26 : Result:='Ошибка при совместном доступе к файлу'+FN+'.';
  {SE_ERR_ASSOCINCOMPLETE } 27 : Result:='The filename association is incomplete or invalid.';
  {SE_ERR_DDETIMEOUT      } 28 : Result:='The DDE transaction could not be completed because the request timed out.';
  {SE_ERR_DDEFAIL         } 29 : Result:='Транзакция DDE не может быть выполнена.';
  {SE_ERR_DDEBUSY         } 30 : Result:='Транзакция DDE не может быть выполнена, т.к. выполняется другая транзакция DDE.';
  {SE_ERR_NOASSOC         } 31 : Result:='Файлу'+FN+' не сопоставлено приложение для его открытия.';
  {SE_ERR_DLLNOTFOUND     } 32 : Result:='Не найдена необходимая динамическая библиотека (DLL).';
  1,4,6,7,9,10,12..25          : Result:='Ошибка при работе с файлом'+FN+'.';
 end;//case
end;
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 29.05.2016, 23:20   #7
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

а ещё ловчей - во:
Код:
const
  MAX_MESSAGE_SIZE = 512;

function GetErrorMessage(const GetLastError_CODE: DWORD): string;
var
  p: pchar;
begin
  GetMem(p, MAX_MESSAGE_SIZE);
  FillChar(p^, MAX_MESSAGE_SIZE, 0);
  FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,
                nil,
                GetLastError_CODE,
                0, p, MAX_MESSAGE_SIZE - 1, nil);
  Result:= p;
  FreeMem(p, MAX_MESSAGE_SIZE);
end;

procedure ShowLastError;
begin
  MessageBox(0, PChar(GetErrorMessage(GetLastError())), 'Shit happens!',
             MB_OK + MB_ICONSTOP);
end;
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 29.05.2016, 23:31   #8
SSSSSSSSSSSSSSS
Новичок
Джуниор
 
Регистрация: 29.05.2016
Сообщений: 9
По умолчанию

блин, мы только начали это проходить и не получается разобраться, можешь просто код написать как открывать файлы
SSSSSSSSSSSSSSS вне форума Ответить с цитированием
Старый 29.05.2016, 23:40   #9
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
блин, мы только начали это проходить и не получается разобраться, можешь просто код написать как открывать файлы
ну охренеть теперь! А вот это, типа, проходили, да?
Код:
SendMessage(Lst1.Handle, LB_DIR, 0, integer(pchar('D:\документы\*.*')));
проехали!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 29.05.2016, 23:46   #10
SSSSSSSSSSSSSSS
Новичок
Джуниор
 
Регистрация: 29.05.2016
Сообщений: 9
По умолчанию

нет, на по факту мало что объясняют поэтому и приходится пытаться искать и разбираться самому в интернете
SSSSSSSSSSSSSSS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
открытие файла через функцию Артэс Общие вопросы C/C++ 11 16.05.2012 14:10
Открытие файла через делфи Vitalya_1993 Помощь студентам 0 18.12.2011 13:48
Открытие файла через програму kettanaito Общие вопросы Delphi 7 15.08.2011 14:54
ShellExecute открытие папки и выделение файла Bell-Zephyr Помощь студентам 2 30.06.2011 17:38
Открытие графического файла, через FileDialog Ker_33rus Общие вопросы по Java, Java SE, Kotlin 1 26.12.2010 15:26