Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

PE Viewer 3.0
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Orion9



Joined: 01 Jan 2024
Posts: 189

Post (Separately) Posted: Tue Apr 09, 2024 20:49    Post subject: Reply with quote

iteg
А ведь необязательно загружать библиотеку в окно плагина, можно и отдельным процессом запустить, так даже лучше получается, и вам будет проще.

Сделал, вот, скрипт на скорую руку, посмотреть, что получается. Вроде ничего так.

Code:
#Requires AutoHotkey v2

#SingleInstance Force

#HotIf WinActive("peviewer ahk_class TLister") and   
       InStr(ControlGetClassNN(ControlGetFocus("A")),"TListView") > 0

~LButton::
{
    If (A_ThisHotkey = A_PriorHotkey and A_TimeSincePriorHotkey < 200)
        FileInfo
}

FileInfo()
{

   if StrLen(EnvGet("COMMANDER_EXE")) = 0
   {
      MsgBox "Переменная %COMMANDER_EXE% не определена",, "Iconx"
      Return
   }
   A_Clipboard := ""
   
   Send "^c"
   Sleep(100)
   
   if !ClipWait(1)
   {
       MsgBox "Текст не скопирован в буфер"
       return
   }
   
   if InStr(A_Clipboard, '\') = 0
      Return
     
   f:=name:=''
   Loop Parse, A_Clipboard, ","
      {
        if A_Index = 1
           name:= Trim(A_LoopField)
        if (A_Index = 3)
           f:=Trim(A_LoopField)
      }
      f:= f . name
      f:=StrReplace(f, '`r`n','')
      if not InStr(FileExist(f),'D')
         Run EnvGet("COMMANDER_EXE") ' /S=L:Ppeviewer ' f
      else
         msgbox f 
}
Back to top
View user's profile Send private message
yahuu



Joined: 22 Jun 2023
Posts: 6

Post (Separately) Posted: Wed Apr 10, 2024 16:21    Post subject: Reply with quote

BlackFox wrote:
yahuu wrote:
4. It prompts that the file is occupied and cannot be deleted.

using this plugin hundreds times a day since last 2 months - never had such a problem. Not reproducible.
Check whether you have some antivirus that check every opened file.
А вообще-то форум русскоязычный - используйте онлайн переводчики.


Thank you, it was indeed caused by antivirus software
Back to top
View user's profile Send private message
iteg



Joined: 01 Dec 2011
Posts: 68

Post (Separately) Posted: Fri Apr 12, 2024 20:00    Post subject: Reply with quote

BlackFox
1)
BlackFox wrote:
сделать показ наличия OLE-интерфейса (наличие экспортных функций DLLRegisterServer / DLLUnregisterServer)

Так при наличии ресурса TypeLib (маркер "COM (TYPELIB)" на Info уже сделан) предполагается COM-интерфейс и наличие функций DLLRegisterServer / DLLUnregisterServer. Или это не так? Если есть примеры файлов, то выложите.
2)
BlackFox wrote:
в FileInfo при просмотре библиотеки с ActiveX в спец. вкладке показывалось расшифрованное значение TypeLib

Разбор TypeLib уже запланировал.
3)
BlackFox wrote:
Разнобой встречается в осн. в полях "Language" и "Character Set/Code Page".

Доработаю.

Добавлено спустя 8 минут:

Orion9
Quote:
А ведь необязательно загружать библиотеку в окно плагина, можно и отдельным процессом запустить, так даже лучше получается, и вам будет проще.

Спасибо за скрипт. Про параметры /S=LRazz не знал. Уже реализовал. Только через запуск TC в новом процессе. Через команду cm_List не смог найти способ, как передать путь к файлу, открывает только текущий файл под курсором.
Вот тестовый вариант: https://dropmefiles.com/tO7W2
По остальным предложениям - в процессе реализации.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 189

Post (Separately) Posted: Sat Apr 13, 2024 00:08    Post subject: Reply with quote

iteg wrote:
Вот тестовый вариант: https://dropmefiles.com/tO7W2

Практически 🔥Только почему комбинация Ctrl+O? Разве двойной клик не лучше бы был?

Еще один момен по визуальной части. Заметил, что свойства "Подтип файла" и "Атрибуты файла" практически всегда бывают пустыми, что оставляет зиять довольно большое пространство. Думаю, что для стройности структуры вывода, лучше писать туда затененный текст, типа <Отсутствует>, <Нет информации> или что-то в этом роде. Но это надо посмотреть, как оно в действительности будет выглядеть. Но в любом случае, большое пустое пространство тоже не очень смотрится.

Ох, чуть не забыл.

Quote:
Только через запуск TC в новом процессе. Через команду cm_List не смог найти способ, как передать путь к файлу, открывает только текущий файл под курсором.

Пусть отдельным процессом - так даже лучше, имхо.
Back to top
View user's profile Send private message
iteg



Joined: 01 Dec 2011
Posts: 68

Post (Separately) Posted: Sat Apr 13, 2024 23:50    Post subject: Reply with quote

Orion9
Orion9 wrote:
Разве двойной клик не лучше бы был?

Двойной клик уже занят под копирование содержимого ячейки в буфер обмена для списочного компонента. Ctrl+O (Open).
Quote:
свойства "Подтип файла" и "Атрибуты файла" практически всегда бывают пустыми

Да, у большинства программ уже не проставляются данные свойства. Доработаю вывод, как целое число и описание.
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 189

Post (Separately) Posted: Sun Apr 14, 2024 00:25    Post subject: Reply with quote

Quote:
Двойной клик уже занят под копирование содержимого ячейки в буфер обмена для списочного компонента. Ctrl+O (Open).

Но ведь двойной клик - это стандартный вход в объект по курсором в Windows. Каждый пользователь это знает и ожидает получить в окне приложения, особенно там, где это напрашивается. И на мой взглад, здесь это тоже напрашивается Smile
Back to top
View user's profile Send private message
iteg



Joined: 01 Dec 2011
Posts: 68

Post (Separately) Posted: Sun Apr 14, 2024 02:58    Post subject: Reply with quote

Тестовый вариант с изменениями:
- формата "Тип файла", "Подтип файла", "Атрибуты файла" и "Целевая ОС".
- использовать чередование строк для ListView из меню настроек.
- пока изменил на Space для "Открыть в плагине". Посмотрю, как совместить двойной клик.
https://dropmefiles.com/ueFr1
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 189

Post (Separately) Posted: Wed Apr 17, 2024 00:50    Post subject: Reply with quote

iteg
Ну, это уже лучше! Smile Хотя на счет зебры не уверен, но поля "Тип файла", "Подтип файла", "Атрибуты файла" и "Целевая ОС" смотрятся гораздо лучше.

Пробел весьма удобен, т.ч. даже не знаю, стоит ли заморачиваться с двойным кликом. Можно и так оставить, имхо.

Когда я говорил про подсветку, я больше имел в виду расцветку. Конечно, это дело очень индивидуальное, но попробовать стоит.

Вот пара мыслей. Всю информацию, которая не представляет большого интереса и важности можно затенить. (шрифтом, который менее выделяется). Сюда входит - пустые поля (с нулевым значением), повторяющиеся поля (с одинаковым значением), даты создания и открытия файла, хэши и, возможно, что-то еще. При этом, если значения повторяются, то одно значение должно, конечно, выделяться, как и дата изменения файла. Важные поля (Название продукта, Название компании и т.д), напротив, можно и красить и выделять жирным, но тут главное не перестараться. На поле "Язык" можно повесить флаги, можно и другие значки придумать - главное, чтобы красиво смотрелось. В общем, пробуйте, эксперементируйте, фантазируйте! И не беспокойтесь, что может плохо получиться. Если что, мы вам всегда скажем.)
Back to top
View user's profile Send private message
BlackFox



Joined: 18 Dec 2004
Posts: 42
Location: Mayence

Post (Separately) Posted: Thu Apr 18, 2024 12:49    Post subject: Reply with quote

iteg wrote:

1) при наличии ресурса TypeLib (маркер "COM (TYPELIB)" на Info уже сделан) предполагается COM-интерфейс и наличие функций DLLRegisterServer / DLLUnregisterServer. Или это не так? Если есть примеры файлов, то выложите.

для COM обязателен Typelib (и это показывается уже сейчас, да), для OLE - нет. Пример - любой DirectShow фильтр: там всегда есть функции
Code:
DllCanUnloadNow
DllGetClassObject
DllRegisterServer
DllUnregisterServer

но это не СОМ объект и, соотв, не имеет TypeLib. Поэтому хотелось бы такие случаи тоже сразу видеть, не залезая во вкладку экспорта.
iteg wrote:

2) Разбор TypeLib уже запланировал.
Ок. ждём.
iteg wrote:

3) Доработаю.
Аналогично 2 Wink

Добавлено спустя 13 минут:

iteg wrote:
Тестовый вариант с изменениями:
- пока изменил на Space для "Открыть в плагине". Посмотрю, как совместить двойной клик.
я сначала интуитивно пытался нажать F3 на этих DLL - как из тотала вызывается этот плагин, так же и ещё раз его вызывать для дальнейших действий. Не?
Back to top
View user's profile Send private message
iteg



Joined: 01 Dec 2011
Posts: 68

Post (Separately) Posted: Sat Apr 20, 2024 16:35    Post subject: Reply with quote

BlackFox
1) Добавление маркера для OLE реализовал по наличию в экспорте функций DllRegisterServer и DllUnregisterServer.
2) Доработал вывод полей LanguageName и CodePageName.

Orion9
Про расцветку - пометил в ToDo.

Т.к. до релиза очень далеко, то тестовые сборки буду выкладывать здесь.
Реализовал новый функционал для VirusTotal. Смотрите настройки главного меню. Параметры применяются при следующем запуске приложения.
(-/-) - статус значит, что данных о файле с указанным хешем на virustotal нет.
(BR) - Bad request.
https://dropmefiles.com/xNZKl
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 189

Post (Separately) Posted: Sun Apr 21, 2024 11:20    Post subject: Reply with quote

Quote:
(-/-) - статус значит, что данных о файле с указанным хешем на virustotal нет.
(BR) - Bad request.

Что-то я не совсем понял, где это должно отображаться. А с вызовом меню по F3 вы хорошо придумали.)
Back to top
View user's profile Send private message
BlackFox



Joined: 18 Dec 2004
Posts: 42
Location: Mayence

Post (Separately) Posted: Sun Apr 21, 2024 22:37    Post subject: Reply with quote

Orion9 wrote:
Что-то я не совсем понял, где это должно отображаться.
в начале строки virustotal. Только это надо включить в настройках (у меня само было включено): Settings -> VirusTotal -> Get file status
Back to top
View user's profile Send private message
iteg



Joined: 01 Dec 2011
Posts: 68

Post (Separately) Posted: Mon Apr 22, 2024 00:07    Post subject: Reply with quote

Orion9
Quote:
Что-то я не совсем понял, где это должно отображаться.

По умолчанию опция включена. Результат отображается в начале ссылки virustotal, если успешно получен ответ.

Тестовая версия 3.0.13.5:
- на вкладке 'CLR Header' отображается список установленных '.Net Framework' в системе.
https://dropmefiles.com/v7TSH
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 189

Post (Separately) Posted: Mon Apr 22, 2024 00:52    Post subject: Reply with quote

BlackFox
iteg
Да вроде стояла у меня эта галочка, только никаких отличий не заметил. Вот в галочке Use Old Link отличие в ссылке вижу. И интернет сейчас специально отрубал, а изменений в статусе не вижу.
Back to top
View user's profile Send private message
BlackFox



Joined: 18 Dec 2004
Posts: 42
Location: Mayence

Post (Separately) Posted: Mon Apr 22, 2024 14:47    Post subject: Reply with quote


это с первой настройкой.
А у вас что показывается?

@iteg
детект OLE работает, хексы в значениях языков - тоже. Спасибо!
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8  Next
Page 7 of 8

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group