Russian Qt Forum

Qt => Многопоточное программирование, процессы => Тема начата: QuAzI от Декабрь 27, 2010, 03:01



Название: QProcess с другой учёткой
Отправлено: QuAzI от Декабрь 27, 2010, 03:01
Нужно запустить процесс от имени другого пользователя. Есть в Qt какие-нибудь штатные функции или надо ковыряться с CreateProcessAsUser/CreateProcessWithLogonW ?


Название: Re: QProcess с другой учёткой
Отправлено: Пантер от Декабрь 27, 2010, 10:15
Штатных функций нет. Пиши сам под каждую платформу.


Название: Re: QProcess с другой учёткой
Отправлено: QuAzI от Декабрь 27, 2010, 12:46
Жалько.
А ни у кого не завалялось чего-нибудь типа сводной табличкий соответствия типов Qt/MSVC/Builder C++ ???
А то мозг кипит при попытке перебить стуктуры из MSDN в синтаксис Qt.


Название: Re: QProcess с другой учёткой
Отправлено: Denjs от Январь 06, 2011, 01:19
А то мозг кипит при попытке перебить стуктуры из MSDN в синтаксис Qt.
а оно всегда так когда пытаешься кривобокое изжопокосоручие со структурами и функциями склеить с чем-то нормально-ООП-шным...
писал тут на днях виндовую часть модуля связи с usb-принтером ... опплевалсо-обматерилсо весь ...

могу дать кусок кода по преобразованию *WCHAR в QString и обратно...


Название: Re: QProcess с другой учёткой
Отправлено: QuAzI от Январь 06, 2011, 09:25
Кажется так
Код:
#ifdef UNICODE
#define QStringToTCHAR(x)     (wchar_t*) x.utf16()
#define PQStringToTCHAR(x)    (wchar_t*) x->utf16()
#define TCHARToQString(x)     QString::fromUtf16((x))
#define TCHARToQStringN(x,y)  QString::fromUtf16((x),(y))
#else
#define QStringToTCHAR(x)     x.local8Bit().constData()
#define PQStringToTCHAR(x)    x->local8Bit().constData()
#define TCHARToQString(x)     QString::fromLocal8Bit((x))
#define TCHARToQStringN(x,y)  QString::fromLocal8Bit((x),(y))
#endif