Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 24.11.2017, 11:07   #1
gdu
Пользователь
 
Аватар для gdu
 
Регистрация: 14.09.2017
Адрес: Россия
Сообщений: 15
Репутация: -4
По умолчанию 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, 11:28   #2
evg_m
Профессионал
 
Регистрация: 20.04.2008
Сообщений: 4,460
Репутация: 1965
По умолчанию

Код:

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 в 11:30.
evg_m вне форума   Ответить с цитированием
Старый 24.11.2017, 11:32   #3
gdu
Пользователь
 
Аватар для gdu
 
Регистрация: 14.09.2017
Адрес: Россия
Сообщений: 15
Репутация: -4
По умолчанию

Цитата:
Сообщение от 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 в 11:34. Причина: ошибся
gdu вне форума   Ответить с цитированием
Старый 24.11.2017, 11:44   #4
gdu
Пользователь
 
Аватар для gdu
 
Регистрация: 14.09.2017
Адрес: Россия
Сообщений: 15
Репутация: -4
По умолчанию

Цитата:
Сообщение от 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, 12:09   #5
Sciv
Профессионал
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Адрес: Курган
Сообщений: 3,039
Репутация: 1083
По умолчанию

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

Код:

if CheckBox6.checked= true then begin

Проверяйте Name компонента, похоже, не в тот чекбокс смотрите.

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

Код:

if CheckBox6.checked then begin

?
__________________
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума   Ответить с цитированием
Старый 24.11.2017, 12:35   #6
gdu
Пользователь
 
Аватар для gdu
 
Регистрация: 14.09.2017
Адрес: Россия
Сообщений: 15
Репутация: -4
По умолчанию

Цитата:
Сообщение от 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 в 12:39.
gdu вне форума   Ответить с цитированием
Старый 24.11.2017, 13:30   #7
Sciv
Профессионал
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Адрес: Курган
Сообщений: 3,039
Репутация: 1083
По умолчанию

Цитата:
Сообщение от 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 в 13:35.
Sciv вне форума   Ответить с цитированием
Старый 24.11.2017, 13:43   #8
gdu
Пользователь
 
Аватар для gdu
 
Регистрация: 14.09.2017
Адрес: Россия
Сообщений: 15
Репутация: -4
По умолчанию

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

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

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

UPDATE

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

Код:

if checkbox1.checked then run('.....')
else if checkbox2.checked then run('...')
....
else run('....')

Я просто описал последовательность своих действий, Сейчас проблема в другом, по нажатию на кнопку не открывает приложение, проблема в том, что расшаренная папка на сервере скрыта! как решить вот эту проблему пока не знаю!! если папка не скрыта все открывает.
__________________
С точки зрения банальной эрудиции, каждый здравомыслящий индивидуум способен проигнорировать тенденции парадоксальных эмоций.
gdu вне форума   Ответить с цитированием
Ответ



Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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




01:06.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru