Zamknięcie komputera program w QT
Ostatnio zmodyfikowano 2016-03-30 21:14
Masterpc16 Temat założony przez niniejszego użytkownika |
» 2016-03-29 14:21:27 @mokrowski dzięki za linki już trochę poczytałem i będę czytał. Co do QProcess zrobiłem dwie metody na zamknięcie 1. QProcess::startDetached( "shutdown /s /t 300" );
za pomocą tej linijki działa tylko mignie okno konsoli 2. w pliki nagłówkowym tworzę wskaźniki klasy QProcess następnie w głównym pliku wpisuję wylacznik = new QProcess( this ); wylacznik->start( "shutdown /s /t 300" );
i ta druga opcja działa super nie miga okno konsoli. Teraz mam pytanie czy te obie opcje są bezpieczne? I drugie pytanie jest tylko jedna opcja żeby zamknąć komputer programem pisanym w qt trzeba użyć shutdown? (jeśli jest jakaś jeszcze opcja to odpowiedz twierdząco sam poszukam :) Ostatnie pytanie z tego co popatrzyłem na QProcess to mogę uruchomić aplikację z daną listą parametrów czyli mogę np. pobrać aplikację shutdown.exe stąd http://originaldll.com/file/shutdown.exe/28409.html lub po prostu ją skopiować z system32 do folderu z moją aplikacją, i utworzyć coś takiego QString sciezka = "shutdown.exe"; QString arguments( "shutdown /s /t 300" ); QProcess * myProcess = new QProcess( parent ); myProcess->start( program, arguments );
Pytam się o tą trzecią możliwość ponieważ gdzieś czytałem że shutdown.exe jest fabrycznie w folderze system32 lecz zdarzają się przypadki że w tajemniczych okolicznościach zostały usunięte. Z góry dziękuję za odpowiedź :) |
|
mokrowski |
» 2016-03-30 10:57:59 To zależy @Masterpc16 czy chcesz zamykać wyłącznie MS Windows czy w przyszłości także inne platformy systemowe na których będzie pracował Twój program. Jeśli tylko Windows, to poszukaj API do jego zamykania i je wywołaj :-) Pierwsze z brzegu ... https://msdn.microsoft.com/pl-pl/library/windows/desktop/aa376883(v=vs.85).aspx Jeśli boisz się że ktoś Ci usunie/przesunie shutdown.exe, to go dostarcz wraz ze swoim programem. Tylko sprawdź czy będzie działał na wszystkich wersjach systemu na których ma pracować aplikacja. Moja intuicja? Ja bym wołał przez shutdown.exe i dodał jasny komunikat z błędem jeśli będzie działał źle (np. zwróci jakiś błąd lub go nie będzie w systemie). |
|
Masterpc16 Temat założony przez niniejszego użytkownika |
» 2016-03-30 13:46:34 Czyli zostać na drugiej opcji wylacznik = new QProcess( this ); wylacznik->start( "shutdown /s /t 300" );
i na samym początku sprawdzić czy plik shutdown.exe znajduje się tam gdzie ma być? Jeśli się mylę to proszę wyprowadź mnie z błędu :) Jeśli przykładowo użyję funkcji ExitWindowsEx to z tego co wertuję strony mój program musi być cały czas włączony i musi odliczać czas. Nie ma możliwości ustawienia tam czasu. |
|
mokrowski |
» 2016-03-30 19:41:51 Tak, tak bym zrobił. |
|
Masterpc16 Temat założony przez niniejszego użytkownika |
» 2016-03-30 21:14:19 Dziękuję Ci bardzo za całą pomoc :) |
|
1 « 2 » |