C: разрешение на доступ к диску в Windows 7 - PullRequest
0 голосов
/ 02 октября 2011

В Matlab я использовал отдельное приложение для Windows.В этом приложении есть строка, которая записывает файл в C:\...\...\.Когда я запускаю выходной exe-файл, созданный из этого автономного приложения для Windows, exe-файл не записывает в C:\...\...\ и не сообщает мне, что в этом разделе есть проблемы с безопасностью.Все исполнение ничего не значит.Но когда я щелкаю правой кнопкой мыши и запускаю exe как администратор, он запускается правильно.

Я хочу сделать это без щелчка правой кнопкой мыши и запускать от имени администратора.Есть ли в matlab команда, которая может это сделать?

Ответы [ 4 ]

2 голосов
/ 03 октября 2011

Если вы создаете ярлык для своего приложения, вы можете перейти в Свойства ярлыка, щелкнуть Дополнительно на вкладке Ярлык и выбрать «Запуск от имени администратора». Таким образом, каждый раз, когда вы запускаете приложение из ярлыка, оно запускается от имени администратора.

(Отказ от ответственности: приложения на самом деле не должны «забивать свое гнездо», записывая в Program Files. Это плохой дизайн.)

1 голос
/ 02 октября 2011

Если вы являетесь администратором, добавьте полное право доступа для вашего имени пользователя в папку назначения. Вы делаете это, щелкая правой кнопкой мыши по папке, перейдя в свойства, а затем вкладку безопасности Затем отредактируйте и добавьте свое имя пользователя с правами Full Control. Тогда вам не нужно запускать программу от имени администратора.

1 голос
/ 02 октября 2011

Начиная с Vista, непривилегированным процессам запрещается запись в защищенные папки, такие как Program Files, поскольку Program Files предназначена для хранения кода, а не данных. Однако, поскольку это ограничение не было введено в XP, MS предоставила хак обратной совместимости в виде виртуального хранилища. Теперь, когда программа пытается записать в защищенную папку, ее вывод перенаправляется в выделенную папку. Таким образом, программа все еще «думает», что она пишет в свое обычное местоположение, в то время как фактически она пишет в незащищенное местоположение. Однако, когда вы позже проверите местоположение Program Files, вы можете не увидеть файл - потому что его там нет.

Подробнее см. Здесь: Перенаправление данных контроля учетных записей пользователей .

0 голосов
/ 02 октября 2011

Невозможно повысить уровень процесса после его запуска, поэтому Matlab не может иметь команду для этого. Просто работает Matlab повышен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...