Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
67 / 65 / 61
Регистрация: 11.11.2015
Сообщений: 394

Файл mblctr не находится при запуске через Process.Start

19.01.2016, 22:38. Показов 2021. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Хочу сделать возможность из своей программы открывать центр мобильности Windows (mblctr.exe)

C#
1
Process.Start("mblctr.exe");
Ловлю ошибку, что файл не найден.

При этом по Win + R оно же успешно запускается. Посоветуйте пожалуйста решение.
Может дело в путях?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.01.2016, 22:38
Ответы с готовыми решениями:

java не запускается через Process.Start
Есть батник, из которого длинной командой запускается java. Нужно выполнить эту команду из С# программы. Process.Start(new...

Запуск Excel файла через Process.Start
Добрый день! Возникла такая ситуация. Необходимо открыть файл .xlsx через команду Process.Start. Однако есть небольшой нюанс, а именно...

Почему при Process.Start не открывает спец возможности
К примеру есть код который должен при нажатие на кнопку, открыть специальные возможности Process.Start("access.cpl"); ...

8
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18273 / 14196 / 5368
Регистрация: 17.03.2014
Сообщений: 28,881
Записей в блоге: 1
19.01.2016, 23:33
lonelyhunter, запуск не происходит т.к. у тебя x86 процесс под x64 ОС и в дело вмешивается виртуализация файловой системы. Чтобы избежать этого откомпилируй под x64 или используй следующий код
C#
1
2
string mblctrPath = Environment.Is64BitProcess ? "mblctr.exe" : Environment.ExpandEnvironmentVariables(@"%windir%\sysnative\mblctr.exe");
Process.Start(mblctrPath);
Добавлено через 3 минуты
Наверное стоит пояснить. Для x86 процесса мы формируем путь вида C:\Windows\sysnative\mblctr.exe. Виртуальная папка sysnative сигнализирует слою эмуляции что виртуализацию файловой системы для данного пути не нужно использовать.
1
67 / 65 / 61
Регистрация: 11.11.2015
Сообщений: 394
20.01.2016, 19:04  [ТС]
Благодарю.

Добавлено через 47 минут
Теперь немного другая дурь уже с msconfig.exe.
Сделал, как Вы сказали - не удалось найти указанный путь.
С центром мобильности получилось. А с msconfig нет.

Добавлено через 58 секунд
C#
1
string msconfigPath = Environment.Is64BitProcess ? "msconfig.exe" : Environment.ExpandEnvironmentVariables(@"%windir%\sysnative\msconfig.exe");
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18273 / 14196 / 5368
Регистрация: 17.03.2014
Сообщений: 28,881
Записей в блоге: 1
20.01.2016, 21:03
Лучший ответ Сообщение было отмечено lonelyhunter как решение

Решение

lonelyhunter, ох уж эта виртуализация. Проще вообще её отключить в момент запуска процесса.
C#
1
2
3
4
5
using (var disableRedirects = new DisableFsRedirection())
{
    Process.Start("msconfig.exe");
    //Process.Start("mblctr.exe");
}
Код класса DisableFsRedirection находится в этой теме.
2
67 / 65 / 61
Регистрация: 11.11.2015
Сообщений: 394
20.01.2016, 21:44  [ТС]
Спасибо!

Добавлено через 28 минут
P.S. Действительно все работает.
Не могли бы Вы мне объяснить на пальцах принцип работы оператора using? Хотелось бы понять, что я делаю.
Заранее спасибо!
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18273 / 14196 / 5368
Регистрация: 17.03.2014
Сообщений: 28,881
Записей в блоге: 1
20.01.2016, 21:50
lonelyhunter, блок using используется с классами реализующими IDisposable и генерирует код вызывающий Dispose() в конце блока. Это нужно для детерминированного освобождения неуправляемых ресурсов.
0
67 / 65 / 61
Регистрация: 11.11.2015
Сообщений: 394
20.01.2016, 21:51  [ТС]
Т.е. файлы и потоки?
А как именно работает описанный Вами случай?
Ведь к disableRedirects мы не обращаемся в блоке.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18273 / 14196 / 5368
Регистрация: 17.03.2014
Сообщений: 28,881
Записей в блоге: 1
20.01.2016, 21:58
Лучший ответ Сообщение было отмечено lonelyhunter как решение

Решение

Цитата Сообщение от lonelyhunter Посмотреть сообщение
Т.е. файлы и потоки?
Не только. Сокеты, дескрипторы ОС, неуправляемая память и т.д. и т.п.

Цитата Сообщение от lonelyhunter Посмотреть сообщение
А как именно работает описанный Вами случай?
Ведь к disableRedirects мы не обращаемся в блоке.
Нам и не нужно к ней обращаться. Тем более что никаких полезных publiс членов у класса DisableFsRedirection все равно нет. Конструктор класса запрещает виртуализацию, а метод Dispose() или финализатор отключает. Вызов Dispose() генерируется компилятором. Таким образом в начале блока мы запрещаем виртуализацию, а в конце включаем обратно.
1
67 / 65 / 61
Регистрация: 11.11.2015
Сообщений: 394
20.01.2016, 22:20  [ТС]
Все стало понятно. Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.01.2016, 22:20
Помогаю со студенческими работами здесь

Не работает System.Diagnostics.Process.Start
Подскажите почему button2 не работает? Почему System.Diagnostics.Process.Start не читает string? public partial class Form1 : Form ...

Process.Start c именем пользователя и пароля
Добрый день господа. Помогите разобраться в задаче. как войти в сетевую папку используя логин и пароль? private void...

Process.Start() Не запускает системные утилиты
Имеется путь до msconfig: C:\Windows\System32\msconfig.exe Битность: x64 Пытаюсь вызвать:...

Не открывает exe через Process.Start
Есть папка "1", в этой папке тоже есть папка "2" Запускаю "1.exe" с папки "1"... "1.exe" включает прогаму "2.exe" из папки...

Process.Start: как запустить файл, находящийся в директории программы
Еще раз здравствуйте!) Подскажите пожалуйста. Я ознакомился с Process.Start(), и у меня появился вопрос, что надо писать что бы он искал...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru