Orion9

|
Posted: Sun Mar 02, 2025 23:35 Post subject: |
|
|
Loopback wrote: | Забавно, код для этого уже был сделан, но забыл включить. Хотя я до сих пор так и не понимаю, какой смысл в этой информации. |
Когда крутился один-два потока, смысла большого не было, согласен. Но сейчас у меня бывает по 5-6 потоков крутится, так как приходится часто эксперементировать. Как-то раз забыл закомментировать один поток, после того, как он перестал быть нужным, так я потом понять долго не мог, откуда он взялся
Имя потока - это я неправильно выразился. Речь идет об имени функции, как вы правильно отметили.
Loopback wrote: | В настоящее время метод записи с пропусками официально не поддерживается и делать так я бы не рекомендовал |
Не совсем понял. То есть обе записи следует избегать, и с кавычками тоже?
Loopback wrote: | конкретно в работу вычисляемых строк я не собирался вмешиваться, это уже своего рода legacy. |
Просто я пересматриваю сейчас код. Заметил, что в некоторых случаях у меня завязано именно на раскрытие переменных окружения, но в большинстве других используется избыточная запись, например:
Code: | i += 1
IniWrite %bar% "Buttonbar" %"'Menu' & %i%" %"%i%-2"
| Я все такие записи исправил на:
Code: | IniWrite %bar% "Buttonbar" %"'Menu' & i" %"i-2" |
Но иногда нужно, чтобы переменная раскрылась:
Code: | SetEnv COMMANDER_VIDEO %"%SoftVideo%" |
или:
Code: | ProcessExecGetOutput /OEM out %COMSPEC% "/c dir /s /b *.wav" %"%dir%" |
В общем, хотел убедиться, что такие записи допустимы, правильны и не будут в будущем как-то меняться.
Хотел еще про определения яыка спросить. Мне нужно узнать, является ли система англоязычной (UI), если нет, то считать её русской. Как вы думаете, такая функция подойдет?
 Hidden text Code: | Func GetSysLanguage()
Local Ret = DllCall("GetUserDefaultUILanguage")
# ru-RU 0x0419 1049
# en-US 0x0409 1033
# en-GB 0x0809 2057
# en-AU 0x0C09 3081
# en-CA 0x1009 4105
# en-NZ 0x1409 5129
# en-IE 0x1809 6153
# en-ZA 0x1C09 7177
# en-IN 0x4009 16393
# MsgBox("Return: " & Ret)
If Ret = 1033 Or Ret = 2057 Or Ret = 3081 Or Ret = 4105 Or Ret = 5129 Then Return "en"
Return "ru"
EndFunc
|
Хотел добавить возможность обработки англоязычной вкладки:
 Hidden text Code: | Func FileSecInfo(lParam)
Static SEE_MASK_INVOKEIDLIST = 0x0000000C, _
LPSHELLEXECUTEINFO = (auX64 ? 112 : 60) , _
SW_SHOWNORMAL = 1, SW_SHOW = 5
Local p = RequestCopyDataInfo("SP")
Local n = RequestCopyDataInfo("SN")
Local f = p & n
If Not FileExist(f) Then
ShowHint("Файл не существует " & f)
Return
Endif
Local buff = Buffer(LPSHELLEXECUTEINFO), verb = Buffer(10*2+2), file = Buffer(StrLen(f)*2+2), param = Buffer(12*2+2)
buff.Zero() # обнуляем память
verb.SetStr("properties" & Chr(0))
file.SetStr(f & Chr(0))
#param.SetStr("Security" & Chr(0))
param.SetStr("Безопасность" & Chr(0))
buff.SetNum(0, "dword", buff.size, _
"ulong", SEE_MASK_INVOKEIDLIST, _
"ptr", 0, _
"ptr", verb.Ptr, _
"ptr", file.Ptr, _
"ptr", param.Ptr, _
"ptr", 0, _
"int", SW_SHOWNORMAL)
DllCall("shell32\ShellExecuteExW", "ptr", buff.Ptr)
Free(buff, verb, file, param)
EndFunc |
|
|