|
|||
Скачать Переназначение StdIn в файл
21.07.1993 { Cut here. FileName= DOSEXEC.PAS }} Procedure tmyapp.dosexec (command: String); Var buf: pointer; aa: Array [0..12] Of Char; reg: Registers; i, 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 { Error? } 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; | |||
© 2009–2024 Russian Pascal Developer Network.
Техническая площадка: ISBIZ Хостинг |