У деяких програмах існує необхідність запустити іншу програму або *.bat файл.
Для виконання даної операції використовують команду виду:
winexec (‘ім'я файлу’, стан_вікна);
Ім'я файлу можна записати як константу в одинарних лапках або як ім'я змінної або ім'я властивості з функцією PCHAR. Якщо зазначене тільки ім'я файлу, то даний файл повинен знаходитися в папці із програмою або в папці, яка прописана в змінній PATH операційної системи.
Стан вікна задає стиль відображення вікна програми, що запускається. Параметр може приймати значення:
· sw_hide – вікно приховане від перегляду
· sw_restore – вікно має звичайний вигляд
· sw_showminimized – вікно згорнуте
· sw_showmaximized – вікно розгорнуте
· sw_minnoactivate – вікно згорнуте й не активно
· sw_shownoactivate – вікно з'являється, але не активно (на задньому плані)
Приклад. Нехай потрібно запустити стандартну програму Калькулятор.
winexec (‘calc.exe’, sw_restore);
Нехай потрібно запустити програму, яка вибирається за допомогою діалогу Opendialog.
Діалог у властивості Filter повинен мати значення Програми|*.exe.
Код має вигляд:
//якщо файл програми обраний
if opendialog1.execute=true then
//запускаємо указаний файл
winexec (pchar(opendialog1.filename), sw_restore);
Дану команду зручно використовувати для запуску *.bat файлів. У самому *.bat файлі можуть знаходитися команди настройки параметрів операційної системи.
Наприклад, створимо *.bat файл для створення віртуального жорсткого диска. Такий диск являє собою звичайну папку, яка відображається як диск. Нехай папка для диска буде мати ім'я c:\windows\work, а сам диск буде мати ім'я z:
rem видаляємо папку
rd c:\windows\work /s /q
rem створюємо папку
md c:\windows\work
rem відображаємо папку як диск
subst z: c:\windows\work
Збережемо файл під ім'ям disk.bat
Для запуску такого файлу створимо прихований додаток Delphi. Такий додаток запускається, але сама форма на екрані не відображається. Для створення такого додатка в події OnCreate форми напишемо код:
//сховати головну форму
application.showmainform:=false;
//виконати *.bat файл
winexec (‘disk.bat’, sw_hide);
//завершити роботу додатка
application.terminate;
Відкриття будь-якого файлу або папки
Команда WinExec дозволяє запустити файл, що виконується (*.exe, *.bat, *.com). Якщо потрібно відкрити довільний файл або папку, то потрібно використовувати одну з команд команду:
//відкрити файл для перегляду
shellexecute (handle, ‘open’, ‘ім'я файлу’, nil,nil, sw_restore);
//відкрити файл для друку
shellexecute (handle, ‘print’, ‘ім'я файлу’, nil,nil, sw_restore);
//відкрити папку у Провіднику
shellexecute (handle, ‘explore’, ‘ім'я папки’, nil,nil, sw_restore);
Якщо ім'я файлу або папки задається через властивість або змінну, то запис робиться через функцію PCHAR.
Для використання вказаної команди треба підключити модуль
shellapi
Питання для самоконтролю
1. Для чого використовують зовнішні компоненті в Delphi? В чому їх переваги?
2. Як в середовищі Delphi прописати шлях до папки з зовнішніми компонентами?
3. Опишіть процедуру встановлення компонента в Delphi.
4. Опишіть процедуру видалення компонента в Delphi.
5. Опишіть процедуру встановлення бібліотеки компонентів в Delphi.
6. Опишіть процедуру видалення бібліотеки компонентів в Delphi.
7. Опишіть команду запуску зовнішніх програм в Delphi. Приклад.
8. Опишіть команду відкриття зовнішніх файлів для перегляду.
9. Опишіть команду відкриття зовнішніх файлів для друку.
10. Опишіть команду відкриття довільної теки для перегляду.
Лекція №13, 14
Тема: Загальні принципи технології COM. Робота з COM-сервером Microsoft Word. Робота з документами в Microsoft Word.
Мета: Придбати знання та практичні навички при розробці програми з використанням технологій COM.
Перелік питань, що розглядаються на лекції:
1. Загальні принципи технології COM
2. Робота з COM-сервером Microsoft Word
3. Робота з документами в Microsoft Word
4. Використання шаблону для формування документів
5. Робота з таблицями
6. Вставка малюнків і їх форматування