Запуск из приложения внешних программ
Функции запуска являются функциями API Windows и находятся в модуле ShellAPI. Если функция возвращает значение меньшее или равное 32, то это указывает на ошибку при выполнении. Отсутствие аргумента при обращении к функции указывается константой Nil. ShellExecute(W:HWnd,S1,S2,S3,S4;R):THandle ‑ позволяет выполнить любое приложение Windows, распечатать файл или открыть папку: W ‑ родительское окно запускаемого приложения (свойство Handle); S1 ‑ строка с командой: Open (выполнение командной строки S2, если по расширению файла S2 Windows не может запустить программу обработки этого файла), Print (печать документа Word под именем S2), Explore (вывод проводником содержимого папки S2); S2 ‑ имя открываемого (выполняемого) файла, распечатываемого документа или выводимой папки; S3 ‑ параметры приложения (для открываемого документа S3=Nil); S4 ‑ имя умалчиваемого каталога; R ‑ режим открытия, задаваемый константами: SW_Hide (окно скрыто): SW_Minimize (окно сворачивается), SW_Maximize (окно развертывается); SW_Restore (окно восстанавливается, активизируется и отображается); SW_Show или SW_ShowMaximized или SW_ShowMinimized (окно активизируется и отображается с текущими размерами или в развернутом или в свернутом виде, соответственно), SW_ShowMinNoActivate (отображается в свернутом виде без активизации), SW_ShowNA (отображает окно с текущими размерами без активизации), SW_ShowNoActivate (отображает окно с его последними размерами без активизации), SW_ShowNormal (отображение окна в первоначальном виде). Примеры: ShellExecute(Handle,Nil,'D: \Vb.dot',Nil,Nil,SW_Restore); //запуск Word ShellExecute(Handle,’Print’,'D:\Vb.dot',Nil,Nil,SW_Restore); //печать Vb.dot ShellExecute(Handle,'Open','Calc',Nil,Nil,SW_Restore); //запуск калькулятора ShellExecute(Handle,'Open','C:\Far\far.exe',Nil,Nil,SW_Show);//запуск Far.exe ShellExecute(Handle,'Explore','D:\Plehev',Nil,Nil,SW_Restore); //папка Plehev
FindExecutable(S1,S2,S3):THandle ‑ функция формирует полное имя выполняемой программы (S3), которая обрабатывает файл (S1) из умалчиваемого каталога S2. Пример определения имени программы обработки файла Vb.dot: Var Np:Array [0..254] Of Char;... FindExecutable('D:\Plehev\Vb.dot',Nil,Np);//имя программы обработки в Np //можно вызвать функцию и так: FindExecutable('Vb.dot','D:\Plehev',Np); Label1.Caption:=Np;//вывод: c:\Program Files\Microsoft Office\Winword.exe WinExec(S,R):Integer ‑ позволяет выполнить командную строку S. Второй параметр аналогичен последнему параметру R функции ShellExecute. Пример: WinExec('C:\\Far\far.exe',SW_Show); //запуск Far.exe Специальные процедуры и функции Assert(E:Boolean[;S]) ‑ проверка истинности условия E при отладке программы. Если это условие ложно, то работа программы прекращается, генерируется исключение EAssertionFailed (п. 1.6.2) и выводится окно об ошибке с сообщением S, с именем программного файла и номером строки с этой процедурой. Процедура работает только при включенной директиве {$C+} (п.1.3.5.2). После отладки программы директива отключается{$C‑}. Пример: Assert(Ukaz=Nil,’Нет значения адреса’); ExceptAddr:Pointer ‑ возвращает адрес сгенерированного исключения. Если его нет, то возвращается Nil. Halt[(N:Integer)] ‑ аварийное завершение программы с кодом N. Hi/Lo (X):byte ‑ возвращает старший/младший байт аргумента X типов Integer, Word. High/Low (X) ‑ возвращает наибольшее/наименьшее значение переменной или типа X. MaxIntValue/MinIntValue(D:Array Of Integer):Integer ‑ возвращает максимальное/минимальное значение массива целых чисел. MaxValue/MinValue (D:Array Of Double):Double ‑ возвращает максимальное/минимальное значение массива вещественных чисел. ParamCount ‑ возвращает число аргументов в командной строке. ParamStr(N:Integer):String ‑ возвращает N‑й аргумент командной строки. При N=0 возвращается имя исполняемого файла с путем. SizeOf(X) ‑ возвращает число байт, занимаемых аргументом или типом X. Swap(X) ‑ производит перестановку старших и младших байт аргумента X типа Integer или Word.
UpCase(C:char):Chаr ‑ преобразует латинскую букву в прописную. Сообщения Windows PostMessage(Handle:HWnd;Msg,wParam:Word;lParam:LongInt):LongInt ‑ посылка сообщения Msg с дополнительными параметрами wParam и lParam окну с дескриптором Handle на обработку. Функция ставит сообщение в очередь на обработку сообщений Windows и возвращает управление, не дожидаясь завершения обработки сообщения. При успешном завершении фукция возвращает ненулевое значение, иначе - возвращается ноль. SendMessage(Handle:Hwnd;Msg, wParam:Word;lParam:LongInt):LongInt ‑ функция аналогична функции PostMessage, но ожидает завершения обработки сообщения (п.2.3.3.1). Вопросы для самопроверки и контроля Вопросы для самопроверки 1. Каково назначение функции ShellExecute? 2. Каково назначение функции InputBox? Контрольные вопросы 2. Что возвращает функция ParamCount? 3. Каково назначение функции Application.MessageBox? 4. Каково назначение функции ParamStr? Файлы Типы файлов При работе с файлами имеются три подхода: стандартный, использующий стандартные подпрограммы Паскаля (файлы Паскаля), объектный и использующий функции Windows (файлы Windows). В первом подходе выделяются три типа файлов: типизированные, текстовые и не типизированные. Общий порядок работы с файлами в любом подходе следующий: открытие файла, обработка и закрытие его. При стандартном подходе перед открытием файла следует объявить файловую переменную (в описаниях процедур она обозначена буквой F), которая используется в процедурах обработки файла, для ссылки на обрабатываемый файл. Файлы Паскаля Любые файлы Нижеперечисленные функции используются в стандартном подходе. AssignFile(F;S) ‑ связывание имени файла S с файловой переменной F. CloseFile(F) ‑ закрытие открытого файла F. Eof(F):Boolean ‑ возвращает True при достижении конца файла. Erase(F) ‑ удаляет с диска файл F. FilePos(F):longint ‑ возвращает текущую позицию в нетекстовом файле F. Началу файла соответствует позиция 0. FileSize(F):Integer ‑ возвращает текущий размер нетекстового файла. IOResult:Integer ‑ возвращает код ошибки в последней выполненной операции ввода/вывода: 0 ‑ ошибок нет, 2 ‑ нет файла, 3 - ошибка в имени файла, 4 ‑ много открытых файлов, 5 ‑ файл недоступен, 100 ‑ конец файла, 101 ‑ диск переполнен, 106 ‑ ошибка ввода‑вывода. Используется при директиве компилятора {$I‑} (п.1.3.5.2).
Пример контроля операции открытия файла с помощью IOResult: Var F: File of Byte; Begin AssignFile(F, ParamStr(1)); {$I‑}{отключение автоконтроля}Reset(F);{$I+}{включение автоконтроля} If IOResult>0 Then Begin ShowMessage(‘Ошибка открытия’);Exit; End;End. Rename(F;S) ‑ изменяет имя внешнего файла F на S. Reset(F[;N:Word]) ‑ открывает существующий файл. N ‑ длина записи не‑ типизированного файла (128). ReWrite(F[;N:Word]) ‑ создает и открывает новый файл F. N ‑ длина записи не типизированного файла (128). Если файл уже существует, то он уничтожается без предупреждения. Truncate(F) ‑ усекает нетекстовый файл F на текущей позиции. Типизированные файлы
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|