Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
9 / 9 / 0
Регистрация: 19.10.2011
Сообщений: 113

Командная строка, работа с дисками удаленного компа

06.03.2014, 08:59. Показов 1999. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую, пишу небольшую утилитку для работы с сетью и сетевыми дисками, и столкнулся с таким непонятным глюком. Пытаюсь через программу подключить сетевые диски используя cmd

C++
1
2
3
4
String ipCompa = lpCmdLine; //получаем данные
 
String diskCompa = "/k net use f: \\\\"+ipCompa+"\\C$ /user:admin@domain.local pass14556jfjd";
ShellExecuteA(NULL,"open","cmd.exe",diskCompa.c_str(),0,SW_SHOWNORMAL);
ситуация следующая
когда я выполняю команду в cmd

net use f: \\192.168.1.5\C$ /user:admin@domain.local pass14556jfjd
все нормально, диск подключается, и даже виден в системе как сетевой диск F: через проводник и любые другие файловые менеджеры.

кода же я пытаюсь выполнить теже самые действия через программу, т. е. предать айпишник компа аргументом в программу, а программа тем самым выполнит запуск cmd с ключем /k и подключит диск удаленного компа, который в системе не будет виден, а виден только в этой консоле которая была вызвана.
т. е. если я в этой же консоле введу F:
то мы спокойно перейдем на диск F, сможем просмотреть файлы командой DIR и это будут файлы удаленного компа. При этом в проводнике, или в других файловых менеджерах диска F не видно. И опять же, если я введу
в тойже консоле explorer.exe f:, то происходит ошибка, что диска не существует. Как это понимать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.03.2014, 08:59
Ответы с готовыми решениями:

При старте компа появляется черный экран и командная строка в верхнем левом углу, безопасный режим не работает
При старте компа появляется черный экран и командная строка в верхнем левом углу. На компе стоит Виндоус 7. Жесткий диск проверил через...

Командная строка и работа с процессами
Как в командной строке отобразить пользователя использующего программу блокнот с помощью команды tasklist? Пробовал tasklist /FI /FO LIST...

Не печатает с удаленного компа
Всем привет!! Только устроился в сфере IT, а опыт тока по дому, так что не судите строго. Проблема такая. Не получается вывести файл на...

8
 Аватар для Maluda
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
07.03.2014, 01:23
1 вариант. Вызываем непосредственно net без cmd
C++
1
2
3
4
5
6
7
8
9
const String sCompIp = "192.168.1.5";
const String sNetAppName = "net";
const String sNetParams = " use f: \\\\" + sCompIp + "\\C$ /user:admin@domain.local pass14556jfjd";
 
 
const int iRes = (int)ShellExecuteW(NULL, L"open", sNetAppName.c_str(), sNetParams.c_str(), 0, SW_SHOWNORMAL);
if (iRes <= 32) {
    ShowMessage(SysErrorMessage(iRes));
}
2 вариант. Формируем батник, добавляем команду пауза, чтобы посмотреть результат вывода
C++
1
2
3
4
5
6
7
8
9
10
std::auto_ptr<TStringList>AStringList(new TStringList());
AStringList->Add(sNetAppName + sNetParams);
AStringList->Add("pause");
AStringList->SaveToFile("test.cmd");
 
 
const int iRes = (int)ShellExecuteW(NULL, L"open", L"test.cmd", 0, 0, SW_SHOWNORMAL);
if (iRes <= 32) {
    ShowMessage(SysErrorMessage(iRes));
}
Миниатюры
Командная строка, работа с дисками удаленного компа  
1
43 / 1 / 1
Регистрация: 05.01.2014
Сообщений: 337
02.03.2016, 14:56
Не работают эти варианты
Например ошибки по 1 варианту:
[C++ Error] Unit1.cpp(28): E2034 Cannot convert 'char *' to 'const wchar_t *'
[C++ Error] Unit1.cpp(28): E2342 Type mismatch in parameter 'lpFile' (wanted 'const wchar_t *', got 'char *')
[C++ Error] Unit1.cpp(28): E2034 Cannot convert 'char *' to 'const wchar_t *'
[C++ Error] Unit1.cpp(28): E2342 Type mismatch in parameter 'lpParameters' (wanted 'const wchar_t *', got 'char *')
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33197 / 21493 / 8233
Регистрация: 22.10.2011
Сообщений: 36,882
Записей в блоге: 12
02.03.2016, 15:36
Это зависит от версии Билдера. Если у тебя XE+ - то все работает. Если версия ниже - то придется менять c_str() на w_str() (если оно там есть, конечно)
0
43 / 1 / 1
Регистрация: 05.01.2014
Сообщений: 337
02.03.2016, 15:41
Нет, у меня на данный момент Builder 6. Поменял, теперь так пишет:
[C++ Error] Unit1.cpp(28): E2316 'w_str' is not a member of 'AnsiString'
[C++ Error] Unit1.cpp(28): E2316 'w_str' is not a member of 'AnsiString'
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33197 / 21493 / 8233
Регистрация: 22.10.2011
Сообщений: 36,882
Записей в блоге: 12
02.03.2016, 15:46
Так на кой тебе в Builder6 нужен ShellExecuteW? Используй ShellExecute
1
43 / 1 / 1
Регистрация: 05.01.2014
Сообщений: 337
02.03.2016, 15:56
Сделал вот так:
C++
1
const int iRes =(int)ShellExecute(NULL, L"open" , sNetAppName.c_str(), sNetParams.c_str(),NULL,SW_SHOWNORMAL);
И опять ошибки
[C++ Error] Unit1.cpp(29): E2034 Cannot convert 'wchar_t *' to 'const char *'
[C++ Error] Unit1.cpp(29): E2342 Type mismatch in parameter 'lpOperation' (wanted 'const char *', got 'wchar_t *')
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
02.03.2016, 16:52
Теперь надо убрать буковку L перед "open"...
В ошибках же прямым текстом написано, чего компилятор хочет. Надо учиться их понимать.
1
43 / 1 / 1
Регистрация: 05.01.2014
Сообщений: 337
03.03.2016, 08:04
Спасибо, разобрался!
А вот насчет компилятора вы правы. Но порой он такие закарючки выдает, что не сразу смекнешь

Добавлено через 14 часов 52 минуты
Еще одно маленькое уточнение. В строке, где объявляется IP адрес компьютера нужны ли какие нибудь дополнения, если диск подключается на удаленном компьютере( присутствует локальная сеть с доменом). Вопрос возник потому что если указать IP другого ПК- код не срабатывает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.03.2016, 08:04
Помогаю со студенческими работами здесь

Сведения об ОС удаленного компа
Здравствуйте. Подскажите, пожалуйста, как мне с помощью технологии WMI получить информацию об операционной системе удаленного компьютера....

загрузка файлов с удаленного компа на сервер
Подскажите хорошие ссылки на сайты, где можно почитать про загрузку файлов с удаленного компа на сервер. Желательно, чтобы была реализована...

Можно ли скопировать файлы с удаленного компа
Есть такие папки. При входе в них есть файлы, которые мне нужны. Но при открытии свойств этих папок или файлов в этих папках размер пишет...

Авторизация под учеткой SQL с удаленного компа
Всем привет! Подскажите возможно или нет подключатся к базе с удаленного компьютера используя учетку SQL? Может надо как то настраивать...

Размер свободного места на расшаренной папке удаленного компа
Добрый день. Если подключить расшаренную папку с удаленного компьютера виден объем и кол-во свободного места на диске, на котором она...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru