Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zamknięcie komputera program w QT

Ostatnio zmodyfikowano 2016-03-30 21:14
Autor Wiadomość
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.
C/C++
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ę
C/C++
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
C/C++
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ź :)
P-146717
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).
P-146766
Masterpc16
Temat założony przez niniejszego użytkownika
» 2016-03-30 13:46:34
Czyli zostać na drugiej opcji
C/C++
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.
P-146771
mokrowski
» 2016-03-30 19:41:51
Tak, tak bym zrobił.
P-146784
Masterpc16
Temat założony przez niniejszego użytkownika
» 2016-03-30 21:14:19
Dziękuję Ci bardzo za całą pomoc :)
P-146804
1 « 2 »
Poprzednia strona Strona 2 z 2