PDA

Просмотр полной версии : С помощью .bat файла возможно работать с реестром винды?


KiL33
24.09.2008, 12:30
Некто говорит, что можно с помощью .bat файла в реестр, в автозапуск, добавить свою запись. Но дойдя разговор до того, как это можно сделать, тишина!

Может быть, светлые умы форума flasher растолкуют, что к чему и может ли .bat вообще добавить запись, разумеется, вызываясь из flash’а.

iNils
24.09.2008, 12:56
Зайдите в реестр, экспортируйте любую ветку в файл (*.reg) и посмотрите содержимое. Учтите, что файл может быть двух форматов: 4-ой версии или 5-ой (Unicode), по умолчанию.
Соответственно вам нужно написать файл в таком формате и вызвать его из батника.

KiL33
24.09.2008, 17:34
Добавить запись, хоть и коряво, но получилось, а как удалить теперь её))
Можно конечно тупо путь удалить типа этого:
"MyProject"="---"

А как быть, если программка установлена в одно место, а в реге уже изначально прописан другой путь, косяяяк. Можно конечно попытать путем инсталлятора переписывать рег файл с учет того в какое место устанавливается прога, но с этим еще предстоит попариться.

И еще бесит появляющееся сообщение с разрешением добавить запись в реестр

iNils
24.09.2008, 17:41
А зачем вам вообще запись в реестр? Флеш все равно с ним не работает.

KiL33
25.09.2008, 09:55
Флеш не работает, ну так к этому делу можно Зинк подключить. Чувствую, придется на СИ писать простенькую программку, которая и будет выполнять эту задачу, раз уж столько нюансов преподносит батник.

Запись в реестр необходима для автозапуска программы. В свою очередь Автозапуск этой программки не обходим также как и запись в реестр сего)).
Надеюсь всё понятно))

iNils
25.09.2008, 11:39
И зинк и без батника умеет работать с реестром.

KiL33
25.09.2008, 14:28
Блииин мне надоела эта дезинформация. Меня уверили, что зинк только может запускать другие проги. А как зинком можно добавить запись.
Подскажите, это было бы просто замечательно!

KiL33
26.09.2008, 11:14
Решил свою задачу, написав все ж таки на СИ примочку для автозапуска. Приводить пример кода не буду, так как специфика кода иная, но если кому-то, так же, как и мне нечего делать и кто-то хочет решить такую же проблему, тогда выложу).

И все ж таки про автозапуск с помощью зинка было бы интересно прочитать.
И вообще про зинк хотелось бы узнать побольше, может у кого-нибудь есть литература по работе с зинком, какие-нибудь примерчики???

iNils
26.09.2008, 11:30
http://www.multidmedia.com/support/livedocs/
System.(Object).Registry

alexcon314
26.09.2008, 14:16
Ну, а еще есть штатная виндовая консольная утилита REG.
Для работы с реестром из батника самое то. Чего огорд городить-то?
Запускаете cmd и пишете
reg /?

KiL33
26.09.2008, 17:16
По поводу зинка:

Как я уже говорил, деревянный вариант без возможности поменять путь до программы это не есть хорошо.
Дальше лучше, какой-то демонический косяк в значении не записываются первые буквы)
Нельзя указать параметр.

По поводу .bat
Делаю таким образом:

REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Run /V "MyProject" /D "MyProject.exe" /f

И тишина, запись не добавляется.
Мой вариант остается значительно надежней и лучше. СИ есть СИ, все остальное просто недоразумение.


Для работы с реестром из батника самое то. Чего огорд городить-то?



Абсолютно согласен!

Поэтому и пытался найти более простой выход, но с батником что-то ну, ни как не выходит наладить хорошие отношения!)

iNils
26.09.2008, 17:45
По поводу зинка:

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

По поводу .bat
Делаю таким образом:

REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Run /V "MyProject" /D "MyProject.exe" /f

И тишина, запись не добавляется.
У меня добавилось.

alexcon314
26.09.2008, 17:52
REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Run /V "MyProject" /D "MyProject.exe" /f
У меня работает на ура. Mожет у вас антивирус какой лочит попытку доступа к реестру, типа касперского?

KiL33
26.09.2008, 19:36
У меня добавилось.

У меня работает на ура.

Вы издеваетесь))

Касперского отключил.
Та же х…

Не понял
Что не понятного, приходится опять прописывать полный путь к файлу:

mdm.System.Registry.createKey(3, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", "С:\Program Files\ MyProject \ MyProject.exe");

как я понимаю иначе никак или я чего-то не понимаю))

Мыкыта
26.09.2008, 19:48
поробуй отключить самозащиту касперыча + перименнуй установочную папку, к примеру _ добавь и пропробуй еще раз

KiL33
26.09.2008, 19:53
Ууупс, извиняюсь, действительно запись добавляется!
Я умудрился не в том разделе ждать свою запись!)
Жму как обезьяна на F5, а ничего не появляется) терь все ОК

Теперь и не знаю или вам спасибо сказать, или себе по голове постучать)

iNils
26.09.2008, 20:04
Что не понятного, приходится опять прописывать полный путь к файлу:

mdm.System.Registry.createKey(3, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", "С:\Program Files\ MyProject \ MyProject.exe");

как я понимаю иначе никак или я чего-то не понимаю))
Надо так писать
mdm.System.Registry.createKey(3, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", mdm.Application.path + "MyProject.exe");