asdf8 сказал(а):Хорошо бы добавить функцию "SHChangeNotify", для обновления оболочки, после разных манипуляций над ней.
; for X86
Opt('MustDeclareVars', 1)
Global Const $SHCNE_ASSOCCHANGED = 0x8000000
Global Const $SHCNF_FLUSH = 0x1000
Global Const $SHCNF_IDLIST = 0x0
Global $file, $title
$file = FileOpen(@TempDir & "\test\test.exmp", 10)
FileClose($file)
ShellExecute(@TempDir & "\test")
Sleep(4000)
$title = WinGetTitle("[active]")
RegWrite("HKEY_CLASSES_ROOT\.exmp", "", "REG_SZ", "exmpfile")
RegWrite("HKEY_CLASSES_ROOT\exmpfile\DefaultIcon", "", "REG_SZ", "shell32.dll,27")
_WinAPI_SHChangeNotify($SHCNE_ASSOCCHANGED, BitOR($SHCNF_IDLIST, $SHCNF_FLUSH)); update shell icons
Sleep(4000)
RegDelete("HKEY_CLASSES_ROOT\.exmp")
RegDelete("HKEY_CLASSES_ROOT\exmpfile")
_WinAPI_SHChangeNotify($SHCNE_ASSOCCHANGED, BitOR($SHCNF_IDLIST, $SHCNF_FLUSH)); update shell icons
Sleep(2000)
If WinExists($title) Then WinClose($title)
DirRemove(@TempDir & "\test", 1)
Func _WinAPI_SHChangeNotify($wEventId, $uFlags, $dwItem1 = 0, $dwItem2 = 0)
DllCall("shell32.dll", "none", "SHChangeNotify", _
"long", $wEventId, _
"uint", $uFlags, _
"ptr", $dwItem1, _
"ptr", $dwItem2 _
)
EndFunc
Хороший пример, но желательно добавить и другие константы в список, которые возможно использовать с этой функцией.Небольшой пример
#Include <Array.au3>
#Include <WinAPIEx.au3>
Global $aList = _WinAPI_GetKeyboardLayoutList()
If IsArray($aList) Then
_ArrayDisplay($aList, '_WinAPI_GetKeyboardLayoutList')
EndIf
Тоже не то, это полный список, а мне нужны только используемые. У меня их две к примеру, русская и английская, как это получить?Раскладки возвращает другая функция
CreatoR сказал(а):Тоже не то, это полный список...
Ааааааа! :laugh: вот это дела - я до этого эксперементировал с этим делом, и использовал «_LoadKeyboardLayout» на подобном списке от «_EnumSystemLocales», так он мне в системе добавил эти раскладки... спасибо, это то что нужно.У тебе разве по другому?
При каких обстоятельствах данная функция может не срабатывать? Перестало работать и всё, после чего именно сказать трудно, в последнее время устанавливал разные программы и настраивал уже не помню что :wacko: (система свежая).Действительно хороший пример, функция будет добавлена в следующей версии