Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2018, 17:34   #1
BernardKing
 
Регистрация: 16.04.2018
Сообщений: 6
По умолчанию ShellExecute с параметрами

Добрый день!
Есть строковая переменная (param) с параметрами, как мне запустить CMD, используя в качестве параметров содержимое этой строки? Явная запись работает, а из переменной не получается. Заранее благодарен за ответ.
BernardKing вне форума Ответить с цитированием
Старый 16.04.2018, 17:36   #2
BernardKing
 
Регистрация: 16.04.2018
Сообщений: 6
По умолчанию

Да, необходимо запустить cmd с правами локального админа, посему пользуюсь ShellExecute
BernardKing вне форума Ответить с цитированием
Старый 16.04.2018, 17:43   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

погуглил.

вот это не ваш случай?
Код:
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <string>
#include <cstring>
#include "windows.h"
#include <shellapi.h>
#pragma comment(lib,"shell32.lib") 
static HWND hBut; 

using namespace std;

int main()
{

	string path = "d:\\test1.exe";

	ShellExecuteA(GetDesktopWindow(), ("open"), LPCSTR(path.c_str()), NULL, NULL, SW_SHOWNORMAL);

}
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.04.2018, 09:25   #4
BernardKing
 
Регистрация: 16.04.2018
Сообщений: 6
По умолчанию

Нет, мне надо открыть cmd и передать в него параметры, которые я сохранил в строковой переменной "param".
BernardKing вне форума Ответить с цитированием
Старый 17.04.2018, 09:35   #5
BernardKing
 
Регистрация: 16.04.2018
Сообщений: 6
По умолчанию

Вот например:

не работает...
param = "ipconfig";
ShellExecuteA(0, "runas", "cmd.exe", param.c_str(), NULL, SW_RESTORE);

работает...
ShellExecuteA(0, "runas", "cmd.exe", "/K ipconfig", NULL, SW_RESTORE);

что я делаю не так?
BernardKing вне форума Ответить с цитированием
Старый 17.04.2018, 09:39   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Выдает-то что?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 17.04.2018, 09:49   #7
BernardKing
 
Регистрация: 16.04.2018
Сообщений: 6
По умолчанию

Командную строку.

Разобрался, в строку "param" добавил ключ /K, заработало, как сразу не заметил не пойму.

Другая проблема в строке param содержится путь с пробелами, как его описать правильно?

param = "C:\\Program files\\Speccy\\Speccy.exe"
BernardKing вне форума Ответить с цитированием
Старый 17.04.2018, 09:55   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от BernardKing Посмотреть сообщение
Другая проблема в строке param содержится путь с пробелами, как его описать правильно?
попробуйте просто добавить кавычки в строку:
Код:
param = "\"C:\\Program files\\Speccy\\Speccy.exe\""
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.04.2018, 11:35   #9
BernardKing
 
Регистрация: 16.04.2018
Сообщений: 6
По умолчанию

"C:\Program" не является внутренней или внешней командой ... и т.д. Не помогло.
BernardKing вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ShellExecute Артегор Общие вопросы C/C++ 16 01.06.2016 17:22
Перенос Edit в ShellExecute или переменые в ShellExecute VMG Общие вопросы Delphi 5 11.02.2014 15:12
программа с типизированными параметрами-значениями и параметрами-переменными Kira09 Паскаль, Turbo Pascal, PascalABC.NET 1 20.12.2010 22:23
ShellExecute SNUPY Общие вопросы Delphi 4 19.02.2008 22:59