2015-03-05 5 views
1

Итак, это странно.Приложение C++/CLR, которое запускает процесс и вставляет в него DLL, работает только тогда, когда не запускается как admin

У меня есть приложение .NET, которое загружает C++/CLR DLL, которое, в свою очередь, запускает процесс (используя CreateProcess) и вставляет в него DLL (с ​​использованием метода удаленных потоков). Однако вновь созданный процесс (который является игрой) имеет совершенно разные текстуры, когда вы запускаете приложение .NET как администратор, и когда вы вызываете его как обычного пользователя. Его текстуры содержатся в файлах внутри корневого каталога игры. Мой код создания процесса отлично работает, если я создаю его как отдельную программу - без CLR - и запустим ее, так что этого не может быть.

Что может быть причиной этого? Я не уверен, что это не игра с игрой. Каталог, в котором читается материал, является только администратором, поэтому, естественно, запускает приложение .NET, поскольку администратор должен предоставить мне доступ. Но я получаю прямо противоположное - он работает только тогда, когда я запускаю его без прав администратора.

+0

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

+0

На самом деле, нет, что-то еще более странное. Я только что дал всем пользователям все права доступа к папке, и я получаю то же самое. –

+0

Любое использование каталогов TEMP или других папок, которые могут отличаться в зависимости от пользователя, запускающего приложение? – Baldrick

ответ

0

Цитируя себя от другого вопроса:

Некоторые места, как «Program Files», охраняются в соответствии с последними версиями Windows. Если ваша программа не запускается как администратор и пытается получить доступ к защищенному местоположению, операции чтения/записи будут тихо перенаправлены на C: \ Users \ MYNAME \ AppData \ Local \ VirtualStore \ MY \ FOLDER \ PATH. Запуск вашей программы в качестве администратора должен исправить это, где бы он ни находился.

Взгляните на это место, вы увидите, возникла ли эта проблема.

+0

Проблема в том, что она не работает, когда я запускаю ее как admin, но работает, когда я этого не делаю. –

+0

@ Николая Янакиев Да, я это читал. Это ничего не значит. Возможно, нужные файлы фактически находятся в виртуальном магазине. Вот почему я предлагаю взглянуть, чтобы быть уверенным. – ElderBug

+0

Правильно, в VirtualStore были разные файлы. Я удалил их, и теперь он заменил файлы в игровой папке по умолчанию (скорее всего, это игровая функция). Что я могу сделать, чтобы исправить это? –