Russian Qt Forum

Программирование => Общий => Тема начата: hackoff от Март 31, 2010, 08:28



Название: служебные программы
Отправлено: hackoff от Март 31, 2010, 08:28
Пишу клиент-серверное приложение для администрирования компьютерных классов.
На данный момент сделал многопоточный сервер, и клиента к нему и парочку операций: выключения клиентских компьютеров и получения снимка экрана. Теперь встал вопрос о наполнении программы функционалом т.е. увеличить ее возможности.

Думаю добавить запуск дефрагментации, и проверки дисков. Только вот не могу в winApi найти как это делать.

Также хочу добавить возможность удаленной работы  с файловой системой. (думаю сделать это с помощью фтп, только класса фтп сервера не нашел)

Сделать запуск заставки (нашел функцию ::DefWindowProc(GetDesktopWindow(), WM_SYSCOMMAND, SC_SCREENSAVE, 0);, только она не работает в win7)

Синхронизацию времени (еще не думал как это делать)
И отправку сообщений (думаю с этим проблем не будет)

Надеюсь на вашу помощь в решении этих проблем. А также хочу услышать о том, что еще можно добавить в программ.

 


Название: Re: служебные программы
Отправлено: hackoff от Апрель 01, 2010, 05:16
Сформулирую свои просьбы конкретнее.
Запускать служебные программы (дефрагментация, проверка диска...) нужно через winApi или все же через QProcces?
Подскажите где взять класс фтп сервера?
Спасибо за внимание :)


Название: Re: служебные программы
Отправлено: Пантер от Апрель 01, 2010, 06:12
Дефрагментацию и проверку лучше запускай через QProcces.


Название: Re: служебные программы
Отправлено: h3rm1t от Апрель 01, 2010, 13:02
Встроенного  класса ftp сервера в Qt нет, есть только клиент  QFtp. Но  можно свой класс сервер написать с помощью  QTcpSocket и QTcpServer.


Название: Re: служебные программы
Отправлено: hackoff от Апрель 01, 2010, 13:24
Желательно найти готовый. Нет времени писать.
 
Я нашел FTPServer, но что-то его к проекту прикрутить не могу :( ругается.


Название: Re: служебные программы
Отправлено: Пантер от Апрель 01, 2010, 13:30
Как прикручиваешь?


Название: Re: служебные программы
Отправлено: hackoff от Апрель 01, 2010, 13:56
вставил в проект, приписал #include "FTPServer/FTPServer.h", и попытался создать объект CFTPServer ftpServ;. Вылезло миллион ошибок. Делаю все в QtCreatore.
 CFTPServer  сделан в визуал студии... наверное надо как-то по особенному прикручивать. Осталось узнать как :)


Название: Re: служебные программы
Отправлено: Пантер от Апрель 01, 2010, 14:12
Ошибки на этапе компиляции или линковки?


Название: Re: служебные программы
Отправлено: hackoff от Апрель 01, 2010, 14:24
Вот что пишет
Код:
Выполняется сборка проекта Server...
Запускается: c:/qt/2010.02.1/qt/bin/qmake.exe D:/diplom/Serv/Server.pro -spec win32-g++ -r
Завершено с кодом 0.
Запускается: C:/Qt/2010.02.1/mingw/bin/mingw32-make.exe -w
mingw32-make: Entering directory `D:/diplom/Serv'
C:/Qt/2010.02.1/mingw/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `D:/diplom/Serv'
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"c:\Qt\2010.02.1\qt\include\QtCore" -I"c:\Qt\2010.02.1\qt\include\QtNetwork" -I"c:\Qt\2010.02.1\qt\include\QtGui" -I"c:\Qt\2010.02.1\qt\include" -I"c:\Qt\2010.02.1\qt\include\ActiveQt" -I"debug" -I"." -I"c:\Qt\2010.02.1\qt\mkspecs\win32-g++" -o debug\main.o src\main.cpp
In file included from src\/FTPServer/ConnectThread.h:6,
from src\/FTPServer/FTPServer.h:12,
from src\main.cpp:6:
src\/FTPServer/ConnectSocket.h:13: error: expected class-name before '{' token
src\/FTPServer/ConnectSocket.h:28: error: 'CString' does not name a type
src\/FTPServer/ConnectSocket.h:35: error: 'BOOL' does not name a type
src\/FTPServer/ConnectSocket.h:41: error: 'BOOL' does not name a type
src\/FTPServer/ConnectSocket.h:42: error: 'BOOL' does not name a type
src\/FTPServer/ConnectSocket.h:43: error: 'LPCTSTR' has not been declared
src\/FTPServer/ConnectSocket.h:44: error: 'BOOL' does not name a type
src\/FTPServer/ConnectSocket.h:45: error: 'BOOL' does not name a type
src\/FTPServer/ConnectSocket.h:56: error: ISO C++ forbids declaration of 'CWinThread' with no type
src\/FTPServer/ConnectSocket.h:56: error: expected ';' before '*' token
src\/FTPServer/ConnectSocket.h:58: error: 'BOOL' does not name a type
src\/FTPServer/ConnectSocket.h:59: error: 'CString' does not name a type
src\/FTPServer/ConnectSocket.h:76: error: 'CStringList' does not name a type
src\/FTPServer/ConnectSocket.h:78: error: 'BOOL' does not name a type
src\/FTPServer/ConnectSocket.h:79: error: 'DWORD' does not name a type
src\/FTPServer/ConnectSocket.h:80: error: 'CString' does not name a type
src\/FTPServer/ConnectSocket.h:81: error: 'CString' does not name a type
src\/FTPServer/ConnectSocket.h:82: error: 'CString' does not name a type
In file included from src\/FTPServer/FTPServer.h:12,
from src\main.cpp:6:
src\/FTPServer/ConnectThread.h:13: error: expected class-name before '{' token
src\/FTPServer/ConnectThread.h:14: error: ISO C++ forbids declaration of 'DECLARE_DYNCREATE' with no type
src\/FTPServer/ConnectThread.h:15: error: expected ';' before 'protected'
src\/FTPServer/ConnectThread.h:23: error: 'VOID' does not name a type
src\/FTPServer/ConnectThread.h:27: error: 'CString' does not name a type
src\/FTPServer/ConnectThread.h:28: error: ISO C++ forbids declaration of 'CWnd' with no type
src\/FTPServer/ConnectThread.h:28: error: expected ';' before '*' token
src\/FTPServer/ConnectThread.h:30: error: 'SOCKET' does not name a type
src\/FTPServer/ConnectThread.h:39: error: 'BOOL' does not name a type
src\/FTPServer/ConnectThread.h:45: error: 'UINT' does not name a type
src\/FTPServer/ConnectThread.h:50: error: 'CTime' does not name a type
src\/FTPServer/ConnectThread.h:55: error: 'LRESULT' does not name a type
src\/FTPServer/ConnectThread.h:56: error: ISO C++ forbids declaration of 'DECLARE_MESSAGE_MAP' with no type
src\/FTPServer/ConnectThread.h:57: error: expected ';' before '}' token
src\/FTPServer/ConnectThread.h:57: error: expected ';' before '}' token
In file included from src\/FTPServer/FTPServer.h:13,
from src\main.cpp:6:
src\/FTPServer/ListenSocket.h:14: error: expected class-name before '{' token
src\/FTPServer/ListenSocket.h:25: error: ISO C++ forbids declaration of 'CWnd' with no type
src\/FTPServer/ListenSocket.h:25: error: expected ';' before '*' token
In file included from src\/FTPServer/FTPServer.h:14,
from src\main.cpp:6:
src\/FTPServer/FTPEventSink.h:18: error: 'DWORD' has not been declared
src\/FTPServer/FTPEventSink.h:18: error: 'LPCTSTR' has not been declared
src\/FTPServer/FTPEventSink.h:18: error: 'LPCSTR' has not been declared
src\/FTPServer/FTPEventSink.h:19: error: 'DWORD' has not been declared
src\/FTPServer/FTPEventSink.h:19: error: 'LPCTSTR' has not been declared
src\/FTPServer/FTPEventSink.h:20: error: 'LPCTSTR' has not been declared
In file included from src\/FTPServer/FTPServer.h:15,
from src\main.cpp:6:
src\/FTPServer/UserManager.h:16: error: expected class-name before '{' token
src\/FTPServer/UserManager.h:17: error: ISO C++ forbids declaration of 'DECLARE_SERIAL' with no type
src\/FTPServer/UserManager.h:19: error: expected ';' before 'CDirectory'
src\/FTPServer/UserManager.h:23: error: 'CArchive' has not been declared
src\/FTPServer/UserManager.h:27: error: 'CString' does not name a type
src\/FTPServer/UserManager.h:28: error: 'CString' does not name a type
src\/FTPServer/UserManager.h:29: error: 'BOOL' does not name a type
src\/FTPServer/UserManager.h:30: error: 'BOOL' does not name a type
src\/FTPServer/UserManager.h:31: error: 'BOOL' does not name a type
src\/FTPServer/UserManager.h:32: error: 'BOOL' does not name a type
src\/FTPServer/UserManager.h:33: error: 'BOOL' does not name a type
src\/FTPServer/UserManager.h:34: error: 'BOOL' does not name a type
src\/FTPServer/UserManager.h:39: error: expected class-name before '{' token
src\/FTPServer/UserManager.h:40: error: ISO C++ forbids declaration of 'DECLARE_SERIAL' with no type
src\/FTPServer/UserManager.h:42: error: expected ';' before 'CUser'
src\/FTPServer/UserManager.h:46: error: 'CArchive' has not been declared
src\/FTPServer/UserManager.h:50: error: 'CString' does not name a type
src\/FTPServer/UserManager.h:51: error: 'CString' does not name a type
src\/FTPServer/UserManager.h:53: error: ISO C++ forbids declaration of 'CArray' with no type
src\/FTPServer/UserManager.h:53: error: expected ';' before '<' token
src\/FTPServer/UserManager.h:55: error: 'BOOL' does not name a type
src\/FTPServer/UserManager.h:63: error: 'CArray' has not been declared
src\/FTPServer/UserManager.h:63: error: expected ',' or '...' before '<' token
src\/FTPServer/UserManager.h:64: error: 'CArray' has not been declared
src\/FTPServer/UserManager.h:64: error: expected ',' or '...' before '<' token
src\/FTPServer/UserManager.h:68: error: ISO C++ forbids declaration of 'CArray' with no type
src\/FTPServer/UserManager.h:68: error: expected ';' before '<' token
src\/FTPServer/UserManager.h:70: error: 'BOOL' does not name a type
src\/FTPServer/UserManager.h:71: error: 'BOOL' does not name a type
src\/FTPServer/UserManager.h:72: error: 'BOOL' does not name a type
src\/FTPServer/UserManager.h:73: error: 'LPCTSTR' has not been declared
src\/FTPServer/UserManager.h:73: error: 'CString' has not been declared
src\/FTPServer/UserManager.h:73: error: 'CString' has not been declared
src\/FTPServer/UserManager.h:73: error: 'CString' has not been declared
src\/FTPServer/UserManager.h:74: error: 'LPCTSTR' has not been declared
src\/FTPServer/UserManager.h:74: error: 'CString' has not been declared
src\/FTPServer/UserManager.h:74: error: 'CString' has not been declared
src\/FTPServer/UserManager.h:74: error: 'CString' has not been declared
src\/FTPServer/UserManager.h:75: error: 'LPCTSTR' has not been declared
src\/FTPServer/UserManager.h:75: error: 'CString' has not been declared
src\/FTPServer/UserManager.h:75: error: 'CString' has not been declared
src\/FTPServer/UserManager.h:76: error: 'LPCTSTR' has not been declared
src\/FTPServer/UserManager.h:76: error: 'LPCTSTR' has not been declared
src\/FTPServer/UserManager.h:76: error: 'CString' has not been declared
src\/FTPServer/UserManager.h:77: error: 'BOOL' does not name a type
src\/FTPServer/UserManager.h:79: error: 'BOOL' does not name a type
src\/FTPServer/UserManager.h:80: error: 'CString' does not name a type
src\/FTPServer/UserManager.h:81: error: 'CString' does not name a type
src\/FTPServer/UserManager.h:82: error: 'CCriticalSection' does not name a type
In file included from src\/FTPServer/FTPServer.h:16,
from src\main.cpp:6:
src\/FTPServer/SecurityManager.h:15: error: 'BOOL' does not name a type
src\/FTPServer/SecurityManager.h:16: error: 'BOOL' does not name a type
src\/FTPServer/SecurityManager.h:17: error: 'CStringArray' has not been declared
src\/FTPServer/SecurityManager.h:18: error: 'CStringArray' has not been declared
src\/FTPServer/SecurityManager.h:19: error: 'CStringArray' has not been declared
src\/FTPServer/SecurityManager.h:20: error: 'CStringArray' has not been declared
src\/FTPServer/SecurityManager.h:24: error: 'BOOL' does not name a type
src\/FTPServer/SecurityManager.h:26: error: 'CStringArray' does not name a type
src\/FTPServer/SecurityManager.h:27: error: 'CStringArray' does not name a type
src\/FTPServer/SecurityManager.h:28: error: 'CString' does not name a type
src\/FTPServer/SecurityManager.h:30: error: 'CCriticalSection' does not name a type
In file included from src\main.cpp:6:
src\/FTPServer/FTPServer.h:19: error: expected class-name before '{' token
src\/FTPServer/FTPServer.h:20: error: a class-key must be used when declaring a friend
src\/FTPServer/FTPServer.h:20: error: friend declaration does not name a class or function
src\/FTPServer/FTPServer.h:23: error: 'LPCTSTR' has not been declared
src\/FTPServer/FTPServer.h:24: error: 'LPCTSTR' has not been declared
src\/FTPServer/FTPServer.h:29: error: 'BOOL' does not name a type
src\/FTPServer/FTPServer.h:31: error: 'BOOL' does not name a type
src\/FTPServer/FTPServer.h:38: error: 'CCriticalSection' does not name a type
src\/FTPServer/FTPServer.h:41: error: ISO C++ forbids declaration of 'CTypedPtrList' with no type
src\/FTPServer/FTPServer.h:41: error: expected ';' before '<' token
src\/FTPServer/FTPServer.h:47: error: 'CString' does not name a type
src\/FTPServer/FTPServer.h:48: error: 'CString' does not name a type
src\/FTPServer/FTPServer.h:49: error: 'LPCTSTR' has not been declared
src\/FTPServer/FTPServer.h:58: error: 'CString' does not name a type
src\/FTPServer/FTPServer.h:59: error: 'CString' does not name a type
src\/FTPServer/FTPServer.h:61: error: 'BOOL' does not name a type
src\/FTPServer/FTPServer.h:64: error: 'DWORD' does not name a type
src\/FTPServer/FTPServer.h:65: error: 'DWORD' does not name a type
src\/FTPServer/FTPServer.h:75: error: 'BOOL' does not name a type
src\/FTPServer/FTPServer.h:76: error: 'BOOL' has not been declared
src\/FTPServer/FTPServer.h:77: error: 'BOOL' does not name a type
src\/FTPServer/FTPServer.h:90: error: ISO C++ forbids declaration of 'afx_msg' with no type
src\/FTPServer/FTPServer.h:90: error: expected ';' before 'void'
src\/FTPServer/FTPServer.h:92: error: 'LRESULT' does not name a type
src\/FTPServer/FTPServer.h:93: error: 'LRESULT' does not name a type
src\/FTPServer/FTPServer.h:94: error: 'LRESULT' does not name a type
src\/FTPServer/FTPServer.h:95: error: ISO C++ forbids declaration of 'DECLARE_MESSAGE_MAP' with no type
src\/FTPServer/FTPServer.h:96: error: expected ';' before '}' token
src\/FTPServer/FTPServer.h:96: error: expected ';' before '}' token
mingw32-make[1]: Leaving directory `D:/diplom/Serv'
mingw32-make: Leaving directory `D:/diplom/Serv'
mingw32-make[1]: *** [debug/main.o] Error 1
mingw32-make: *** [debug] Error 2
Завершено с кодом 2.
Ошибка во время сборки проекта Server
Во время выполнения сборки на этапе 'Make'


Название: Re: служебные программы
Отправлено: BRE от Апрель 01, 2010, 14:40
Судя по CString, CArchive, это писалось под MFC.


Название: Re: служебные программы
Отправлено: hackoff от Апрель 01, 2010, 16:49
И как сей класс прикрутить к проекту?


Название: Re: служебные программы
Отправлено: hackoff от Май 08, 2010, 17:32
Доброго времени суток.

Хочу прикрутить вызов проверки диска. Если запускать chkdsk c: /f
консоль задает вопрос

Цитировать
Невозможно выполнить команду CHKDSK, так как указанный том используется
другим процессом. Следует ли выполнить проверку этого тома при
следующей перезагрузке системы? [Y(да)/N(нет)]

Как его запустить так чтобы он не задавал вопрос, либо как на этот вопрос ответить через QProcess?

Спасибо за внимание :)


Название: Re: служебные программы
Отправлено: inri13666 от Август 05, 2010, 11:10
How to Automate Chkdsk (http://support.microsoft.com/kb/197527)

Это из офф мануала
Create a batch file and then disseminate it to the preferred system or systems:
Код:
   @echo off
   echo y|chkdsk c: /f/r
   rem sleep 3600
   rem c:\utils\shutdown.exe /l /r /y /t:6

но думаю достаточно будет и так
Код:
   echo y|chkdsk c: /f/r