Oddity Napisano Styczeń 19, 2018 Autor Zgłoś Udostępnij Napisano Styczeń 19, 2018 Jak zwykle rozwiązań jest kilka. Sposób pierwszy: Skanujesz wszystkie uruchomione w systemie procesy i szukasz czy program jest już uruchomiony. O ile dobrze się orientuję, VC++ 6.0 nie posiada funkcji EnumProcess, więc trochę byś się musiał namęczyć jeśli nie posiadasz VC++ .net. Sposób drugi (opisowy algorytm): 1. Uruchom program. 2. Wczytaj plik np. c:\program\uruchomienie.dat 3. Jeśli jego zawartość to "1", zamknij program. 4. Jeśli "0", ustaw tą wartość na "1" i uruchom się 5. Wykonaj swój kod 6. Zakończ działanie i ustaw uruchamianie.dat na "0" Tak więc nigdy nie uruchomi się druga instancja programu tak długo, jak plik uruchomienie.dat ma wartość "1". Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Complex Napisano Styczeń 20, 2018 Zgłoś Udostępnij Napisano Styczeń 20, 2018 Myśle, że ten pierwszy sposób jest bezpieczniejszy ponieważ gdy program sie zawiesi i nie zmieni wartości w pliku, to wtedy program sie nie uruchomi wogóle. pozdrawiam Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
t0xic Napisano Styczeń 22, 2018 Zgłoś Udostępnij Napisano Styczeń 22, 2018 Dlatego trzeba pisać takie programy które się nie zawieszają :D Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Express Napisano Styczeń 22, 2018 Zgłoś Udostępnij Napisano Styczeń 22, 2018 Programy tak. Ale Windows do nich zdecydowanie nie należy... I też będzie bolało. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
t0xic Napisano Styczeń 22, 2018 Zgłoś Udostępnij Napisano Styczeń 22, 2018 Heh.. Znalazłem lepszy sposób od sprawdzania procesów. Wystarczy do pliku zapisywać co minute aktualną datę z godziną. Gdy data w pliku nie będzie przynajmniej o minutę mniejsza od tej w systemie program się nie uruchomi. Gdy komuś się zawiesi system będzie musiał uruchomić kompa od nowwa a to trwa (przynajmniej u mnie) ponad minute. Jeśli ktoś ma super szybkiego kompa to może ustawić 5 sekund. I to działa :D. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.