Russian Qt Forum
Ноябрь 04, 2024, 21:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [реш]QString, WinExec, cmd /k не работает (Windows)  (Прочитано 2996 раз)
pethead
Гость
« : Декабрь 21, 2010, 10:00 »

//взят рабочий код
Код
C
 
CString str;
                       str = _T("192.168.0.81");
str = _T("cmd /k ping ") + str;
char STROUT[256];
for (int i=0;i<256;STROUT[i]=0,i++);
BOOL UDC=true;
WideCharToMultiByte(0,0,COLE2T(str.AllocSysString()),lstrlenW(COLE2T(str.AllocSysString())),STROUT,sizeof(STROUT),"",&UDC);
WinExec((LPCSTR)STROUT,SW_SHOW);
 

Код:
//переписан так
QString str;
//работает
str = "http://www.ya.ru";
ShellExecuteA(0, "open", str.toAscii(), NULL, NULL, SW_SHOWNORMAL);

//не работает
str = "cmd /k ping 192.168.0.81";
WinExec(str.toAscii(),SW_SHOW);
пишет что
'ping' is not recognized as an internal or external command,
operable program or batch file.
« Последнее редактирование: Декабрь 21, 2010, 11:08 от pethead » Записан
BRE
Гость
« Ответ #1 : Декабрь 21, 2010, 10:04 »

Ну он и сообщает причину:
'ping' is not recognized as an internal or external command,

Не может он найти ping.exe.
Попробуй указать полный путь до этой программы.
Записан
Fat-Zer
Гость
« Ответ #2 : Декабрь 21, 2010, 10:11 »

Если в  IDE'шке собираете, то возможно PATH не правильный стоит...
А если полный путь?
И ещё плохо знаком с винапи, но по аналогии не хватает (LPCSTR).
« Последнее редактирование: Декабрь 21, 2010, 10:15 от Fat-Zer » Записан
pethead
Гость
« Ответ #3 : Декабрь 21, 2010, 11:07 »

весело. при запуске в IDE не работает. при запуске вне среды - работает.
всем спасибо.

*причина неправильного пути: почему то при отладке Qt приложения переменная пути прописывается как:

PATH=C:\Qt\4.7.1\bin;"c:\windows\system32;c:\windows;...

и т.д. т.е. после пути Qt стоит кавычка и дальше пути криво добавляются т.е. не работают. (ping не находится)
а если отлаживать win32 приложение то путь принимает правильный вид:

PATH=c:\windows\system32;c:\windows;...

т.е. при запуске из Студии ping и иные утилиты находятся.

помогло пересоздание *.vcproj из *.pro.
теперь и приложение Qt запускается с нормальной переменной path.
« Последнее редактирование: Декабрь 21, 2010, 13:31 от pethead » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.062 секунд. Запросов: 21.