Собственно сабж. Произведены изменения в реестре, как применить их без перезагрузки? Подчеркиваю, не из программы, а средствами самой Винды? Как пример (собственно это и надо) изменение набора курсоров. После прописывания в реестре, чтобы появился свой набор, мне требуется перезагрузка, но ведь при выборе из панели управления, перезагрузка не нужна. Что еще нужно сделать, какую программу запустить?
» Применение изменений реестра без перезагрузки
Кильни Explorer.exe, он сам должен потом запуститься. Возможно прокатит
Skipper
А если при этом открыты приложения? И как это сделать из бат-файла, или командной строки?
А если при этом открыты приложения? И как это сделать из бат-файла, или командной строки?
Нужно послать широковещательное сообщение, типа такого:
Код: SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)"Policy", SMTO_NORMAL, 1000, &res);
Код: SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)"Policy", SMTO_NORMAL, 1000, &res);
Kardinalli
Попробуй это: http://data.cod.ru/63805226442
Попробуй это: http://data.cod.ru/63805226442
Sampron
Цитата:
Что - "это"? Что за екзешник?
vjunk
Как это сделать из дельфи или VB я знаю, но мне нужно сделать это средствами Win.
Цитата:
Попробуй это: http://data.cod.ru/63805226442
Что - "это"? Что за екзешник?
vjunk
Как это сделать из дельфи или VB я знаю, но мне нужно сделать это средствами Win.
Kardinalli
Тогда либо командной строкой либо перезапуском эксплорера.
Тогда либо командной строкой либо перезапуском эксплорера.
Sampron
Цитата:
Ну так я и спрашиваю, КАК ЭТО СДЕЛАТЬ командной строкой???
Цитата:
Тогда либо командной строкой либо перезапуском эксплорера.
Ну так я и спрашиваю, КАК ЭТО СДЕЛАТЬ командной строкой???
Kardinalli
Цитата:
А хрен его знает.
Цитата:
Ну так я и спрашиваю, КАК ЭТО СДЕЛАТЬ командной строкой???
А хрен его знает.
Kardinalli
Если изменения в ветке HKEY_CURRENT_USER, то
Код:
rundll32.exe user32.dll,UpdatePerUserSystemParameters
Если изменения в ветке HKEY_CURRENT_USER, то
Код:
rundll32.exe user32.dll,UpdatePerUserSystemParameters
igor_andreev
И в этой ветке тоже. Я эту команду давно "откопал", но эффекта от нее ноль.
Пробовал такой вариант rundll32.exe user32.dll,UpdatePerUserSystemParameters,1,True
но выдает ошибку.
Кстати, отследил монитором, что запускается при смене курсора через панель управления. Именно rundll32, вопрос только в том, с какими параметрами...
И в этой ветке тоже. Я эту команду давно "откопал", но эффекта от нее ноль.
Пробовал такой вариант rundll32.exe user32.dll,UpdatePerUserSystemParameters,1,True
но выдает ошибку.
Кстати, отследил монитором, что запускается при смене курсора через панель управления. Именно rundll32, вопрос только в том, с какими параметрами...
Попробуй это
SystemParametersInfo(SPI_SETCURSORS
поиграй с параметрами
SystemParametersInfo(SPI_SETCURSORS
поиграй с параметрами
Kardinalli
Цитата:
Я как-то отследил недокументированную комстроку одной гнусной программки при помощи консольной cmdline.exe http://www.diamondcs.com.au/consoletools/cmdline.php
Она выводит в stdout список запущенных процессов и их строку запуска.
Сделал папку C:\test. Пуск-Выполнить-cmd. B командной строке ввел:
for /L %a in (1 1 1000) do cmdline>c:\test\%a.txt
Жмакнул Enter и сразу запустил нужную программку. Ну дальше понятно, поиском Far-а нашел среди тысячи файликов в папке c:\test нужные, из тыщщи файлов в четырех было то, что мне надо. Наверно попроще способы есть, но мне такое нечасто нужно, так использовал, что под рукой было
Цитата:
Именно rundll32, вопрос только в том, с какими параметрами...
Я как-то отследил недокументированную комстроку одной гнусной программки при помощи консольной cmdline.exe http://www.diamondcs.com.au/consoletools/cmdline.php
Она выводит в stdout список запущенных процессов и их строку запуска.
Сделал папку C:\test. Пуск-Выполнить-cmd. B командной строке ввел:
for /L %a in (1 1 1000) do cmdline>c:\test\%a.txt
Жмакнул Enter и сразу запустил нужную программку. Ну дальше понятно, поиском Far-а нашел среди тысячи файликов в папке c:\test нужные, из тыщщи файлов в четырех было то, что мне надо. Наверно попроще способы есть, но мне такое нечасто нужно, так использовал, что под рукой было
igor_andreev
Спасибо дружище! Если даже не поможет сейчас, то пригодится в будущем.
А пока попробую.
Маленькое уточнение - cmdline сбросить в system32 ?
Спасибо дружище! Если даже не поможет сейчас, то пригодится в будущем.
А пока попробую.
Маленькое уточнение - cmdline сбросить в system32 ?
Kardinalli
Ну да, в любую папку, которая прописана в переменной PATH, system32 вполне подходит.
Это, чтобы не писать в командной строке всегда полный путь к утилите, ... do d:\folder\subfolder\cmdline...
P.S. А это рубоард заменил в моем предыдущем посту слово "нашел" на ссылку http://dash.ru/_find/ ? Это так теперь реклама вставляется автоматом? Я понятия не имею, кто такие dash.ru и ссылку на них не давал
Ну да, в любую папку, которая прописана в переменной PATH, system32 вполне подходит.
Это, чтобы не писать в командной строке всегда полный путь к утилите, ... do d:\folder\subfolder\cmdline...
P.S. А это рубоард заменил в моем предыдущем посту слово "нашел" на ссылку http://dash.ru/_find/ ? Это так теперь реклама вставляется автоматом? Я понятия не имею, кто такие dash.ru и ссылку на них не давал
Ты не виноват. Это "продажная" реклама
Цитата:
Цитата:
Реклама цепляется к словам (10 шт.):
Есть вероятность, что список не полный:
скачал скачать скачай нашел купить купил статья обзор samsung телефона
Kardinalli
Цитата:
А как из программы применить изменения в реестре Вы уже разобрались? Поделитесь опытом, если программый вариант у Вас рабочий.
Цитата:
Подчеркиваю, не из программы, а средствами самой Винды
А как из программы применить изменения в реестре Вы уже разобрались? Поделитесь опытом, если программый вариант у Вас рабочий.
Ivax
У меня нет программы, из которой это нужно было бы сделать, но там это можно сделать без особых проблем через API.
А как сделать средствами исключительно Windows, я разобрался. Не слишком корректно, возможно, но для конкретной задачи отлично работает.
У меня нет программы, из которой это нужно было бы сделать, но там это можно сделать без особых проблем через API.
А как сделать средствами исключительно Windows, я разобрался. Не слишком корректно, возможно, но для конкретной задачи отлично работает.
Kardinalli
Цитата:
Цитата:
Цитата:
... я разобрался.Так поделись с народом, пусть и не очень корректно, главное работает.
Цитата:
... без особых проблем через API.Вот без особых проблем не получается. Вполне приличный кусок кода (нашел в Королевстве Дельфи) и работает через раз. По этому и спросил, думал Вы такое уже делали.
Kardinalli
Цитата:
не поделитесь?
Добавлено:
igor_andreev
Цитата:
for /L %a in (1 1 20000) do cmdline|find /i /v "bthprops.cpl"|find /i /v "3172"|find /i "rundll32">>c:\temp\1\1.txt
вот что-то попроще. В каждом конкретном случае можно параметры в файнд менять
Добавлено:
не в тему конечно, но раз уж пошел разговор...
как направить вывод от
Цитата:
в два фильтра и в 2 файла соответственно одновременно. Скажем, если мне надо найти строку "123" и строку "345"?
Цитата:
А как сделать средствами исключительно Windows, я разобрался
не поделитесь?
Добавлено:
igor_andreev
Цитата:
Наверно попроще способы есть
for /L %a in (1 1 20000) do cmdline|find /i /v "bthprops.cpl"|find /i /v "3172"|find /i "rundll32">>c:\temp\1\1.txt
вот что-то попроще. В каждом конкретном случае можно параметры в файнд менять
Добавлено:
не в тему конечно, но раз уж пошел разговор...
как направить вывод от
Цитата:
for /L %a in (1 1 20000) do cmdline|find /i /v "bthprops.cpl"|find /i /v "3172"
в два фильтра и в 2 файла соответственно одновременно. Скажем, если мне надо найти строку "123" и строку "345"?
Прога PicaView 2 при запуске (когда делаешь ПКМ) постоянно регистрирует 2 отдельно специально устанавливавшихся когда-то модуля (Plug-in) от ACDSee (C:\Program Files\Common Files\ACD Systems\PlugIns2)
А вот после перезагрузки компа - опять та же песня, снова ненадолго правда вылезающие окошки регистрации.
Как победить?
А вот после перезагрузки компа - опять та же песня, снова ненадолго правда вылезающие окошки регистрации.
Как победить?
Что ж никто не может ответить? Неужели так сложно... ну кроме, как для меня?
Люди... второй год жду...
Кста, у меня та же шняга! Достало уже
Тема актуальна, так и не понял, есть ли ответ. Нужно ассоциировать открытие файлов с конкретной программой. Но ассоциации вступают в силу только после перезагрузки. А как обойтись без перегруза?
Цитата:
Нужно ассоциировать открытие файлов с конкретной программой. Но ассоциации вступают в силу только после перезагрузкиНеправда. Нажмите на интересующий файл правой кнопкой мыши --> Открыть с помощью --> Выбор программы, выберите нужную программу, отметьте флажок "Использовать ее для всех файлов такого типа" и нажмите OK. Изменения будут применены немедленно.
Sergey_Demchuk
Цитата:
для смены файловых ассоциаций и файловых типов перезагрузка не требуется
для примера - код батника (который можно впоследствие кастомизировать под любое ПО )
код создает файл mypic.myNewJpgExt в папке батника и открывает его в программе просмотра изображений и факсов (расширение *.myNewJpgExt любых файлов теперь ассоциировано с этой программой по умолчанию и без перезагрузки)
p.s.
также легко можно удалить все необходимые файловые ассоциации и также без перезагрузки
вопросы - Задачи на bat-файлах
Код: rem @echo off
if "_%OS%" neq "_Windows_NT" goto:eof
setlocal
set "ext=myNewJpgExt"
1>>"%~dp0%ext%.bck" 2>&1 assoc .%ext%
1>>"%~dp0%ext%.bck" 2>&1 ftype %ext%
assoc .%ext%=%ext%file
ftype %ext%file=rundll32.exe %SystemRoot%\System32\shimgvw.dll,ImageView_Fullscreen %%1
%~d0
cd\
for %%a in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do for /f "tokens=*" %%i in ('dir /b/a-d/s "%%~a:\*.jpg"') do set "mypic=%%~i" &&goto:eoc
:eoc
copy /-y "%mypic%" "%~dp0mypic.%ext%"
start "" "%~dp0mypic.%ext%"
pause
Цитата:
Тема актуальна, так и не понял, есть ли ответ. Нужно ассоциировать открытие файлов с конкретной программой. Но ассоциации вступают в силу только после перезагрузки. А как обойтись без перегруза?
для смены файловых ассоциаций и файловых типов перезагрузка не требуется
для примера - код батника (который можно впоследствие кастомизировать под любое ПО )
код создает файл mypic.myNewJpgExt в папке батника и открывает его в программе просмотра изображений и факсов (расширение *.myNewJpgExt любых файлов теперь ассоциировано с этой программой по умолчанию и без перезагрузки)
p.s.
также легко можно удалить все необходимые файловые ассоциации и также без перезагрузки
вопросы - Задачи на bat-файлах
Код: rem @echo off
if "_%OS%" neq "_Windows_NT" goto:eof
setlocal
set "ext=myNewJpgExt"
1>>"%~dp0%ext%.bck" 2>&1 assoc .%ext%
1>>"%~dp0%ext%.bck" 2>&1 ftype %ext%
assoc .%ext%=%ext%file
ftype %ext%file=rundll32.exe %SystemRoot%\System32\shimgvw.dll,ImageView_Fullscreen %%1
%~d0
cd\
for %%a in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do for /f "tokens=*" %%i in ('dir /b/a-d/s "%%~a:\*.jpg"') do set "mypic=%%~i" &&goto:eoc
:eoc
copy /-y "%mypic%" "%~dp0mypic.%ext%"
start "" "%~dp0mypic.%ext%"
pause
Страницы: 1
Предыдущая тема: Печать на несколько принтеров
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.