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

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

qqwertty

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

qqwertty

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

vital

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

grigsoft

Well-known member
15.11.2005
735
0
#5
Это называется число одновременно работающих копий. Про семафор еще почитайте.
 
Q

qqwertty

#7
Код
Код:
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

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