ОБСУЖДЕНИЕ

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

8 ответов 6,6 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Статус
Закрыто для дальнейших ответов.
Автор темы
Возможно ли посчитать сколько ли раз запущена программа.
Сразу скажу вариант: запуск программы, добавляем 1-ку в файл мне не подойдет.
Нужно в процессе работы программы знать сколько раз она запущена.
 
Не в том дело. Мне нужно в определенный момент знать сколько раз запущена программа. Допустим ситуацию: мы запустили программу 2 раза, в файле или еще где у нас 2-ка, мы закрыли одну из них, у нас все равно 2-ка.
 
Ну и в чем проблема?
При запуске программы записывайте попутно куда-нить количество копий. И там же при запуске проверйте это число. Если 0 или 1 - то увеличивайте основное число, если больше, то ничего не делайте.
Зы.
Почитайте про Mutex'ы и Named Pipes
 
Это называется число одновременно работающих копий. Про семафор еще почитайте.
 
Код
Код:
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".
 
Вобщем все, разобрался, семафоры не понадобились, сделал через CreateToolhelp32Snapshot.
Всем спасибо.
 
Статус
Закрыто для дальнейших ответов.