[konsola lub C++] Wykonywanie operacji przy zamykaniu


#1

Witam,

Chciałbym zrobić bardzo prosty (chyba) skrypt, który działałby w konsoli. Ma on działać mniej-więcej tak:

-wyswietla jakiś tekst

-uruchamia prostą gierkę konsolową

-jeśli użytkownik chce zamknąć program, przenosi pliki do wskazanego folderu.

Dokładnie nie wiem jak zrobić to ostatnie: przenoszenie jakiegoś pliku, gdy użytkownik chce zamknąć program.

Chciałbym, żeby to działało w windowsowej konsoli, jako plik *.bat, lecz jeśli tak się nie da, może też to być program w C++.

Ktoś wie, jak (i czy da się) takie coś zrobić?


(Mateusz Charytoniuk) #2

Da się! Odpal taki skrypt w konsoli (zapisz go np jako ‘hello_calc.cmd’) i sprawdź wynik:

echo "hello"

%windir%\system32\calc.exe

echo "world"

Zamias ‘%windir%\system32\calc.exe’ wstaw Twój program i będzie ok.


(Krystian Rosinski) #3

Jako ciekawostkę mogę podać jak ten problem rozwiązać w skrypcie Pythona.

atexit.register(moja_funkcja, opcjonalne_argumenty)

moja_funkcja zostanie wywołana w czasie zakończenia pracy skryptu. Przykład, który pokazuje efekt działania:

import atexit

import time


def goodbye(name):

    print('Do zobaczenia, %s' % name)


atexit.register(goodbye, 'St4rKiller070')


print('Hej!')

time.sleep(5)

W przypadku aplikacji okienkowej napisanej przy użyciu PyQt lub PySide należy ponownie zaimplementować metodę closeEvent(), która wykona przy zamykaniu programu to co chcemy.