Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Внесение данных в реестр на Win7 х64

 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
spacekon



Joined: 19 Jul 2009
Posts: 3

Post (Separately) Posted: Mon Jan 18, 2010 14:42    Post subject: Внесение данных в реестр на Win7 х64 Reply with quote

Запускаю из под TC 7.50a на Win7 х64 reg-файл следующего содержания:

Windows Registry Editor Version 5.00

;Чтобы открывались chm-файлы справки по сети
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"MaxAllowedZone"=dword:00000001

;Просто для теста
[HKEY_LOCAL_MACHINE\SOFTWARE\7-Zip]
"Path"="C:\\Program Files\\7-Zip\\"
"123"=dword:00000001


но значения в реестр не вносятся, хотя появляется окно, что данные успешно занесены в реестр! Shocked

Работаю под локальным администратором, TC запускал как от имени админа, так и просто. Самое интересное, что если этот reg-файл запустить через проводник, то все нормально вносится в реестр!

На Win7 х32 тоже все нормально работает.

Что за беда? Question

 !  Avada:
Заголовок темы уточнил, иначе она рискует превратиться в свалку: внесение данных в реестр много к чему относится.
Back to top
View user's profile Send private message
Rodny



Joined: 24 Jan 2007
Posts: 949
Location: Могилёв, Беларусь

Post (Separately) Posted: Mon Jan 18, 2010 15:24    Post subject: Reply with quote

spacekon
Цитаты с другого форума и про другую программу. Но смысл понятен:
BakLAN wrote:
У меня ХР х64 и я уже давно заметил, что при помощи Reg-файлов почему-то не во все ветки реестра можно добавить записи. При помощи консольной утилиты REG добавляется через раз.

GORA2 wrote:
reg файл создается в папке программы и потом запускается, видимо, cmd (мелькает консольное окно), возможно из него запускается regedit, но дело в том, что в х64 существуют два cmd.exe и два regedit.exe. Каждый из них запускается из своей "среды". Если запуск происходит из х64 приложения, то вызывается х64 версия cmd и/или regedit и доступ к этой ветке реестра есть. Проверить, какая версия regedit запущена, можно, посмотрев на процессы в диспетчере, у 32х разрядных будет добавлена метка *32.
Если reg файл, который был приведен на прошлой странице, запустить двойным кликом из ТС (32х разрядное приложение), то информация в реестр не попадает, а если по этому же файлу кликнуть из Проводника (64х разрядное приложение), то информация в реестр попадает.
Back to top
View user's profile Send private message
spacekon



Joined: 19 Jul 2009
Posts: 3

Post (Separately) Posted: Mon Jan 18, 2010 16:34    Post subject: Reply with quote

Rodny wrote:
Цитаты с другого форума и про другую программу. Но смысл понятен:

Так что же, это же каждый раз в TC надо правой кнопкой на reg-файл, выбирать X64 =>Открыть с помощью... : Редактор реестр ???

Жутко неудобно и каждый раз перед запуском reg-файл надо об этом помнить! Sad

И просвета в этом вопросе, как я понимаю не предвидется, поскольку TC x64 не будет... Crying or Very sad
Back to top
View user's profile Send private message
Rodny



Joined: 24 Jan 2007
Posts: 949
Location: Могилёв, Беларусь

Post (Separately) Posted: Mon Jan 18, 2010 17:03    Post subject: Reply with quote

spacekon
Не знаю, есть ли в этом смысл. А что, если настроить внутреннюю ассоциацию для открытия *.reg в regedit.exe x64 ...
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6193
Location: Москва

Post (Separately) Posted: Mon Jan 18, 2010 17:10    Post subject: Reply with quote

spacekon
Раз система 64-битная, помнить об этом придётся в любом случае. Думаю, Тотал — не единственная 32-битная программа на компе.

Упростить себе жизнь можно при помощи внутренних ассоциаций или дополнительных кнопок. Конкретно с regedit надо отдельно разбираться, система его как-то хитро редиректит. Можно скопировать Проводником (ну или Тоталом с временно выключенным редиректом) файл C:\WINDOWS\regedit.exe в, скажем, C:\WINDOWS\regedit64.exe, а после этого в Тотале создать ассоциацию для REG-файлов на этот regedit64.exe. Но надо иметь в виду, что некоторые ветки реестра тоже виртуализованы, и что REG-файл может быть рассчитан только на 32-битные системы. Если такой файл импортировать в реестр без виртуализации, то 32-битные программы не увидят изменений. В общем, с каждым случаем придётся разбираться отдельно. Так повелела Microsoft.


Rodny wrote:
А что, если настроить внутреннюю ассоциацию для открытия *.reg в regedit.exe x64

Не знаю, как в Семёрке, у меня на XP x64 regedit.exe сидит в C:\Windows и является 64-битным, но когда к нему пытается обратиться 32-битная программа, винда подсовывает ему C:\Windows\SysWOW64\regedit.exe (32-битный). Получается, одним лишь каталогом system32 редирект не ограничивается. Поэтому я написал выше про копирование.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Sat Jan 23, 2010 17:05    Post subject: Reply with quote

Вообще, информация-то в реестр попадает, но нужно учитывать, что папка Software для 32-битных программ отделена от общей папки Software и расположена в ее подпапке Wow6432Node, и подставляется вместо оригинальной при обращении. Т.е. из 32-битной программы запускается 32-битный редактор реестра, и изменения вносятся только в разделы, доступные 32-битным программам.

При необходимости запустить именно 64-битный редактор реестра нужно прописывать полный путь к нему (сейчас у меня не 64-битная винда, поэтому точно сказать не могу, но помню точно, что мог запускать прямо из ТК regedit, имеющий доступ к 64-битным записям, указывая полный путь к файлу - нужно попробовать запустить C:\Windows\regedit.exe).

Это точно как и с папкой System32 в 64-битной винде - когда вы обращаетесь к ней из 32-битной программы, система подставляет на самом деле вместо папки System32 папку SysWOW64. Свои мысли на эту тему я писал тут (не сочтите за рекламу ресурса). Чтобы понять, та ли это папка, надо поискать в ней то, чего нет в 32-битной папке (например, в папке System32 это подпапка drivers с драйверами, а в реестре в Software - то, чего нет в ключе Software\Wow6432Node - в 32-битном редакторе реестра можно бесконечно входить в подключ Wow6432Node.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6193
Location: Москва

Post (Separately) Posted: Sat Jan 23, 2010 18:25    Post subject: Reply with quote

MVV wrote:
нужно попробовать запустить C:\Windows\regedit.exe

Не поможет. Этот путь редиректится, как я написал выше, и подсовывается 32-битная версия regedit.exe. Единственным способом является либо временное отключение редиректа в Тотале, либо предварительное копирование файла regedit.exe.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
ask-rus



Joined: 10 Nov 2009
Posts: 2077
Location: Russian Federation

Post (Separately) Posted: Sun Jan 24, 2010 10:18    Post subject: Reply with quote

Мне нужно Total Commander прописать в реестре...
У кого-нибудь случаем не завалялся reg по этому поводу?
Задать реестру местоположение TC для работы с утилитой tc2mp. (%TOTAL COMMANDER%)
_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10417
Location: Россия, Саратов

Post (Separately) Posted: Sun Jan 24, 2010 12:13    Post subject: Reply with quote

ackep
Поиск по форуму рулит. Например, вот. А также (в TCKB) здесь и здесь. А также утилита TCDir (тоже упоминалась на форуме — см. , например, здесь и здесь).
В данной теме этот конкретный вопрос больше не обсуждаем (прошу обратить внимание, что заголовок темы уточнён).
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Wed Jan 27, 2010 19:42    Post subject: Reply with quote

CaptainFlint wrote:
MVV wrote:
нужно попробовать запустить C:\Windows\regedit.exe

Не поможет. Этот путь редиректится, как я написал выше, и подсовывается 32-битная версия regedit.exe. Единственным способом является либо временное отключение редиректа в Тотале, либо предварительное копирование файла regedit.exe.

Дело в том, что когда я с этим экспериментировал, никакой редирект я не отключал, и точно помню, что запускался 64-битный regedit, когда я прописывал полный путь к файлу - но я сейчас не могу сказать точно, к какому именно - нужно пробовать на 64-битной системе (по идее, это должен быть C:\Windows\System32\regedit.exe).
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6193
Location: Москва

Post (Separately) Posted: Wed Jan 27, 2010 20:13    Post subject: Reply with quote

MVV wrote:
Дело в том, что когда я с этим экспериментировал, никакой редирект я не отключал, и точно помню, что запускался 64-битный regedit, когда я прописывал полный путь к файлу - но я сейчас не могу сказать точно, к какому именно - нужно пробовать на 64-битной системе (по идее, это должен быть C:\Windows\System32\regedit.exe).

Я тоже думал, что он должен быть там. Однако его там нет. Сейчас проверил на двух 64-битных системах — XP и Win7, результаты такие:

XP:
64-битная версия файла располагается в C:\Windows\regedit.exe, 32-битная — в C:\WINDOWS\SysWOW64\regedit.exe. Файла C:\WINDOWS\System32\regedit.exe не существует. При любых обращениях к C:\Windows\regedit.exe с неотключённым редиректом Тотал получает 32-битную версию (в том числе, при запуске); с отключённым редиректом — 64-битную.

Win7:
Так же, как в XP, 64-битная версия файла располагается в C:\Windows\regedit.exe, 32-битная — в C:\WINDOWS\SysWOW64\regedit.exe. Файла C:\WINDOWS\System32\regedit.exe не существует. Однако в отличие от XP, здесь обращения к 64-битной версии не редиректятся.

Получается, зря я поверил Microsoft'у, когда прочитал у них, что regedit.exe редиректится независимо от системы…
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Wed Jan 27, 2010 20:59    Post subject: Reply with quote

Ну вот оно примерно так и есть. Я на висте экспериментировал, а XP 64-битную в глаза никогда не видел.

В любом случае, простейший junction на папку System32 полностью избавляет от проблем доступа к 64-битным файлам. Smile

Вот только в реестре подобных инструментов нет... и нужно понимать, что запуская рег-файл из 32-битной среды сработать он может не так, как ожидается.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Aoeu_H



Joined: 12 Sep 2012
Posts: 1

Post (Separately) Posted: Thu Sep 13, 2012 00:31    Post subject: Reply with quote

решил проблему установив внутренние ассоциации: рег файл запускается через "c:\windows\explorer.exe"
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group