ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

11.04.2009, 20:04
|
|
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме: 2868783
Репутация:
414
|
|
а чем TTimer не подходит?
вообще можно усыплять прогу на нужное время по истечению которого она будет выполнять нужные действия.
|
|
|

11.04.2009, 20:16
|
|
Познающий
Регистрация: 18.11.2008
Сообщений: 95
Провел на форуме: 270938
Репутация:
0
|
|
программа написана на api класс forms не включен
|
|
|

11.04.2009, 21:36
|
|
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
Провел на форуме: 811764
Репутация:
119
|
|
miqo, может sleep()?
|
|
|

11.04.2009, 22:51
|
|
Познающий
Регистрация: 18.11.2008
Сообщений: 95
Провел на форуме: 270938
Репутация:
0
|
|
2 criz
а там же много разных процедур и у каждых разные интервалы.......в книге делфи глазами хакера есть исходник кейлоггера я хочу узхнать как можно сделат такое именно в таком кейлоггере
|
|
|

11.04.2009, 23:04
|
|
Постоянный
Регистрация: 05.07.2008
Сообщений: 555
Провел на форуме: 3134311
Репутация:
1467
|
|
Сообщение от miqo
подскажите как сделать чтобы через заданный промежуток времени программа выполняла команды,но без TTimer а.например через каждые 3 часа отправляла лог или проверяла подключен ли интернет или размер файла лога.....
Можно написать скрипт на чём нибудь, допустим на том же JScript(просто не надо его воспринимать только как язык для инета). там в событии onload забить скажем каждый нужный интервал времени, и после него ставить выполнение нужной программы.
лично я это не делал, но знаю что можно
|
|
|

11.04.2009, 23:26
|
|
Познающий
Регистрация: 18.11.2008
Сообщений: 95
Провел на форуме: 270938
Репутация:
0
|
|
Сообщение от KaZ@NoVa
Можно написать скрипт на чём нибудь, допустим на том же JScript(просто не надо его воспринимать только как язык для инета). там в событии onload забить скажем каждый нужный интервал времени, и после него ставить выполнение нужной программы.
лично я это не делал, но знаю что можно
интерестное решение ео в моем случае неудобное......
|
|
|

12.04.2009, 10:54
|
|
Участник форума
Регистрация: 28.04.2008
Сообщений: 172
Провел на форуме: 1191083
Репутация:
270
|
|
подскажите как сделать чтобы через заданный промежуток времени программа выполняла команды,но без TTimer а.например через каждые 3 часа отправляла лог или проверяла подключен ли интернет или размер файла лога.....
Класс
Код:
unit WaitThread;
interface
uses Classes, Windows;
type
TWaitThread = class(TThread)
WaitUntil: TDateTime;
procedure Execute; override;
end;
implementation
uses SysUtils;
procedure TWaitThread.Execute;
var
Timer: THandle;
SystemTime: TSystemTime;
FileTime, LocalFileTime: TFileTime;
begin
Timer := CreateWaitableTimer(NIL, FALSE, NIL);
try
DateTimeToSystemTime(WaitUntil, SystemTime);
SystemTimeToFileTime(SystemTime, LocalFileTime);
LocalFileTimeToFileTime(LocalFileTime, FileTime);
SetWaitableTimer(Timer, TLargeInteger(FileTime), 0,
NIL, NIL, FALSE);
WaitForSingleObject(Timer, INFINITE);
finally
CloseHandle(Timer);
end;
end;
end.
Использовать можно так:
Код:
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
procedure TimerFired(Sender: TObject);
end;
//.....
implementation
uses WaitThread;
procedure TForm1.Button1Click(Sender: TObject);
var
T: TDateTime;
begin
with TWaitThread.Create(TRUE) do
begin
OnTerminate := TimerFired;
FreeOnTerminate := TRUE;
// Срок ожидания закончится через 5 секунд
WaitUntil := Now + 1 / 24 / 60 / 60 * 5;
Resume;
end;
end;
procedure TForm1.TimerFired(Sender: TObject);
begin
ShowMessage('Timer fired !');
end;
(c) DRKB
|
|
|

12.04.2009, 19:05
|
|
Новичок
Регистрация: 26.10.2008
Сообщений: 15
Провел на форуме: 126398
Репутация:
6
|
|
Помогите пожалуйста, как запустить на одновременное выполнение сразу n потоков?
Весь код потока лежит в процедуре TNewThread.Execute;, имеется также процедура show для вывода информации. Пробовал сделать просто цикл вида :
Код:
procedure TForm1.sButton1Click(Sender: TObject);
begin
sButton1.Enabled:=false;
for i:=1 to 50 do
NewThread:=TNewThread.Create(true);
NewThread.FreeOnTerminate:=true;
NewThread.Priority:=tpLOWER;
NewThread.Resume;
end;
end;
, но по-моему это бред, т. к. тогда все потоки будут делать тоже самое.В общем кто знает, помогите реализовать.
|
|
|

12.04.2009, 19:11
|
|
Познающий
Регистрация: 22.07.2008
Сообщений: 62
Провел на форуме: 304390
Репутация:
172
|
|
Сообщение от f0rward
Помогите пожалуйста, как запустить на одновременное выполнение сразу n потоков?
Весь код потока лежит в процедуре TNewThread.Execute;, имеется также процедура show для вывода информации. Пробовал сделать просто цикл вида :
Код:
procedure TForm1.sButton1Click(Sender: TObject);
begin
sButton1.Enabled:=false;
for i:=1 to 50 do
NewThread:=TNewThread.Create(true);
NewThread.FreeOnTerminate:=true;
NewThread.Priority:=tpLOWER;
NewThread.Resume;
end;
end;
, но по-моему это бред, т. к. тогда все потоки будут делать тоже самое.В общем кто знает, помогите реализовать.
Создаешь массив потоков aka TTHREAD, a[i] в цикле выполняешь свои действия...
|
|
|

12.04.2009, 21:39
|
|
Новичок
Регистрация: 26.10.2008
Сообщений: 15
Провел на форуме: 126398
Репутация:
6
|
|
_Kris_, напиши процедуру пожалуйста, я не понял.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|