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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2017, 10:07   #1
gdu
Пользователь
 
Аватар для gdu
 
Регистрация: 14.09.2017
Сообщений: 21
По умолчанию checkBox и открытие файлов по сети

Всех приветствую!
Столкнулся с такой проблемой, как открыть исполняемый файл по сети?
Вот мой код, вроде он работает! Но есть одно НО.
Код:
procedure TForm4.Image3Click(Sender: TObject);
begin
//---------------Mozilla ThunderBird
  if FileExists('\\192.168.0.25\autoinstall\Обновление\Thunderbird\Thunderbird.exe')
  then
  WinExec('\\192.168.0.25\autoinstall\Обновление\Thunderbird\Thunderbird.exe',1)
else
   ShowMessage('File not found, contact your system administrator');
   //------------END CODE---
Есть кнопка, по нажатию которой открывается исполняемый файл и там же есть checkBox1, должно быть следующее, если checkBox1 выставлен в true то по нажатию все той же кнопки открывается другая программа.
Пример на фото:
Пример.JPG

По итогу не могу реализовать этот вариант:
1. По нажатию на кнопку открывается с сервера исполняемый файл.
2. При выборе checkBox1 в true и нажатию все той же кнопки открывается другой исполняемый файл.
Помогите советом, примером, буду очень признателен.
С точки зрения банальной эрудиции, каждый здравомыслящий индивидуум способен проигнорировать тенденции парадоксальных эмоций.
gdu вне форума Ответить с цитированием
Старый 24.11.2017, 10:28   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Код:
procedure run(fname: tfilename);
begin
  if fileexists(fname) then winexec(fname)
  else showmessage( format('file "%s" not found', [extractfilename(fname)] ) );
end;
Код:
if checkbox1.checked then run('.....')
else if checkbox2.checked then run('...')
....
else run('....')
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 24.11.2017 в 10:30.
evg_m на форуме Ответить с цитированием
Старый 24.11.2017, 10:32   #3
gdu
Пользователь
 
Аватар для gdu
 
Регистрация: 14.09.2017
Сообщений: 21
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
Код:
procedure run(fname: tfilename);
begin
  if fileexists(fname) then winexec(fname)
  else showmessage( format('file "%s" not found', [extractfilename(fname)] ) );
end;
Код:
if checkbox1.checked then run('.....')
else if checkbox2.checked then run('...')
....
else run('....')
А в случае двух checkbox? при выборе нажатия на один из них
Похоже я поторопился...
С точки зрения банальной эрудиции, каждый здравомыслящий индивидуум способен проигнорировать тенденции парадоксальных эмоций.

Последний раз редактировалось gdu; 24.11.2017 в 10:34. Причина: ошибся
gdu вне форума Ответить с цитированием
Старый 24.11.2017, 10:44   #4
gdu
Пользователь
 
Аватар для gdu
 
Регистрация: 14.09.2017
Сообщений: 21
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
Код:
procedure run(fname: tfilename);
begin
  if fileexists(fname) then winexec(fname)
  else showmessage( format('file "%s" not found', [extractfilename(fname)] ) );
end;
Код:
if checkbox1.checked then run('.....')
else if checkbox2.checked then run('...')
....
else run('....')
Вот мой пример: Не работает. Работает только вот эта часть
Код:
//---------------------Open NOD32------------X86----------------
If MessageDlg('Скопируйте инсталяционный пакет согласно разрядности системы на рабочий стол и запустите установку ( Только для сотрудников ).',mtConfirmation,[mbYes,mbNo],0)= mrYes then
winexec('explorer \\192.168.0.3\autoinstall\NOD32_2016\Eset_NOD32_2017',SW_SHOW)
Код:
procedure TForm4.Image6Click(Sender: TObject);
begin
       if CheckBox6.checked= true then begin


       //-------------------------------------------avast
  if FileExists('\\192.168.0.3\autoinstall\Автоустановка\Avast\avast.exe')
  then
  WinExec('\\192.168.0.3\autoinstall\Автоустановка\Avast\avast.exe',1)
else
   ShowMessage('File not found, contact your system administrator!');
   //--------------------------------------------

      end else

//---------------------Open NOD32------------X86----------------
If MessageDlg('Скопируйте инсталяционный пакет согласно разрядности системы на рабочий стол и запустите установку ( Только для сотрудников АПО ).',mtConfirmation,[mbYes,mbNo],0)= mrYes then
winexec('explorer \\192.168.0.3\autoinstall\NOD32_2016\Eset_NOD32_2017',SW_SHOW)
end;
С точки зрения банальной эрудиции, каждый здравомыслящий индивидуум способен проигнорировать тенденции парадоксальных эмоций.
gdu вне форума Ответить с цитированием
Старый 24.11.2017, 11:09   #5
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
Вот мой пример: Не работает.
Значит, не проходит по условию:

Код:
if CheckBox6.checked= true then begin
Проверяйте Name компонента, похоже, не в тот чекбокс смотрите.

Пы.Сы. Что мешает написать просто

Код:
if CheckBox6.checked then begin
?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 24.11.2017, 11:35   #6
gdu
Пользователь
 
Аватар для gdu
 
Регистрация: 14.09.2017
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Sciv Посмотреть сообщение
Значит, не проходит по условию:

Код:
if CheckBox6.checked= true then begin
Проверяйте Name компонента, похоже, не в тот чекбокс смотрите.

Пы.Сы. Что мешает написать просто

Код:
if CheckBox6.checked then begin
?
Переписал код: Все заработало!!! СПАСИБО
Код:
procedure TForm4.Image13Click(Sender: TObject);
begin

if CheckBox3.checked then  begin
       ShellExecute(Handle, 'open', '\\192.168.0.3\Avast\avast.exe', nil, nil, SW_RESTORE);
         end else
         if MessageDlg('Скопируйте инсталяционный пакет согласно разрядности' +
     ' системы и запустите установку ( Только для сотрудников ).',
      mtConfirmation,[mbYes,mbNo],0)= mrYes then
       if WinExec('explorer \\192.168.0.3\autoinstall\NOD32_2016\Eset_NOD32_2017',SW_SHOW) < 32 then
        ShowMessage('File not found, contact your system administrator!');


end;
Осталось решить вопрос с двумя checkBox и кнопкой.
Заметил еще, что проблема была в том, что не открывался исполняемый файл расположенный в скрытой расшаренной папке. Может есть ответ на этот вопрос?
С точки зрения банальной эрудиции, каждый здравомыслящий индивидуум способен проигнорировать тенденции парадоксальных эмоций.

Последний раз редактировалось gdu; 24.11.2017 в 11:39.
gdu вне форума Ответить с цитированием
Старый 24.11.2017, 12:30   #7
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
Сообщение от gdu Посмотреть сообщение
Осталось решить вопрос с двумя checkBox и кнопкой.
А разве выше Вам на него не ответили?

Конкретно для приведённого на картинке примера с двумя офисами:

1) получаете имя файла с шары
2) в зависимости от чекбокса запускаете локально либо либру, либо опен-офис, при этом в качестве параметра передаёте в него имя файла из пункта 1

UPDATE

Пардон, я неправильно трактовал картинку. Но всё-равно ответ Вам уже дал evg_m во втором посте:

Код:
if checkbox1.checked then run('.....')
else if checkbox2.checked then run('...')
....
else run('....')
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...

Последний раз редактировалось Sciv; 24.11.2017 в 12:35.
Sciv вне форума Ответить с цитированием
Старый 24.11.2017, 12:43   #8
gdu
Пользователь
 
Аватар для gdu
 
Регистрация: 14.09.2017
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Sciv Посмотреть сообщение
А разве выше Вам на него не ответили?

Конкретно для приведённого на картинке примера с двумя офисами:

1) получаете имя файла с шары
2) в зависимости от чекбокса запускаете локально либо либру, либо опен-офис, при этом в качестве параметра передаёте в него имя файла из пункта 1

UPDATE

Пардон, я неправильно трактовал картинку. Но всё-равно ответ Вам уже дал evg_m во втором посте:

Код:
if checkbox1.checked then run('.....')
else if checkbox2.checked then run('...')
....
else run('....')
Я просто описал последовательность своих действий, Сейчас проблема в другом, по нажатию на кнопку не открывает приложение, проблема в том, что расшаренная папка на сервере скрыта! как решить вот эту проблему пока не знаю!! если папка не скрыта все открывает.
С точки зрения банальной эрудиции, каждый здравомыслящий индивидуум способен проигнорировать тенденции парадоксальных эмоций.
gdu вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие файлов в QT. Как сделать открытие файла, через QMenuBar ? progjar Qt и кроссплатформенное программирование С/С++ 3 27.07.2016 16:08
Открытие/закрытие CD по сети Der_G()RuNu(h Работа с сетью в Delphi 9 20.08.2011 12:11
Открытие формы с использованием CheckBox Neo_AVE C++ Builder 6 09.03.2011 21:00
Открытие базы по сети FireBird Lokos БД в Delphi 7 25.01.2011 05:47
Открытие файла по сети Dimonic Работа с сетью в Delphi 8 09.08.2010 09:57