Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.06.2017, 10:30
Daniil Daniil вне форума
Прохожий
 
Регистрация: 02.04.2014
Сообщения: 22
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Установка по нажатию кнопки bitbtn

Всем привет! не могу сообразить, вроде на правильном пути но все же не работает моя задумка, суть в том, что бы по нажатию кнопки устанавливалась одна программа а при нажатом checkbox и по нажатию все той же кнопки устанавливалась другая программа: Пример кода:

Код:
procedure TForm4.Image13Click(Sender: TObject);
begin
      if CheckBox3.checked then  begin
      CheckBox3.Enabled:=true;
           begin
       //--------------------avast
  if FileExists('\\PCServer\Distrib\Avast\avast.exe')
  then
  WinExec('\\PCServer\Distrib\Avast\.exe',1)

 else
  ShowMessage('File not found,');
   //--------------------------------------------
   end;
      end else

//------------------- NOD32-----------------------
if MessageDlg('Скопируйте инсталяционный пакет согласно разрядности системы и запустите установку ( Только для сотрудников ).',mtConfirmation,[mbYes,mbNo],0)= mrYes then
winexec('explorer \\PCServer\autoinstall\NOD42_2018\Eset_NOD42_2018',SW_SHOW)
end;

Второй вариант тоже не работает:
Код:
//-----------Tight -------
if FileExists('\\PSServer\autoinstall\TightVNC 2.7.exe')
  then
  WinExec('\\PSServer\autoinstall\TightVNC 2.7.exe',1)
else
 if CheckBox7.checked= false then  begin
  if FileExists('\\PSServer\autoinstall\tightvnc-2-setup.exe')
   then

WinExec('\\PSServer\autoinstall\tightvnc-2-setup.exe',1)  ;
И есть еще один вариан то там уже 2 checkbox-a и одна кнопка, три разных программы предполагается запускать.

Последний раз редактировалось Daniil, 21.06.2017 в 11:00.
Ответить с цитированием
  #2  
Старый 21.06.2017, 12:08
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Код:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
 if CheckBox3.checked then
  begin
  //--------------------avast
 // CheckBox3.Enabled:= FileExists('\\PCServer\Distrib\Avast\avast.exe');
   if WinExec('\\PCServer\Distrib\Avast\.exe',1) < 32 then
    ShowMessage('File not found,');
  end else
   begin
   //------------------- NOD32-----------------------
    if MessageDlg('Скопируйте инсталяционный пакет согласно разрядности' +
     ' системы и запустите установку ( Только для сотрудников ).',
      mtConfirmation,[mbYes,mbNo],0)= mrYes then
       if WinExec('explorer \\PCServer\autoinstall\NOD42_2018\Eset_NOD42_2018',SW_SHOW) < 32 then
        ShowMessage('File not found,');
   end;
end;
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
Daniil (21.06.2017)
  #3  
Старый 21.06.2017, 12:31
Daniil Daniil вне форума
Прохожий
 
Регистрация: 02.04.2014
Сообщения: 22
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Дополнение:

Что означает < 32 then???
Ответить с цитированием
  #4  
Старый 21.06.2017, 12:35
Daniil Daniil вне форума
Прохожий
 
Регистрация: 02.04.2014
Сообщения: 22
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Дополнение:

При этом действии выводит ShowMessage('File not found,'); Путь до файла правильный , сам файл существует, выполняю это все на win 10! возможно это и есть причина?
if CheckBox3.checked then
begin
//--------------------avast
// CheckBox3.Enabled:= FileExists('\\PCServer\Distrib\Avast\avast.exe');
if WinExec('\\PCServer\Distrib\Avast\.exe',1) < 32 then
ShowMessage('File not found,');
Проверил на xp, работает.В режиме совместимости windows 7 на 10-ке, не работает.

Последний раз редактировалось Daniil, 21.06.2017 в 12:51.
Ответить с цитированием
  #5  
Старый 21.06.2017, 13:05
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от Daniil
Что означает < 32 then???
Цитата:
function WinExec - If the function succeeds, it returns a value greater than 32. If the function fails, it returns an error value that indicates the cause of the failure. The return value is cast as an HINSTANCE for backward compatibility with 16-bit Windows applications. It is not a true HINSTANCE, however. It can be cast only to an int and compared to either 32 or the following error codes below.
Это устаревшая функция, вместо неё лучше вызвать ShellExecuteEx(), а ещё лучше CreateProcess()
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:40.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter