информационная безопасность
без паники и всерьез
 подробно о проекте
За кого нас держат?Атака на InternetГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Хакеры опять разморозили холодильники... 
 C3RB3R шифрует NAS Synology через... 
 Chainalysis раскрыла взлом собственных... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[Pascal] перезагрузка и вызов 23.07.01 10:18  Число просмотров: 1047
Автор: FFF Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Как из BorlandPascal вызвать внешнюю программу. Я пробовал
> exec но не получается.
> И как можно перезапустить комп. Как можно при помощи exec
> вызвать
> rundll.exe user.exe,exitwindows. Заранее благодарен.

1) для запуска .exe или .bat из программы можно использовать такую последовательность вызовов (см. TApplication.DosShell в исходниках RTL TV)
DoneSysError;
DoneEvents;
DoneVideo;
DoneDosMem;
WriteShellMsg;
SwapVectors;
Exec(GetEnv('COMSPEC'),' /c user.exe');
SwapVectors;
InitDosMem;
InitVideo;
InitEvents;
InitSysError;

2) перезагрузить комп можно с помощью такой проги:
Program Reboot;
Var
bWarm: Boolean;

Begin

bWarm := False;

{ Warm = True triggers warm boot with no memory test: }
IF bWarm THEN MEMW[$0040:$0072] := $1234
{ Warm = False triggers cold boot with full memory test: }
ELSE MEMW[$0040:$0072] := 0;
INLINE($EA/$00/$00/$FF/$FF); { JMP FFFF:0 }
End.
<programming>
[Pascal] перезагрузка и вызов 22.07.01 21:44  
Автор: GlAsS Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Как из BorlandPascal вызвать внешнюю программу. Я пробовал exec но не получается.
И как можно перезапустить комп. Как можно при помощи exec вызвать
rundll.exe user.exe,exitwindows. Заранее благодарен.
[Pascal] перезагрузка и вызов 23.07.01 10:18  
Автор: FFF Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Как из BorlandPascal вызвать внешнюю программу. Я пробовал
> exec но не получается.
> И как можно перезапустить комп. Как можно при помощи exec
> вызвать
> rundll.exe user.exe,exitwindows. Заранее благодарен.

1) для запуска .exe или .bat из программы можно использовать такую последовательность вызовов (см. TApplication.DosShell в исходниках RTL TV)
DoneSysError;
DoneEvents;
DoneVideo;
DoneDosMem;
WriteShellMsg;
SwapVectors;
Exec(GetEnv('COMSPEC'),' /c user.exe');
SwapVectors;
InitDosMem;
InitVideo;
InitEvents;
InitSysError;

2) перезагрузить комп можно с помощью такой проги:
Program Reboot;
Var
bWarm: Boolean;

Begin

bWarm := False;

{ Warm = True triggers warm boot with no memory test: }
IF bWarm THEN MEMW[$0040:$0072] := $1234
{ Warm = False triggers cold boot with full memory test: }
ELSE MEMW[$0040:$0072] := 0;
INLINE($EA/$00/$00/$FF/$FF); { JMP FFFF:0 }
End.
[Pascal] перезагрузка и вызов 23.07.01 11:21  
Автор: Xoro Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> > Как из BorlandPascal вызвать внешнюю программу. Я
> пробовал
> > exec но не получается.
> > И как можно перезапустить комп. Как можно при помощи
> exec
> > вызвать
> > rundll.exe user.exe,exitwindows. Заранее благодарен.
>
> 1) для запуска .exe или .bat из программы можно
> использовать такую последовательность вызовов (см.
> TApplication.DosShell в исходниках RTL TV)
> DoneSysError;
> DoneEvents;
> DoneVideo;
> DoneDosMem;
> WriteShellMsg;
> SwapVectors;
> Exec(GetEnv('COMSPEC'),' /c user.exe');
> SwapVectors;
> InitDosMem;
> InitVideo;
> InitEvents;
> InitSysError;
>
> 2) перезагрузить комп можно с помощью такой проги:
> Program Reboot;
> Var
> bWarm: Boolean;
>
> Begin
>
> bWarm := False;
>
> { Warm = True triggers warm boot with no memory test: }
> IF bWarm THEN MEMW[$0040:$0072] := $1234
> { Warm = False triggers cold boot with full memory test: }
> ELSE MEMW[$0040:$0072] := 0;
> INLINE($EA/$00/$00/$FF/$FF); { JMP FFFF:0 }
> End.

Для запуска достаточно:
uses memory;

begin
DoneMemory;
Exec(GetEnv('COMSPEC'),' /c user.exe');
InitMemory;
end.
1





Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach