Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 3)

Модерирует : gyra, Maz

gyra (23-01-2020 10:51): AutoIT (Часть 4)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

 
Описание:

Цитата:
AutoIt v3 - это язык для написания сценариев, напоминающий BASIC. Основным его назначением является автоматизация работ с Windows GUI (графическим интерфейсом пользователя MS Windows). Для выполнения этой сложной задачи предоставляется комбинация испытанных методов, включающих в себя эмуляцию нажатий комбинаций клавиш клавиатуры, перемещения указателя мыши, управление окнами и их визуальными элементами. Как показывает практика, эти "приводные ремни" весьма эффективны для получения работающих решений в ситуациях, когда другие стандартные средства (например, VBScript и SendKeys) оказываются бессильны.
Умеет он очень и очень многое! Бесплатный.

 
  • Справки
  • Инструменты
  • Ресурсы, посвящённые AutoIt
  • Полезные советы новичкам и не только
  • Готовые решения
  • Скрипт раскраски кода AutoIt для публикации в форумах
     


     
    За шапкой следит ViSiToR / AZJIO  

  • Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 13:07 01-06-2010 | Исправлено: Maz, 12:29 10-01-2020
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Обновил RegExp
    Добавил ком-строку, для заполнения полей при запуске
    Добавлена вставка и захват регвыр из окна поиска и замены 3-х редакторов
    Поверх всех окон. Добавил справку.

    Всего записей: 4559 | Зарегистр. 03-05-2006 | Отправлено: 02:32 15-08-2018
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    От нечего делать набросал свою таблицу символов (не вся основная плоскость, а только первые чуть за 3и десятка блоков), только смена шрифта, наверное, костыльная: удаляю ListView и создаю заново.
    В связи с чем вопрос: никому не попадался пример создания GUI с таблицей, как Excel, Calc и т.п., чтобы можно было так же выделять ячейку, а не всю строку, и получать её содержимое? Что-то не вышло...

    Всего записей: 6596 | Зарегистр. 28-01-2008 | Отправлено: 13:58 15-08-2018
    BOBAT



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, пожалуйста, как вызвать/запустить функцию SHChangeNotify function для папки через скрипт Autoit.

    Всего записей: 1532 | Зарегистр. 07-08-2005 | Отправлено: 18:32 15-08-2018
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BOBAT
    Стоило бы уточнить цель или просто добавить, что вы пришли отсюда Если правильно понял задачу, то, наверное, как-то так:

    Код:
    #NoTrayIcon
     
    #Include <WinAPIEx.au3>
    #Include <APIConstants.au3>
     
    ;Проверяем, что скрипт запущен с одним параметром и что этот параметр - каталог,
    ; потом сообщаем системе, что этот каталог был изменён
    If $CmdLine[0] = 1 Then
        If StringInStr(FileGetAttrib($CmdLine[1]), 'D') Then _WinAPI_ShellChangeNotify($SHCNE_UPDATEDIR, $SHCNF_PATH, $CmdLine[1])
    EndIf

    Вроде бы были способы вызова функций из библиотек и на языке VBScript, возможно, проще переписать целиком на AutoIt...

    Всего записей: 6596 | Зарегистр. 28-01-2008 | Отправлено: 19:10 15-08-2018
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BOBAT
    Вспомнил, тут давеча на русском форуме ТС упоминалась интересная консольная утилита winapiexec, позволяющая вызывать функции из библиотек: можно ограничиться минимальными изменениями вашего VBS-скрипта, всего пару строк в конце основной работы (winapiexec.exe рядом со скриптом)

    Код:
    Set WshShell = CreateObject("WScript.Shell")
    WshShell.Run """" & objFSO.GetParentFolderName(Wscript.ScriptFullName) & "\winapiexec.exe"" shell32.dll@SHChangeNotify 0x00001000 0x00000001 """ & WScript.Arguments.Item(0) & """ 0", 0, True

    Если я не ошибся с параметрами вызова SHChangeNotify.

    Всего записей: 6596 | Зарегистр. 28-01-2008 | Отправлено: 23:18 15-08-2018 | Исправлено: Skif_off, 23:19 15-08-2018
    BOBAT



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Вспомнил, тут давеча на русском форуме ТС упоминалась интересная консольная утилита winapiexec, позволяющая вызывать функции из библиотек: можно ограничиться минимальными изменениями вашего VBS-скрипта, всего пару строк в конце основной работы (winapiexec.exe рядом со скриптом)
     
    Код:
    Set WshShell = CreateObject("WScript.Shell")
    WshShell.Run """" & objFSO.GetParentFolderName(Wscript.ScriptFullName) & "\winapiexec.exe"" shell32.dll@SHChangeNotify 0x00001000 0x00000001 """ & WScript.Arguments.Item(0) & """ 0", 0, True
     
    Если я не ошибся с параметрами вызова SHChangeNotify.

    Попробовал с winapiexec

    у меня 64-bit может в коде прописать "winapiexec64.exe"? Поменял, ошибка та же...
     
     
    Добавлено:

    Цитата:
    Код:
    #NoTrayIcon
     
    #Include <WinAPIEx.au3>
    #Include <APIConstants.au3>
     
    ;Проверяем, что скрипт запущен с одним параметром и что этот параметр - каталог,
    ; потом сообщаем системе, что этот каталог был изменён
    If $CmdLine[0] = 1 Then
        If StringInStr(FileGetAttrib($CmdLine[1]), 'D') Then _WinAPI_ShellChangeNotify($SHCNE_UPDATEDIR, $SHCNF_PATH, $CmdLine[1])
    EndIf
     

    после компиляции просто запускаю из папки- ничего не происходит, скомпилировал в x64 - запустил от администратора - значок сменился моментально, прописал в скрипт запуск с правами, скомпилировал - запускаю в изменённой папке - ничего не происходит, но через какое-то время иконка меняется (у меня и раньше так было, и без запуска WinAPI_ShellChangeNotify, иногда иконка меняется, иногда через время, иногда не меняется никогда), как сделать, чтобы была какая-то стабильность при запуске - либо меняется всегда!! - другого варианта нет
     
    Причём в свойствах папки видно, что значок изменился, иногда при удалении  файла из папки значок меняется сразу, иногда нет, закономерности в применении значка к папке в Windows я никак не могу определить
    Закономерность в изменении значка есть только одна - если вручную переименовать desktop.ini а потом отменить переименование - то значок меняется моментально, при переименовании папки значок тоже может сменится моментально
     
    Добавлено:
    Может я просто неправильно добавляю код в vbs так, пожалуйста, подскажите, как правильно добавить код с winapiexec64.exe в vbs чтобы не было ошибок, и как правильно запустить из vbs скомпилированный скрипт au3 (у меня он называется ShellChangeNotify.exe)
    код vbs  

    Цитата:
     
     
    Option Explicit
     
    Const ReadOnly = 1
    Const Hidden   = 2
    Const System   = 4
     
     
    Dim strSourceFolder
     
    Dim objFSO
    Dim objFile
     
    Dim strDesktopIniFile
     
     
    If WScript.Arguments.Count = 1 Then
        strSourceFolder = WScript.Arguments.Item(0)
        
        Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
        
        If objFSO.FolderExists(strSourceFolder) Then
            strDesktopIniFile = objFSO.BuildPath(strSourceFolder, "desktop.ini")
            
            For Each objFile In objFSO.GetFolder(strSourceFolder).Files
                If StrComp(objFSO.GetExtensionName(objFile.Name), "ico", vbTextCompare) = 0 Then
                        If Not StrComp(objFile.Name, objFSO.GetBaseName(strSourceFolder) & ".ico", vbTextCompare) = 0 Then
            objFile.Name = objFSO.GetBaseName(strSourceFolder) & ".ico"
                    End If
                    objFile.Attributes = objFile.Attributes Or Hidden
                    
                    If objFSO.FileExists(strDesktopIniFile) Then
                        With objFSO.GetFile(strDesktopIniFile)
                            .Attributes = .Attributes And Not (System Or Hidden)
                        End With
                    End If
                    
                    With objFSO.CreateTextFile(strDesktopIniFile, True)
                        .WriteLine "[.ShellClassInfo]"
                        .WriteLine "IconResource=" & objFile.Name & ",0"
                        
                        If Left(objFSO.GetFileVersion("C:\Windows\System32\ntdll.dll"), 2) <> "6." Then
                            .WriteLine "IconFile=" & objFile.Name
                            .WriteLine "IconIndex=0"
                        End If
                        
                        .Close
                    End With
                    
                    With objFSO.GetFile(strDesktopIniFile)
                        .Attributes = .Attributes Or (System Or Hidden)
                    End With
                    
                    With objFSO.GetFolder(strSourceFolder)
                        .Attributes = .Attributes Or ReadOnly
                    End With
                    
                    Exit For
                End If
            Next
        Else
            WScript.Echo "Can't find source folder [" & strSourceFolder & "]."
            WScript.Quit 2
        End If
        
        Set objFSO = Nothing
    Else
        WScript.Echo "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ <Source folder>"
        WScript.Quit 1
    End If
     
    WScript.Quit 0
     

    Всего записей: 1532 | Зарегистр. 07-08-2005 | Отправлено: 06:38 16-08-2018 | Исправлено: BOBAT, 07:14 16-08-2018
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BOBAT
    Вот так, полагаю.
     
    Возможно, ошибаюсь с использованием SHCNE_UPDATEDIR: нужно указывать не каталог, в котором меняется значок, а родительский каталог, т.е. тот, в котором вы находитесь и запускаете скрипт:
    VBS:

    Код:
    WshShell.Run """" & objFSO.GetParentFolderName(Wscript.ScriptFullName) & "\winapiexec64.exe"" shell32.dll@SHChangeNotify 0x00001000 0x00000001 """ & objFSO.GetParentFolderName(WScript.Arguments.Item(0)) & """ 0", 0, True

    AutoIt:

    Код:
    _WinAPI_ShellChangeNotify($SHCNE_UPDATEDIR, $SHCNF_PATH, StringRegExpReplace($CmdLine[1], '\\[^\\]+$', '', 1))

    Попробуйте без админских прав. Запуск ShellChangeNotify.exe вместо winapiexec64.exe в таком случае:

    Код:
    WshShell.Run """" & objFSO.GetParentFolderName(Wscript.ScriptFullName) & "\ShellChangeNotify.exe"" """ & WScript.Arguments.Item(0) & """ 0", 0, True

     
    Если не получится, можно попробовать событие SHCNE_RENAMEITEM, как будто некий desktop2.ini был переименован в desktop.ini, свернул.

    Всего записей: 6596 | Зарегистр. 28-01-2008 | Отправлено: 12:14 16-08-2018 | Исправлено: Skif_off, 16:21 16-08-2018
    BOBAT



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    BOBAT
    Вот так, полагаю.  

    Большое спасибо за быстрый ответ. Сначала попробовал winapiexec64.exe. Наконец-то отработало без ошибок!! Но - значок опять не меняется сразу, но проходит секунд 30 - меняется, не знаю, с чем это связано, тоже самое было и раньше (без winapiexec64.exe") просто иногда значок появлялся, в большинстве случаев - нет. Сейчас проверил на 2 папках - значок поменялся через 55 секунд. Видимо моментальной смены не получится.  
    Потом вместо winapiexec64.exe вставил в код ShellChangeNotify.exe (тот, который был, с админскими правами), значок опять не поменялся сразу, но пока я тут писал - поменялся!
     
     
    Добавлено:
    Что посоветуете использовать winapiexec64.exe или ShellChangeNotify.exe?
     
    Добавлено:
    И ещё нужна помощь: как с найти с помощью Autoit параметр реестра, в случае наличия параметра tooltip на 3 секунды "Да (или параметр есть)", в случае отсутствия параметра tooltip на 5 секунд "Нет (или параметра нет)" чтобы я мог вставить этот код в действующий скрипт в конце

    Всего записей: 1532 | Зарегистр. 07-08-2005 | Отправлено: 15:45 16-08-2018
    Sinclair83

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Видимо моментальной смены не получится.

    принудительно перезагрузить explorer ?  

    Всего записей: 758 | Зарегистр. 07-01-2009 | Отправлено: 16:01 16-08-2018
    BOBAT



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Если не получится, можно попробовать событие SHCNE_RENAMEITEM, как будто некий desktop2.ini был переименован в desktop.ini, свернул.

    вставил этот код (с как бы переименованием) у Вас в коде 2 раза Desktop2.ini - это правильно? Во всяком случае опять меняется не сразу, но вроде быстрее, чем без "переименования"
     
    Добавлено:

    Цитата:
    принудительно перезагрузить explorer ?  

    Это я делал на всех этапах - не помогает, да и каждый раз перезагружать не очень то хочется. Есть программы для смены иконок, так в них происходит моментальна смена иконки без всякой перезагрузки проводника

    Всего записей: 1532 | Зарегистр. 07-08-2005 | Отправлено: 16:03 16-08-2018 | Исправлено: BOBAT, 16:05 16-08-2018
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BOBAT
    Так понимаю, вы пробовали первый вариант? Запрашивать подъём прав как-то некрасиво. А второй, где используется текуший каталог? Ведь по идее ожидая смены значка вы смотрите именно в него и ожидаете, когда файловый менеджер его перечитает, нужен только повод, а уведомление шлётся с подкаталогом - отсюда задержка, видимо.

    Цитата:
    Что посоветуете использовать winapiexec64.exe или ShellChangeNotify.exe?

    Если не будете переписывать всё на AutoIt, то, наверное, проще первое: больше возможностей вместо 3х строчек.

    Цитата:
    как с найти с помощью Autoit параметр реестра

    Ветка реестра и ключ известны? Функции для работы с реестром описаны тут, ToolTip() тут.
     
    Добавлено:
    Долго писал

    Цитата:
    ) у Вас в коде 2 раза Desktop2.ini - это правильно?

    Неправильно, исправил.

    Цитата:
    Есть программы для смены иконок, так в них происходит моментальна смена иконки без всякой перезагрузки проводника

    Они вам не подходят? Есть ли среди них программы с исходниками или, может быть, скрипты? Можно было бы подсмотреть, как обновляют...

    Всего записей: 6596 | Зарегистр. 28-01-2008 | Отправлено: 16:18 16-08-2018 | Исправлено: Skif_off, 16:19 16-08-2018
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BOBAT
    Попробуйте этот код
     

    Код:
     
    _UpdateExplorer()
     
    Func _UpdateExplorer()
        Local $WinExpListArr, $GetWinState, $hWnd
        $WinExpListArr = _ExplWinGetList()
        If IsArray($WinExpListArr) Then
            For $iWin = 1 To $WinExpListArr[0]
                $GetWinState = WinGetState($WinExpListArr[$iWin])
                $hWnd = WinGetHandle($WinExpListArr[$iWin])
                DllCall("user32.dll", "long", "SendMessage", "hwnd", $hWnd, "int", 0x111, "int", 28931, "int", 0)
            Next
        EndIf
        Opt("WinTitleMatchMode", 4)
        $hWnd = WinGetHandle("classname=Progman")
        DllCall("user32.dll", "long", "SendMessage", "hwnd", $hWnd, "int", 0x111, "int", 28931, "int", 0)
    EndFunc   ;==>_UpdateExplorer
    Func _ExplWinGetList()
        Local $WinList, $iW
        Opt("WinTitleMatchMode", 4)
        $WinList = WinList("classname=CabinetWClass")
        If IsArray($WinList) Then
            Local $WinListArr[$WinList[0][0] + 1]
            For $iW = 1 To $WinList[0][0]
                $WinListArr[$iW] = $WinList[$iW][0]
            Next
            $WinListArr[0] = $WinList[0][0]
            Return $WinListArr
        Else
            Return ""
        EndIf
    EndFunc   ;==>_ExplWinGetList
     


    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 16:31 16-08-2018
    Sinclair83

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BOBAT

    Цитата:
    Это я делал на всех этапах - не помогает, да и каждый раз перезагружать не очень то хочется.

    ну так программно жеж... кроме того, одной перезагрузкой explorer'a не обойтись (по-моему). Есть такой файл "IconCache.db" по пути %SYSTEMDRIVE%\Users\имя пользователя\AppData\Local\
    Вот если его почистить или вовсе удалить.  

    Всего записей: 758 | Зарегистр. 07-01-2009 | Отправлено: 16:55 16-08-2018 | Исправлено: Sinclair83, 16:56 16-08-2018
    BOBAT



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    BOBAT
    Попробуйте этот код  

    Ничего не происходит
     
    Добавлено:

    Цитата:
    такой файл "IconCache.db" по пути %SYSTEMDRIVE%\Users\имя пользователя\AppData\Local\
    Вот если его почистить или вовсе удалить.  

    Это никак не помогает

    Цитата:
    Так понимаю, вы пробовали первый вариант? Запрашивать подъём прав как-то некрасиво. А второй, где используется текуший каталог? Ведь по идее ожидая смены значка вы смотрите именно в него и ожидаете, когда файловый менеджер его перечитает, нужен только повод, а уведомление шлётся с подкаталогом - отсюда задержка, видимо.  

    Ожидать смены значка не нужно, после применения vbs значок в папке меняет название и скрывается, после чего я из папки выхожу (на 1 уровень вверх) - смотрю значок - не меняется, тогда продолжаю заниматься другими делами, открываю каталоги, программы  и т.д. При этом помню, что Я ж менял иконку - иду в тот каталог - и иконка поменялась!!! или нет)))
     
    Добавлено:

    Цитата:
    Есть программы для смены иконок, так в них происходит моментальна смена иконки без всякой перезагрузки проводника
     
    Они вам не подходят?  

    Приходится использовать ))), но они не очень удобны в работе, поэтому написал свой вариант на cmd который никак не работал, потом мне его переделали в vbs и он стал как то работать. Хочу его уж доработать до конца, но видимо, придётся остановиться на последнем варианте

    Всего записей: 1532 | Зарегистр. 07-08-2005 | Отправлено: 16:58 16-08-2018 | Исправлено: BOBAT, 17:09 16-08-2018
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BOBAT
     
    А так?

    Код:
    #NoTrayIcon
     
    #Include <WinAPIEx.au3>
    #Include <APIConstants.au3>
     
    ;Проверяем, что скрипт запущен с одним параметром и что этот параметр - каталог,
    ; потом сообщаем системе, что этот каталог был изменён
    If $CmdLine[0] = 1 Then
        If StringInStr(FileGetAttrib($CmdLine[1]), 'D') Then _WinAPI_ShellChangeNotify($SHCNE_UPDATEDIR, $SHCNF_PATH + $SHCNF_FLUSHNOWAIT , $CmdLine[1])
    EndIf
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 17:19 16-08-2018
    BOBAT



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Ветка реестра и ключ известны? Функции для работы с реестром описаны тут, ToolTip() тут.  

    Ветка реестра и ключ, конечно известны. Справку эту я читал, и параметр я конечно, нахожу, но мне непонятно, как мне всё это (отчёт) трансформировать в tooltip-ы (есть параметр - один, нет - другой).  
     
    Добавлено:

    Цитата:
    А так?
     
    Код:
    #NoTrayIcon
     
    #Include <WinAPIEx.au3>
    #Include <APIConstants.au3>
     
    ;Проверяем, что скрипт запущен с одним параметром и что этот параметр - каталог,
    ; потом сообщаем системе, что этот каталог был изменён
    If $CmdLine[0] = 1 Then
        If StringInStr(FileGetAttrib($CmdLine[1]), 'D') Then _WinAPI_ShellChangeNotify($SHCNE_UPDATEDIR, $SHCNF_PATH + $SHCNF_FLUSHNOWAIT , $CmdLine[1])
    EndIf
     
     

    Значок поменялся через 60 секунд

    Всего записей: 1532 | Зарегистр. 07-08-2005 | Отправлено: 17:20 16-08-2018 | Исправлено: BOBAT, 17:23 16-08-2018
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BOBAT

    Цитата:
    Значок поменялся через 60 секунд

    А если добавить в конец _UpdateExplorer()  ?
    Для эксперимента, перед ним можно поставить sleep(1000) на всякий случай.

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 17:48 16-08-2018 | Исправлено: NIKZZZZ, 17:52 16-08-2018
    BOBAT



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    А если добавить в конец

    в конец чего? Вашего кода или vbs? Добавил в конц кода Вашего, скомпилировал, никакого результата. Аналогичный код у нас уже был в первом варианте, потом мы перешли на winapiexec64.exe, с ни вроде всё побыстрее меняется

    Всего записей: 1532 | Зарегистр. 07-08-2005 | Отправлено: 17:53 16-08-2018 | Исправлено: BOBAT, 17:59 16-08-2018
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BOBAT

    Цитата:
    Аналогичный код у нас уже был в первом варианте

    Не совсем, $SHCNF_FLUSHNOWAIT по идее должен сразу сбрасывать кэш,  откуда берется 60 сек. задержка , не понятно.
    И, наверное лучше использовать $SHCNF_FLUSH вместо $SHCNF_FLUSHNOWAIT
    Как вариант, могу предложить сначала удалить desktop.ini , выполнить  _WinAPI_ShellChangeNotify, далее добавить новый desktop.ini  и снова выполнить _WinAPI_ShellChangeNotify.

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 18:12 16-08-2018 | Исправлено: NIKZZZZ, 18:25 16-08-2018
    BOBAT



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Как вариант, могу предложить сначала удалить desktop.ini , выполнить  _WinAPI_ShellChangeNotify, далее добавить новый desktop.ini  и снова выполнить _WinAPI_ShellChangeNotify.  

    и что это даст? Если удалять файлы из папки, то ИНОГДА значок меняется, значок меняется всегда и сразу, если переименовать ВРУЧНУЮ desktop.ini и потом отменить переименование, это мы вставили в последний код, но я где то читал, что автоматическое переименование не проходит, только ручное, то есть если переименовать вручную, то иконка сразу меняется.

    Всего записей: 1532 | Зарегистр. 07-08-2005 | Отправлено: 18:35 16-08-2018
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

    Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 3)
    gyra (23-01-2020 10:51): AutoIT (Часть 4)


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru