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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2016, 19:04   #21
demon31
Пользователь
 
Регистрация: 17.05.2015
Сообщений: 28
По умолчанию

У меня есть зашифрованные файлы, разных типов, в программе я их открываю, свойственно, чтоб поработать их нужно расшифровать, в момент открытия я это делаю, наработавшись с файлом, мне нужно вернуть его в исходное состояние т.е. зашифровать, а для этого мне нужно знать момент когда файл закрыли, чтоб зашифровать.
demon31 вне форума Ответить с цитированием
Старый 15.12.2016, 19:11   #22
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

А как ловите момент когда надо расшировать файл для начала работы?
Ведь это ровно та же проблема...
waleri вне форума Ответить с цитированием
Старый 15.12.2016, 19:16   #23
demon31
Пользователь
 
Регистрация: 17.05.2015
Сообщений: 28
По умолчанию

У меня листбокс со списком файлов, есть кнопка открыть, при нажатии кнопки файл дешифруется, а следом вызывается его открытие, никаких проблем.
demon31 вне форума Ответить с цитированием
Старый 15.12.2016, 19:28   #24
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

В таком случае в чем проблема использовать CreateProcess?
Вся информация есть в реестре - какой файл каким процессом надо открывать...
waleri вне форума Ответить с цитированием
Старый 15.12.2016, 19:36   #25
demon31
Пользователь
 
Регистрация: 17.05.2015
Сообщений: 28
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
В таком случае в чем проблема использовать CreateProcess?
Я нигде не видел подобного, во всех случаях там ручной ввод как пути, как и того что открыть.
demon31 вне форума Ответить с цитированием
Старый 15.12.2016, 19:39   #26
demon31
Пользователь
 
Регистрация: 17.05.2015
Сообщений: 28
По умолчанию

Код:
procedure WinExec(const ACmdLine: String; const ACmdShow: UINT = SW_SHOWNORMAL);
var
  SI: TStartupInfo;
  PI: TProcessInformation;
  CmdLine: String;
begin
  Assert(ACmdLine <> '');
 
  CmdLine := ACmdLine;
  UniqueString(CmdLine);
 
  FillChar(SI, SizeOf(SI), 0);
  FillChar(PI, SizeOf(PI), 0);
  SI.cb := SizeOf(SI);
  SI.dwFlags := STARTF_USESHOWWINDOW;
  SI.wShowWindow := ACmdShow;
 
  SetLastError(ERROR_INVALID_PARAMETER);
  {$WARN SYMBOL_PLATFORM OFF}
  Win32Check(CreateProcess(nil, PChar(CmdLine), nil, nil, False, CREATE_DEFAULT_ERROR_MODE {$IFDEF UNICODE}or CREATE_UNICODE_ENVIRONMENT{$ENDIF}, nil, nil, SI, PI));
  {$WARN SYMBOL_PLATFORM ON}
  CloseHandle(PI.hThread);
  CloseHandle(PI.hProcess);
end;
У меня сейчас такой код для него, и тут нет ничего для типов файлов, открывает только экзешники нормально, текстовый файл как ошибку выбьет.
demon31 вне форума Ответить с цитированием
Старый 15.12.2016, 21:18   #27
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Запускать файл напрямую естественно не получится.
Из реестра следует взять имя программы, которую следует запускать.
waleri вне форума Ответить с цитированием
Старый 15.12.2016, 21:24   #28
demon31
Пользователь
 
Регистрация: 17.05.2015
Сообщений: 28
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Запускать файл напрямую естественно не получится.
Из реестра следует взять имя программы, которую следует запускать.
Моих знаний не хватает чтоб понять то, что ты хочешь до меня донести.
demon31 вне форума Ответить с цитированием
Старый 15.12.2016, 23:44   #29
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Нужно сделать свой ShellExecute, правда задача эта весьма нетривиальна.
waleri вне форума Ответить с цитированием
Старый 16.12.2016, 11:07   #30
demon31
Пользователь
 
Регистрация: 17.05.2015
Сообщений: 28
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Нужно сделать свой ShellExecute, правда задача эта весьма нетривиальна.
.-.
demon31 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отследить разбегание Sashenka1 Общие вопросы Delphi 0 04.04.2016 16:40
Отследить ошибку LuxMi C# (си шарп) 5 01.02.2013 09:25
Отследить программу Михаил Юрьевич Общие вопросы Delphi 6 09.09.2012 17:06
Отследить проблему giarmul JavaScript, Ajax 0 09.08.2010 20:49
Отследить стринги san72 Общие вопросы Delphi 2 30.05.2009 17:40