Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
 Аватар для Sapphire
58 / 52 / 0
Регистрация: 15.12.2012
Сообщений: 449

Команда Shell ("c:\bla-bla.reg") выдает ошибку, или как открыть файл программой по умолчанию

26.10.2013, 11:52. Показов 2885. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем. Кто подскажет, почему VB выдает ошибку "5" (недопустимый вызов процедуры или параметра) при попытке
запуска файлов командой Shell. Сколько пользовался, всегда работало.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.10.2013, 11:52
Ответы с готовыми решениями:

Wsprintf() выдает Stack Around . bla bla . occured
LRESULT CALLBACK WndProc2(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { RECT rect; wchar_t a; switch (message) ...

Метод .setPrompt("bla bla bla"); не работает!
Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь? Проблема в том, что мне ну удается изменить заголовок spinner через...

Could Not Locate Topology Data In Server1/bla/bla Names.nsf Run The Ma
Could not locate topology data in Server1/BLA/BLA names.nsf Run the Maps addin on the server to generate the topology data. Как...

13
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
26.10.2013, 12:51
Цитата Сообщение от Sapphire Посмотреть сообщение
почему
Могу лишь подозревать, что файл "c:\bla-bla.exe" вымышленный, хотелось бы увидеть ту строку в параметре Shell, которая действительно привела к ошибке.
0
 Аватар для Sapphire
58 / 52 / 0
Регистрация: 15.12.2012
Сообщений: 449
29.10.2013, 04:23  [ТС]
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
cmdFOC.SetFocus
If O1.Value = True Then
  If Dir("c:\VIS201.reg") = "" Then
    MsgBox "Рег. файл не найден.", vbExclamation, "Слияние"
    Exit Sub
  Else
    If MsgBox("Слияние файла реестра в автозапуск. Продолжаем?", vbYesNo + vbInformation, "Слияние") = vbYes Then
      Shell ("c:\vis201.reg")
    End If
  End If
End If
0
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
29.10.2013, 07:43
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Пробуйте так-
Visual Basic
1
Shell "regedit.exe C:\vis201.reg"

Не по теме:

"exe"<>"reg"

0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
29.10.2013, 07:45
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Цитата Сообщение от Sapphire Посмотреть сообщение
Сколько пользовался, всегда работало.
Разницу между .EXE и .REG вообще не видите?
Чтобы запустить приложение, связанное с расширением данного документа, не зная имени связанного приложения можно использовать функцию Windows API ShellExecute().
Visual Basic
1
2
3
4
5
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
                   (ByVal hwnd As Long, ByVal lpszOp As String, _
                    ByVal lpszFile As String, ByVal lpszParams As String, _
                    ByVal LpszDir As String, ByVal FsShowCmd As Long) _
                    As Long
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38177 / 21112 / 4307
Регистрация: 12.02.2012
Сообщений: 34,716
Записей в блоге: 14
02.11.2013, 18:35
Цитата Сообщение от Sapphire Посмотреть сообщение
Shell ("c:\vis201.reg")
- так, конечно, нельзя. Аргумент Shell - файл исполняемого формата
1
 Аватар для Sapphire
58 / 52 / 0
Регистрация: 15.12.2012
Сообщений: 449
18.06.2014, 06:53  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
так, конечно, нельзя. Аргумент Shell - файл исполняемого формата
Имеется в виду .exe, bat? А если файл с расширением .doc, xls?
0
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
18.06.2014, 08:38
Цитата Сообщение от Sapphire Посмотреть сообщение
А если файл с расширением .doc, xls?
Sapphire, за 8 месяцев вам не удалось выполнить эту инструкцию?
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
18.06.2014, 13:49
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Sapphire, если трудно воспользоваться ShellExecute, Вы можете поступить так:

Visual Basic
1
shell "explorer c:\1.doc"
2
 Аватар для Sapphire
58 / 52 / 0
Регистрация: 15.12.2012
Сообщений: 449
20.06.2014, 08:09  [ТС]
Цитата Сообщение от Апострофф Посмотреть сообщение
Sapphire, за 8 месяцев вам не удалось выполнить эту инструкцию?
Да нет Просто на момент поста, в голове "переполнение" было и времени на раздумья наносекунды

Добавлено через 5 минут
Цитата Сообщение от Dragokas Посмотреть сообщение
Sapphire, если трудно воспользоваться ShellExecute, Вы можете поступить так:
Вот, это самый оптимальный вариант. Главное что это можно хранить в голове, а не в файле-исходнике который валяется где то на винте среди кучи других

Не по теме:

Просто я фанат кодов в две строки

0
 Аватар для Sapphire
58 / 52 / 0
Регистрация: 15.12.2012
Сообщений: 449
20.06.2014, 08:19  [ТС]
Нет времени писать на VB вывод на принтер для распечатки, поэтому поступил так:
Visual Basic
1
2
3
4
5
6
Private Sub cmdWORD_Click()
 Open ("c:\Print.doc") For Output As #1
  Print #1, TVIEW.Text
   Close #1
    Shell "explorer c:\Print.doc"
End Sub
Все ничего, но вот это дело напрягает. Как исправить, чтоб без заморочек открывалось? (лишних 2 клика мыши!!!)
Миниатюры
Команда Shell ("c:\bla-bla.reg") выдает ошибку, или как открыть файл программой по умолчанию  
0
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
20.06.2014, 16:24
Попробуй так... у меня открывает файлы и ссылки интернета
Visual Basic
1
Shell "rundll32 url.dll, FileProtocolHandler c:\Print.doc", vbNormalFocus
Добавлено через 4 минуты
только надо использовать полные пути в файлах
и помнить о двойных кавычках, таким способом мне удалось открыть Лист Excel

Visual Basic
1
Shell "rundll32 url.dll, FileProtocolHandler ""C:\Documents and Settings\User.MICROSOF-431344\Рабочий стол\Новая папка (2)\Лист Microsoft Excel.xls""", vbNormalFocus
Добавлено через 4 минуты
я тоже искал подобные решения, только мне нужно найти способ открыть
исполняемый Файл.Exe, который бы находился в архиве, но при этом не извлекался никуда
идеально было бы если такое удасться сделать удаленным способом

Добавлено через 16 минут
а так, запустится эта-же страница
Visual Basic
1
2
3
Private Sub Form_Load()
    Shell "rundll32 url.dll, FileProtocolHandler ""https://www.cyberforum.ru/visual-basic/thread1206644-page2.html""", vbNormalFocus
End Sub
Добавлено через 30 минут
Вот еще недокументированная возможность...
что вызовет диалог перезагрузки с новыми параметрами..
и того у меня этих недокументированных возможностей около 500...
нарыл в интернете, сейчас разгребаю

Visual Basic
1
2
3
Private Sub Form_Load()
    Shell "rundll32.exe shell32.dll RestartDialogEx"
End Sub
rundll32.exe shell32.dll Control_RunDLLAsUser

С помощью данной функции выполняется запуск от имени пользователя с административными правами.

Добавлено через 2 минуты
ну и так, можно бысто сдвинуть курсор в правый нижний угол (где часы)

Shell "rundll32 user32,SetCursorPos"
0
 Аватар для Otwet
2 / 2 / 3
Регистрация: 13.05.2014
Сообщений: 29
04.07.2014, 17:20
Цитата Сообщение от Sapphire Посмотреть сообщение
вывод на принтер для распечатки
Данная команда, как я знаю, и надеюсь что впредь будите знать и вы, выполняет ОТКРЫТИЕ (УУУУ, Капс!) файла, а не вывод на печать.

Visual Basic
1
Shell "explorer c:\Print.doc"
Можно сразу в винворд с аргументами вписать, он проглотит
0
 Аватар для Sapphire
58 / 52 / 0
Регистрация: 15.12.2012
Сообщений: 449
10.07.2014, 12:56  [ТС]
Цитата Сообщение от Otwet Посмотреть сообщение
c:\Print.doc
Это имя файла для распечатки, туда я скидываю инфу. На расширение глядели?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.07.2014, 12:56
Помогаю со студенческими работами здесь

Запустить файл или открыть программой по умолчанию
Знаю как все делать с файлом, открыть для записи , закрыть , переместить но все програмно...Но как его просто открыть то??? не системно, а...

Как открыть файл программой по умолчанию
Нужно по нажатию на кнопку сразу открыть файл word.docx , без появления OpenFileDialog1

Как открыть файл программой по умолчанию
Всем привет, у меня вопрос следующего характера. Как моему приложению запустить внешненее приложение по умолчанию. Например, я хочу открыть...

Как открыть временный файл программой по умолчанию?
К примеру во временный файл поместил QR-code, как его показать (открыть в программе по умолчанию)? os.startfile() - выдает ошибку:...

Как открыть файл программой по умолчанию по гиперссылке в DataGridView
Доброго времени суток! Небольшое вступление. Пишу небольшую программу для формирования доументов по определенному шаблону (документы в...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru