Страница 112 из 130
Добавлено: Сб июл 23, 2016 02:08
Flasher
addhaloka писал(а):если я конечно правильно понял, о чём речь.
Нет, неправильно. >>
Flasher писал(а):С командой cd это не требуется.
+
Skif_off писал(а):Plugin path received via WM_COPYDATA must end with \ if it's not a file (32/64)
Добавлено: Сб июл 23, 2016 14:25
Skif_off
Flasher писал(а):В NTFS-streams потоки читаются как папки.
В NTFS-streams
файлы читаются как папки, а потоки - как файлы.
Flasher писал(а):Насчёт Registry не подтверждаю.
Попробуй сам:
[cut]
Код: Выделить всё
#NoTrayIcon
Opt('WinWaitDelay', 100)
Global Const $WM_COPYDATA = 0x004A
Local $hTC, $hWndPar, $sMem, $sMsg, $sTCPlugName, $i
$hTC = WinGetHandle('[CLASS:TTOTAL_CMD]')
AutoItWinSetTitle(@ScriptName)
$hWndPar = WinGetHandle(@ScriptName)
$sMem = ClipGet()
$sTCPlugName = _TCPlugSearch('registry.wfx', 'FileSystemPlugins')
$sMem = StringRegExpReplace($sMem, '^HKCR\\', 'HKEY_CLASSES_ROOT\\', 1)
$sMem = StringRegExpReplace($sMem, '^HKCC\\', 'HKEY_CURRENT_CONFIG\\', 1)
$sMem = StringRegExpReplace($sMem, '^HKCU\\', 'HKEY_CURRENT_USER\\', 1)
$sMem = StringRegExpReplace($sMem, '^HKLM\\', 'HKEY_LOCAL_MACHINE\\', 1)
$sMem = StringRegExpReplace($sMem, '^HKU\\', 'HKEY_USERS\\', 1)
$sMem = StringRegExpReplace($sMem, '^HKUS\\', 'HKEY_USERS\\', 1)
_TC_cd_command(__CheckANSItoUTF8('\\\' & $sTCPlugName & '\' & $sMem), '', 'ST')
Func _TCPlugSearch($name, $type)
Local $aTCPs
$aTCPs = IniReadSection(EnvGet('COMMANDER_INI'), $type)
For $i = 1 To $aTCPs[0][0]
If StringInStr($aTCPs[$i][1], $name) Then
If $type = 'FileSystemPlugins' Then
Return $aTCPs[$i][0]
Else
Return 1
EndIf
EndIf
Next
Return 0
EndFunc ;==>_TCPlugSearch
Func __CheckANSItoUTF8($sStr)
Local $sStrTemp, $BOM = Chr(239) & Chr(187) & Chr(191) ; \xEF \xBB \xBF
$sStrTemp = BinaryToString(StringToBinary($sStr, 1), 1)
If Not ($sStr == $sStrTemp) Then
$sStr = BinaryToString(StringToBinary($sStr, 4))
Return $BOM & $sStr
Else
Return $sStr
EndIf
EndFunc ;==>__CheckANSItoUTF8
Func _TC_cd_command($l, $r, $sFlag = "")
Local $sCommand = $l & @CR & $r & ChrW(0) & $sFlag
Local $pCDcom = DllStructCreate("char[" & StringLen($sCommand)+ 1 & "]")
Local $pCopyData = DllStructCreate("ulong_ptr;dword;ptr")
DllStructSetData($pCDcom, 1, $sCommand)
DllStructSetData($pCopyData, 1, Asc("C") + 256 * Asc("D"))
DllStructSetData($pCopyData, 2, DllStructGetSize($pCDcom))
DllStructSetData($pCopyData, 3, DllStructGetPtr($pCDcom))
DllCall("user32.dll", "int", "SendMessageW", "hwnd", $hTC, "int", $WM_COPYDATA, "wparam", $hWndPar, "lparam", DllStructGetPtr($pCopyData))
EndFunc ;==>_TC_cd_command
[/cut]
Ветка реестра берётся из буфера обмена, запуск без параметров,
AutoIt3.exe. (Скрипт сокращён и все проверки убраны.)
Добавлено: Сб июл 23, 2016 14:44
Flasher
Skif_off писал(а):В NTFS-streams файлы читаются как папки, а потоки - как файлы.
Один фиг - это файловые потоки. Важно, что толку от правки никакой.
Skif_off писал(а):Попробуй сам
Зачем? Тут про TCFS2, а не AutoIt.
Добавлено: Сб июл 23, 2016 16:06
Skif_off
Flasher писал(а):Зачем? Тут про TCFS2, а не AutoIt.
Тут про WM_COPYDATA и пути fs-плагинов,
попробуй прочитать ещё раз.
Добавлено: Сб июл 23, 2016 16:09
Flasher
Skif_off
Тут - это в данном топике. У WM_COPYDATA есть свой.
Прочитай лучше сам.
Добавлено: Сб июл 23, 2016 16:21
Skif_off
Flasher
Для cd TCFS2 использует WM_COPYDATA,
поломалось из-за
изменений в ТС9, но изменений странных: по крайней мере с Registry WM_COPYDATA работает по старому. Где тут оффтоп? Появится
MVV - прояснит (лениво искать тему на оффоруме, но там вроде про этот нюанс (баг?) ничего не было).
Добавлено: Сб июл 23, 2016 16:24
Flasher
Skif_off
Ты пишешь в рамках темы, что у тебя переход с Registry работает правильно, а потом переводишь стрелки на AutoIt. Это ли не оффтоп?
Что использует TCFS2, мне прекрасно известно. Суть в том, что ты явно не указал, что твои тесты к топику отношения не имеют.
Добавлено: Сб июл 23, 2016 16:43
Skif_off
Flasher
Стрелки?

В рамках темы писал про причину бага перехода - изменения, касающиеся WM_COPYDATA и путей fs-плагинов, а скрипт AutoIt, чтобы ты лично мог убедиться, что с плагином Registry WM_COPYDATA в бете ТС9 продолжает работать и по-старому.
Добавлено: Сб июл 23, 2016 16:48
Flasher
Skif_off
Стрелки-стрелки. У меня телепатический модуль в такой ситуации отключается. Работает где-то кроме TCFS2 - хорошо, но мне неинтересно.
Добавлено: Сб июл 23, 2016 17:20
Skif_off
Flasher
Глаза-то не отключились?

Посмотри ещё раз моё сообщение: писал только о WM_COPYDATA и изменении, про TCFS2 вообще ни слова.
Добавлено: Сб июл 23, 2016 17:44
Flasher
Skif_off
С WM_COPYDATA ты привёл цитату из истории версий. Про переход же написано больше в контексте обсуждения. Ещё раз (надеюсь, последний):
Flasher писал(а):Суть в том, что ты явно не указал, что твои тесты к топику отношения не имеют.
Добавлено: Вс июл 24, 2016 00:17
Skif_off
Flasher
[cut]Про переход написано в контексте цитаты: декларированных изменений в использовании WM_COPYDATA. И написано в теме, автор которой использует WM_COPYDATA и влияет на изменения, принимая участие в обсуждении оного, а отношения не имеют лично к тебе, как к не использующему в публично предложенных решениях это сообщение непосредственно.[/cut]
Добавлено: Вс июл 24, 2016 00:39
Avada
Flasher
Skif_off
Дальнейший обмен мнениями по этому поводу прошу прекратить в связи с явной утратой его конструктивности.
Добавлено: Чт июл 28, 2016 18:09
MVV
LonerD писал(а):При обновлении программки иногда изменяется и крупный инишник TCFS2.ini, приходится его сверять со своим, исправлять, изменять...
Пожелание. Наряду с TCFS2.ini держать в папке с программой ещё файлик TCFS2_user.ini, в который и вносятся все пользовательские изменения, и в случае наличия в нём каких-то секций и ключей - они будут иметь приоритет на TCFS2.ini
Т.к. все инишники пишутся вручную, можно добавить в свои какой-нибудь комментарий после окончания опций "крупного" инишника (и перед началом своих) в каждой секции и набросать скриптик, который будет синхронизировать начала секций до этого комментария с содержимым секций "крупного" инишника. В принципе, я тоже могу добавить какой-нибудь комментарий в конец каждой секции в "крупном" инишнике (но не вижу в этом особой необходимости).
Skif_off писал(а):Для cd TCFS2 использует WM_COPYDATA,
поломалось из-за
изменений в ТС9, но изменений странных: по крайней мере с Registry WM_COPYDATA работает по старому. Где тут оффтоп? Появится
MVV - прояснит (лениво искать тему на оффоруме, но там вроде про этот нюанс (баг?) ничего не было).
Похоже, это связано с
этим багом.
Добавлено: Ср авг 31, 2016 16:23
sa
MVV
Во вспомогательной функции send_wait убрал sendmsg(#2)*. Стабильность выполнения функции улучшилась (у меня, во всяком случае). Могут ли быть какие-то подводные камни при таком варианте?