Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 25.02.2009
Сообщений: 10

Можно ли программно изменить настройки папки

26.01.2010, 11:22. Показов 3122. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем.

Ответьте кто может:
Есть ли такие функции в ВБ или в АПИ, с помощью которых можно менять настройки папки?
Допустим устанавливать свойства такие как отображение скрытых файлов, скрытие защищённых системных файлов и прочие.

Спс за ранее тому кто ответит.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.01.2010, 11:22
Ответы с готовыми решениями:

Можно ли программно изменить путь к базе для созданного файла Crystal Report?
Можно ли программно изменить путь к базе для созданного файла Crystal Report.

Как можно программно изменить настройки Яндекс.Маркета
Всем привет. Подскажите, плиз, как можно программно изменить настройки Яндекс.Маркета на странице http://market.yandex.ru/settings.xml ...

Изменить программно настройки грамматики в Word
Добрый вечер уважаемые форумяне! записала макрорекодером следующую команду Sub SetsOff() ...

15
 Аватар для BasicMan
19318 / 2625 / 84
Регистрация: 17.02.2009
Сообщений: 30,364
26.01.2010, 12:09
Visual Basic
1
2
3
4
' Set hidden attribute.
SetAttr("TESTFILE", vbHidden)   
' Set hidden and read-only attributes.
SetAttr("TESTFILE", vbHidden Or vbReadOnly)

http://msdn.microsoft.com/en-u... 80%29.aspx
0
0 / 0 / 0
Регистрация: 25.02.2009
Сообщений: 10
26.01.2010, 12:25  [ТС]
CyberБурундукЪ,

это не то... мне нужно изменить свойства просмотра папки, а не изменить атрибут файла. то есть чтобы просматривать скрытые файлы в папке в сервисе->Вид нужно поставить соответствующий флажок "Отображать скрытые файлы и папки" влиять на это свойство то мне и нужно
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
26.01.2010, 23:37
SetAttr "D:\ak", vbHidden Or vbReadOnly
это должно ставить соотв. галочки в свойствах папки
а вот относительно всего вложенного---?
если нет --- то наверное надо организовывать перебор
0
 Аватар для Abu
1161 / 288 / 23
Регистрация: 28.09.2008
Сообщений: 553
26.01.2010, 23:58
gaw, да не, там вопрос не про смену атрибутов конкретной папки, там про вид папки (всех папок), типа установить/снять отображение скрытых файлов и папок.

Арутр, мне кажется, что это правится в реестре. Реестр (если пишешь на vb) можно править только с помощью API (SetSetting, GetSetting и прочие встроенные функции пишут/читают только из HKEY_CURRENT_USER\SOFTWARE\VB and VBA Program Settings).

Вопрос в том, где конкретно его нужно менять. Т.е. какая ветка какого ключа отвечает за скрытие/отображение скрытых файлов. Найдёте - скажу спасибо, и возможно набросаю код.
0
0 / 0 / 0
Регистрация: 25.02.2009
Сообщений: 10
27.01.2010, 14:04  [ТС]
вообще с реестром работать пробовал уже:
если разместить 1-ну кнопку, то при нажатии по ней прога добавится в автозапуск(код смотри ниже)
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
Private Const HKEY_LOCAL_MACHINE = -2147483646
Private Const REG_SZ = 1
 
Private Sub Command1_Click()
    Dim rc As Long
    Dim rs As String
 
    rs = """Путь_к_программе"""
    Call RegOpenKey(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Run", rc)
    Call RegSetValueEx(rc, "MyProgram", 0, REG_SZ, rs, Len(rs) + 1)
    Call RegCloseKey(rc)
End Sub
попробуй плз использовать это чтобы помочь мне. оч надо..

Добавлено через 31 минуту
Вот полазил в инете нашёл полезную ссылку:
http://vbbook.ru/book/75/ - работа с реестром
0
 Аватар для Abu
1161 / 288 / 23
Регистрация: 28.09.2008
Сообщений: 553
27.01.2010, 18:29
Цитата Сообщение от Арутр Посмотреть сообщение
попробуй плз использовать это чтобы помочь мне. оч надо..
Цитата Сообщение от Abu Посмотреть сообщение
Вопрос в том, где конкретно его нужно менять. Т.е. какая ветка какого ключа отвечает за скрытие/отображение скрытых файлов. Найдёте - скажу спасибо, и возможно набросаю код.
Повторюсь! Я не знаю, какой параметр и в какой ветке отвечает за отображение/скрытие файлов! Вчера пол часа искала - не нашла (везде тока про какой-то вирус), мне не настолько это интересно чтоб сидеть и выяснять это. Если так сильно надо - качай утилиту, которая отслеживает изменения в реестре, изменяй вид папки вручную туда и обратно, и смотри значение какого параметра как меняется. Дальше этот параметр подставляется в код. Всё!
1
 Аватар для FilipFray
2526 / 655 / 45
Регистрация: 13.01.2009
Сообщений: 2,159
27.01.2010, 20:27
Лучший ответ Сообщение было отмечено как решение

Решение

Code
1
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
dword-параметр Hidden
1 - показывать
2 - нет
3
0 / 0 / 0
Регистрация: 25.02.2009
Сообщений: 10
28.01.2010, 05:44  [ТС]
FilipFray
Спс большое! Очень помог!
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4357 / 3427 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
20.09.2014, 18:23
FilipFray, а как в vb6 записать и прочитать значение типа dword??? Ведь это не простой REG_SZ, в каком формате мне надо сохранить единицу нолик или двойку что небыло ошибки?

Пришли мне пример. Очень давно ищу и не разбирусь никак. Пожалуста.
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
20.09.2014, 20:19
Yury Komar, вместо DWORD можешь использовать Long.
1
Модератор
Эксперт .NET
 Аватар для Yury Komar
4357 / 3427 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
21.09.2014, 11:09
The trick, тоесть сохранять как reg-sz но тип значения не singlе, лонг? И в реестре будет не reg-sz а dword?
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
21.09.2014, 12:14
Цитата Сообщение от Yury Komar Посмотреть сообщение
The trick, тоесть сохранять как reg-sz но тип значения не singlе, лонг? И в реестре будет не reg-sz а dword?
Нет, нужно тип (4-параметр функции RegSetValueEx) поменять на REG_DWORD, в 5-м параметре нужно тип сменить на Long без ByVal'а (а лучше на Any)
Visual Basic
1
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
и передать в нем нужное число, в параметре cbData нужно передать 4 (Len(Value)).
1
Модератор
Эксперт .NET
 Аватар для Yury Komar
4357 / 3427 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
21.09.2014, 13:12
The trick, а читать его (getvalue) таким же макаром?
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
21.09.2014, 13:22
Цитата Сообщение от Yury Komar Посмотреть сообщение
The trick, а читать его (getvalue) таким же макаром?
Нет. Сначала нужно получить тип ключа через RegQueryValueEx, далее выделить буфер для данных (если требуется), потом вызывать RegQueryValueEx для получения самих данных. К примеру
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Public Function GetKey(sKeyName As String, lPredefinedkey As Sections, Name As String, Out As Variant) As Boolean
    Dim hKey As Long, keyType As Long, Size As Long, outl As Long, outs As String, lRetVal As Long
    
    If RegOpenKeyEx(lPredefinedkey, sKeyName, 0, KEY_ALL_ACCESS, hKey) <> ERROR_NONE Then Exit Function
    If RegQueryValueEx(hKey, Name, 0, keyType, ByVal 0, Size) <> ERROR_NONE Then
        RegCloseKey (hKey)
        Exit Function
    End If
    Select Case keyType
    Case REG_DWORD
        lRetVal = RegQueryValueEx(hKey, Name, 0, REG_DWORD, outl, 4)
        Out = outl
    Case REG_SZ
        If Size > 0 Then
            Out = Space(Size)
            lRetVal = RegQueryValueEx(hKey, Name, 0, REG_SZ, ByVal outs, Size)
            outs = Left$(outs, Size - 1)
            Out = outs
        End If
    End Select
    RegCloseKey (hKey)
    If lRetVal <> ERROR_NONE Then Exit Function
    GetKey = True
End Function
2
Модератор
Эксперт .NET
 Аватар для Yury Komar
4357 / 3427 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
21.09.2014, 13:53
The trick, о как. Не всё так просто как кажется.
Спасибо тебе большое за помощь. Правда осень выручил.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.09.2014, 13:53
Помогаю со студенческими работами здесь

Как программно изменить настройки app.conf
Подскажите плз как программно изменить настройки app.conf. Если более конкретно, то хочу на клиентской стороне изменить значение двух...

Как можно изменить региональные настройки из делфи
Добрый день всем! Помогите с проблемой! Приложение работает на Винде с региональными настройками англ., а потому все русские буквы в...

можно ли программно изменить громкость звука
Недавно заинтересовал вопрос, можно ли программно изменить громкость звука? Если да, не могли бы Вы показать пример?

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

Как можно изменить язык Activity программно?
Создал я 2 ресурса String, все работает если только в настройках самого телефона изменить язык. Но хочется и пользователю дать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru