|
Wpisał doctor
|
|
Sobota, 26. Styczeń 2008 00:42 |
|
Restartowanie programu
Typowy sposób działania aplikacji wymaga m.in. pobrania czy wykonania określonych operacji podczas inicjacji czy tworzenia formy.Nie zawsze zmiany w biezącej konfiguracji da się wykonać "online", czyli na uruchomionym programie oraz plikach z których program korzysta.W takim przypadku konieczne jest zrestartowanie programu.Szereg aplikacji wymaga do wprowadzenia zmian w ustawień w konfiguracji ponowne uruchomienie programu.Jako przykład podam gadu gadu, popularne instalatory czy Firefox.
Jak wiadomo z wcześniejszych porad, aplikację można uruchomić przez drugi, zewnętrzny program.W języku C++ można w tym przypadku korzystać z funkcji WinExec lub ShellExecute.Bardziej elegancki jednak sposób, który tu opiszę, polegać będzie na zrestartowaniu aplikacji przez siebie samą.
Na formie umieszczamy 1 przycisk Button oraz Statusbar z 1 panelem.
Działanie programu będzie następujące: jeśli program został uruchomiony bezpośrednio, na panelu StatusBara pojawi się napis 'Gotowy'.Po wciśnięciu przycisku Button1 nastąpi restart programu.Wtedy, gdy program jest uruchomiony przez samego siebie, na panelu pojawia się napis 'Zrestartowano program'.
Zdarzenie OnCreate Form1 uzupełniamy następującym kodem:
void __fastcall TForm1::FormCreate(TObject *Sender) { if(ParamStr(1) == "-r") {StatusBar1->Panels->Items[0]->Text = "Zrestartowano program"; } else {StatusBar1->Panels->Items[0]->Text = "Gotowy"; } } Zdarzenie OnClick przycisku Button1 uzupełniamy następującym kodem: void __fastcall TForm1::Button1Click(TObject *Sender) {int h = Application->MessageBoxA("Czy napewno chcesz zrestartowac program", "Uwaga",mbNo); if(h==1) {Application->Terminate(); Sleep(400); ShellExecute(Application->Handle, "open", Application->ExeName.c_str(), "-r", "", SW_SHOW); Beep(600, 100); } }
|
|
Ostatnia aktualizacja: Czwartek, 31. Grudzień 2009 17:07 |