Форум программистов, компьютерный форум CyberForum.ru

таймер c++ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 173, средняя оценка - 4.95
dima1694
0 / 0 / 0
Регистрация: 17.08.2012
Сообщений: 6
17.08.2012, 12:09     таймер c++ #1
Всем привет.

Прошу вас помочь мне в слудующем: нужен простой таймер(среда visual c++ express выпуск),который отключит вот эту функцию через 20 секунд после включения

Сама функция:
C++
1
2
3
4
if(opt.other.аст==1)
{MEMwrite((void *)(ast),(void *)"\xC3",1);}
if(opt.other.аст==0)
{MEMwrite((void *)(ast),(void *)"\x55",1);}
Наедсюь на вашу помощь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2012, 12:09     таймер c++
Посмотрите здесь:

C++ Таймер
Таймер C++
C++ таймер
C++ Таймер
C++ таймер
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
4iFF
 Аватар для 4iFF
19 / 19 / 1
Регистрация: 06.07.2012
Сообщений: 88
17.08.2012, 13:40     таймер c++ #2
dima1694, в заголовочном файле windows.h есть функция sleep("аргумент") которая получает в виде аргумента целое число, которое представляет собой кол-во микросекунд (1000 мс = 1с).Может быть это как-то поможет.
dima1694
0 / 0 / 0
Регистрация: 17.08.2012
Сообщений: 6
17.08.2012, 14:10  [ТС]     таймер c++ #3
4iFF, смотри правильно ли будет так?
C++
1
2
3
4
5
6
if(opt.other.аст)
{
MEMwrite((void *)(ast),(void *)"\xC3",1);
Sleep(20000);
MEMwrite((void *)(ast),(void *)"\x55",1);
}
Возможности проверить нет (с телефона сижу)..
SubTerran
8 / 8 / 0
Регистрация: 13.08.2012
Сообщений: 18
17.08.2012, 14:20     таймер c++ #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <ctime>
 
// ...
 
void f()
{
    if(opt.other.аст==1)
    {MEMwrite((void *)(ast),(void *)"\xC3",1);}
    if(opt.other.аст==0)
    {MEMwrite((void *)(ast),(void *)"\x55",1);}
    while (true)
    {
        clock_t t1 = clock();
        if (double(t1) / CLOCKS_PER_SEC >= 20)
            return;
    }
}
Jupiter
17.08.2012, 14:38
  #5

Не по теме:

Цитата Сообщение от 4iFF Посмотреть сообщение
в заголовочном файле windows.h есть функция sleep("аргумент") которая получает в виде аргумента целое число, которое представляет собой кол-во микросекунд (1000 мс = 1с).Может быть это как-то поможет.
функция принимает миллисекунды, а не микросекунды

dima1694
0 / 0 / 0
Регистрация: 17.08.2012
Сообщений: 6
17.08.2012, 16:29  [ТС]     таймер c++ #6
Цитата Сообщение от SubTerran Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <ctime>
 
// ...
 
void f()
{
    if(opt.other.аст==1)
    {MEMwrite((void *)(ast),(void *)"\xC3",1);}
    if(opt.other.аст==0)
    {MEMwrite((void *)(ast),(void *)"\x55",1);}
    while (true)
    {
        clock_t t1 = clock();
        if (double(t1) / CLOCKS_PER_SEC >= 20)
            return;
    }
}
Так,используя в таком виде коддинг,функция вообще не работает,прошу пересмотреть его (многое перепробывал).Извините за надоедливость.
SubTerran
8 / 8 / 0
Регистрация: 13.08.2012
Сообщений: 18
17.08.2012, 16:53     таймер c++ #7
dima1694, Sleep(20000) из заголовка #include <Windows.h> то же самое, что я написал, используй его. Оба варианта останавливают время работы программы/функции на 20 сек.
dima1694
0 / 0 / 0
Регистрация: 17.08.2012
Сообщений: 6
17.08.2012, 17:02  [ТС]     таймер c++ #8
SubTerran, в этом деле я новичок ещё,как будет правильней с функцией Sleep сделать?

Но вот вы сказали останавливает,тоесть это пауза,а ведь мне нужно,чтобы она полностью отключилась через 20 секунд.

Вот почему мне это надо: эта функция невидимки,дело в том,что её можно использовать всего лишь 20 секунд без кика,поэтому мне и надо добиться её отключения через 20 секунд,а не просто остановить.Отключать в ручную не резонно.
KostyaKulakov
Заблокирован
17.08.2012, 17:24     таймер c++ #9
давайте полный код. либо делать для "куска" кода. это глупо. тк нужно исправлять весь код
dima1694
0 / 0 / 0
Регистрация: 17.08.2012
Сообщений: 6
17.08.2012, 17:29  [ТС]     таймер c++ #10
KostyaKulakov,

полностью он выглядит так: (но выполнение здесь и то что я щас дам,в данной ситуации мало влияет)

C++
1
2
3
4
5
6
DWORD ast = (DWORD)GetModuleHandleA("модуль") + 0xадрес;//это асм функция
//ну это включение функции в энд сцене
if(opt.other.аст==1)
{MEMwrite((void *)(ast),(void *)"\xC3",1);}
if(opt.other.аст==0)
{MEMwrite((void *)(ast),(void *)"\x55",1);}
KostyaKulakov
Заблокирован
17.08.2012, 17:34     таймер c++ #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <time.h>
using namespace std;
 
void function();
 
int main()
{
    function();
}
 
void function()
{
    if(opt.other.аст==1)
        MEMwrite((void *)(ast),(void *)"\xC3",1);
 
    if(opt.other.аст==0)
        MEMwrite((void *)(ast),(void *)"\x55",1);
 
 
    while (true)
    {
        clock_t time = clock();
 
        if (double(time) / CLOCKS_PER_SEC >= 2) // тут в секундах если надо в мили секунды то преведите в такой тип if (double(time) >= 2000)
           break;
    }
 
}
Добавлено через 2 минуты
так сойдёт?
dima1694
0 / 0 / 0
Регистрация: 17.08.2012
Сообщений: 6
17.08.2012, 17:39  [ТС]     таймер c++ #12
Цитата Сообщение от KostyaKulakov Посмотреть сообщение
if (double(time) / CLOCKS_PER_SEC >= 2)
здесь 2 секунды получается? (просто может вы перевели и это 2 минуты.)
KostyaKulakov
Заблокирован
17.08.2012, 17:46     таймер c++ #13
аххаа. смешно. вы не поняли код.
щас я напишу как это видит программа.
если (время(2000) / на 1000 и это будет больше или равно 2)
time рассчитывается в мили секундах а деление на 1000 позволяет это перевести в секунды. если для вас это не понятно то используйте
C++
1
if (double(time) >= 2000)
это означает если (время( к примеру 2000) болше или равно 2000) каждая секунда исполнения цикла while грубо говоря прибавляет к time значение 1000. те 2 секунды будут 2000. а 25 секунд будут 25000. далие это значение передаётся каждый раз в проверку те если(время(25000) делёное на 1000 ) больше или равно 2. те деление помогает нам не парится с мили секундами а работать с секундами
SubTerran
8 / 8 / 0
Регистрация: 13.08.2012
Сообщений: 18
17.08.2012, 17:49     таймер c++ #14
KostyaKulakov, Вообще то time расичтывается в тактах процессора, а не в миллисекундах, а деленее на CLOCKS_PER_SEC позволяет перевести результат в секунды.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2012, 17:50     таймер c++
Еще ссылки по теме:

Таймер на С/С++ C++
Таймер C++
Таймер c++ C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
KostyaKulakov
Заблокирован
17.08.2012, 17:50     таймер c++ #15
извеняйте, болие подробно объяснить не могу.

Добавлено через 22 секунды
Цитата Сообщение от SubTerran Посмотреть сообщение
KostyaKulakov, Вообще то time расичтывается в тактах процессора, а не в миллисекундах, а деленее на CLOCKS_PER_SEC позволяет перевести результат в секунды.
а я что писал.

Добавлено через 55 секунд
Цитата Сообщение от KostyaKulakov Посмотреть сообщение
если(время(25000) делёное на 1000 ) больше или равно 2. те деление помогает нам не парится с мили секундами а работать с секундами
не? такты процессора тут вобще не причём
Yandex
Объявления
17.08.2012, 17:50     таймер c++
Ответ Создать тему
Опции темы

Текущее время: 04:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru