|
|
tmyapdosexec.PAS |
|
{* Переназначение StdIn в файл *}Unit TMYAPDOSEXEC;Interface Implementation Begin writeln('Как переназначить StdIn в файл '); End. Program pas51852; Uses tmyapdosexec.pas; {* Эту строку можно удалить *} Procedure tmyapp.dosexec (command : String); Var {* Объявление переменных *} buf : pointer; aa : Array [0..12] Of Char; reg : Registers; i : Word; j : Word; Function force_dup (existing, second : Word) : Boolean; Begin reg. AH := $46; reg. BX := existing; reg. CX := second; MsDos (reg); If (reg. Flags And fCarry) 0 Then force_dup := False Else force_dup := True; End; Begin DoneSysError; DoneEvents; DoneVideo; DoneDosMem; WriteLn; {* Пустая строка *} StrPCopy (aa, TmpDir + TmpFileName); reg. AH := $3D; reg. AL := 0; reg. DS := Seg (aa); reg. DX := Ofs (aa); MsDos (reg); j := reg. AX; reg. BX := 0; reg. AH := $45; MsDos (reg); i := reg. AX; If force_dup (j, 0) Then Begin SwapVectors; Exec (sendmail, command); SwapVectors; force_dup (i, 0); reg. BX := j; reg. AH := $3e; MsDos (reg); reg. BX := i; reg. AH := $3e; MsDos (reg); End; InitDosMem; InitVideo; InitEvents; InitSysError; Redraw; If DosError 0 Then Begin Str (DosError, command); MessageBox (^C + 'Dos error #' + command , Nil, mfInformation + mfOKButton); End; Else Begin Str (DosExitCode, command); MessageBox (^C + 'Exec successful.' + #13 + ^c'Child process exit code = ' + command, Nil, mfInformation + mfOKButton); End; End... 07.08.2014 - Breakpoint - точка остановки 07.08.2014 - Топ-10 самых популярных приложений в Facebook 18.11.2013 - Панель управления и персонализация системы. Windows Vista 18.11.2013 - Логические и физические диски. Windows Vista 18.11.2013 - Удаление файлов и папок 01.11.2013 - Программирование дисковых подсистем: возможности 31.10.2013 - Windows8 или Windows7? 31.10.2013 - Windows8, игры |
|
Non-commercial fansite
|