HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #3261  
Старый 11.04.2009, 20:04
razb
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
С нами: 9017461

Репутация: 414


По умолчанию

а чем TTimer не подходит?
вообще можно усыплять прогу на нужное время по истечению которого она будет выполнять нужные действия.
 
Ответить с цитированием

  #3262  
Старый 11.04.2009, 20:16
miqo
Познающий
Регистрация: 18.11.2008
Сообщений: 95
С нами: 9198699

Репутация: 0
По умолчанию

программа написана на api класс forms не включен
 
Ответить с цитированием

  #3263  
Старый 11.04.2009, 21:36
criz
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
С нами: 9746420

Репутация: 119
По умолчанию

miqo, может sleep()?
 
Ответить с цитированием

  #3264  
Старый 11.04.2009, 22:51
miqo
Познающий
Регистрация: 18.11.2008
Сообщений: 95
С нами: 9198699

Репутация: 0
По умолчанию

2 criz

а там же много разных процедур и у каждых разные интервалы.......в книге делфи глазами хакера есть исходник кейлоггера я хочу узхнать как можно сделат такое именно в таком кейлоггере
 
Ответить с цитированием

  #3265  
Старый 11.04.2009, 23:04
KaZ@NoVa
Постоянный
Регистрация: 05.07.2008
Сообщений: 555
С нами: 9394886

Репутация: 1467


По умолчанию

Цитата:
Сообщение от miqo  
подскажите как сделать чтобы через заданный промежуток времени программа выполняла команды,но без TTimer а.например через каждые 3 часа отправляла лог или проверяла подключен ли интернет или размер файла лога.....
Можно написать скрипт на чём нибудь, допустим на том же JScript(просто не надо его воспринимать только как язык для инета). там в событии onload забить скажем каждый нужный интервал времени, и после него ставить выполнение нужной программы.
лично я это не делал, но знаю что можно
 
Ответить с цитированием

  #3266  
Старый 11.04.2009, 23:26
miqo
Познающий
Регистрация: 18.11.2008
Сообщений: 95
С нами: 9198699

Репутация: 0
По умолчанию

Цитата:
Сообщение от KaZ@NoVa  
Можно написать скрипт на чём нибудь, допустим на том же JScript(просто не надо его воспринимать только как язык для инета). там в событии onload забить скажем каждый нужный интервал времени, и после него ставить выполнение нужной программы.
лично я это не делал, но знаю что можно
интерестное решение ео в моем случае неудобное......
 
Ответить с цитированием

  #3267  
Старый 12.04.2009, 10:54
art2222
Участник форума
Регистрация: 28.04.2008
Сообщений: 172
С нами: 9492347

Репутация: 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
 
Ответить с цитированием

  #3268  
Старый 12.04.2009, 19:05
f0rward
Новичок
Регистрация: 26.10.2008
Сообщений: 15
С нами: 9231707

Репутация: 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;
, но по-моему это бред, т. к. тогда все потоки будут делать тоже самое.В общем кто знает, помогите реализовать.
 
Ответить с цитированием

  #3269  
Старый 12.04.2009, 19:11
_Kris_
Познающий
Регистрация: 22.07.2008
Сообщений: 62
С нами: 9371161

Репутация: 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] в цикле выполняешь свои действия...
 
Ответить с цитированием

  #3270  
Старый 12.04.2009, 21:39
f0rward
Новичок
Регистрация: 26.10.2008
Сообщений: 15
С нами: 9231707

Репутация: 6
По умолчанию

_Kris_, напиши процедуру пожалуйста, я не понял.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/Wi-Fi/Wardriving 2569 10.05.2026 13:27
[jQuery] - Задай вопрос, получи ответ Isis PHP 62 25.12.2009 03:25



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.