• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

посчитать количество запусков

  • Автор темы qqwertty
  • Дата начала
Статус
Закрыто для дальнейших ответов.
Q

qqwertty

Возможно ли посчитать сколько ли раз запущена программа.
Сразу скажу вариант: запуск программы, добавляем 1-ку в файл мне не подойдет.
Нужно в процессе работы программы знать сколько раз она запущена.
 
Q

qqwertty

Не в том дело. Мне нужно в определенный момент знать сколько раз запущена программа. Допустим ситуацию: мы запустили программу 2 раза, в файле или еще где у нас 2-ка, мы закрыли одну из них, у нас все равно 2-ка.
 
V

vital

Ну и в чем проблема?
При запуске программы записывайте попутно куда-нить количество копий. И там же при запуске проверйте это число. Если 0 или 1 - то увеличивайте основное число, если больше, то ничего не делайте.
Зы.
Почитайте про Mutex'ы и Named Pipes
 
G

grigsoft

Это называется число одновременно работающих копий. Про семафор еще почитайте.
 
Q

qqwertty

Код
Код:
INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR szCmdLine, INT nCmdShow)
{
HANDLE hShared = CreateSemaphore(NULL, 0,3, "Test");
MessageBox(0,AnsiString(ReleaseSemaphore(hShared,1,NULL)).c_str(),"",MB_OK);
MSG msg;
RegisterHotKey(NULL, ID_SHUTDOWN_HOTKEY, MOD_ALT, VK_ESCAPE);
while(1)
{
if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) {
if(msg.message == WM_HOTKEY) {
if( msg.wParam == ID_SHUTDOWN_HOTKEY ) {
CloseHandle(hShared);
return 0;
}
}
}
}

}
три раза ReleaseSemaphore возвращает "1", на 4 "0", все правильно, но когда завершишь пару программ, она все равно вернет "0".
 
Q

qqwertty

Вобщем все, разобрался, семафоры не понадобились, сделал через CreateToolhelp32Snapshot.
Всем спасибо.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!