2013-06-07 2 views
0

Я работаю на некоторых устаревших VB6 кода, и я имею свой перерыв программы с этим сообщением:VB6 унаследованный код не может «Call Shell»

enter image description here

и затем выделяет этот код:

enter image description here

Я знаю, что указанные места существуют на этих скриншотах:

enter image description here enter image description here

Я запускаю эту Visual Studio 6.0 на 64-разрядной машине Windows 7. Как заставить программу видеть оболочку?

+0

Вы уверены, что FileServer & "\ public \ Drafting" существует? – Bathsheba

+1

Вы знаете, что 'command.com' является очень старым и старым? Вы должны использовать '% comspec%' или 'cmd.exe' или требуемую команду напрямую, если это исполняемый файл. – Deanna

+0

В дополнение к уже опубликованным ответам вам также может потребоваться запустить ваш процесс, чтобы достичь того, чего вы хотите –

ответ

4

command.com не существует на 64-битных окнах.

Попробуйте использовать C: \ Windows \ SysWOW64 \ cmd.exe. C: \ Windows \ SysWOW64 - это папка, которая дает вам возможность обратной совместимости для 32 бит.

Но см. Комментарий ниже (взято из Euro Micelli).

Действительно, вы должны использовать% SYSTEMROOT \ System32 \ cmd.exe. Во-первых, Windows не всегда устанавливается в C: \ Windows; вы должны позволить системе понять это. Во-вторых, использование System32 всегда корректно для 32-битного приложения: при работе в Win32 это правильная папка; при работе на Win64, Windows будет отображать% SYSTEMROOT% \ System32 в% SYSTEMROOT% \ SysWOW64

+2

На самом деле вы должны использовать '% SYSTEMROOT \ System32 \ cmd.exe'. Во-первых, Windows не всегда устанавливается в 'C: \ Windows'; вы должны позволить системе понять это. Во-вторых, использование System32 всегда корректно для 32-битного приложения: при работе в Win32 это правильная папка; при работе на Win64 Windows отобразит '% SYSTEMROOT% \ System32' на'% SYSTEMROOT% \ SysWOW64' для вас. –

+0

Действительно, Евро Мичелли, я исправлю ответ. Извините, был немного ленив; Пятница в конце концов. – Bathsheba

2

Я использую VB6 и окна 7.

я сделал то же самое, как вы, но я поставил команду ДОС в файл bat.

Login.bat

NET USE W: \\10.48.10.8\e$ 

Затем в коде Shell ("C: \ login.bat")

+2

Обратите внимание, что существует ОЧЕНЬ большая разница между DOS и интерфейсом командной строки для Windows! – Deanna

1

Команда VB не подходит для ОС, работающих под управлением. Вам нужно проверить, что этот диск еще не отображен, и удалите команду com.com/c из команды, которую вы пытаетесь выполнить.

Смежные вопросы