Страница 5 из 13
Добавлено: Пн апр 23, 2007 18:37
Maximus
Обе вещи взаимосвязаны. Нужно отслеживать события, которые происходят с запущенными приложениями (закрытие, нажатие клавиши). Пробовал хуками - у меня не получилось.
1. Есть несколько вариантом возможного поведения:
1.1. Можно сделать копию файла перед тем, как Листер ее удалит. Но нужно уметь отслеживать момент закрытия приложения, чтобы потом этот файл удалить. Но в таком случае (допустим приложение - Ворд и пользователь изменил файл), кто будет предлагать переупаковать измененный файл?
1.2. Можно заблокировать файл, чтобы Листер его не удалил. Наверное это возможно, но тут опять надо исследовать, как будет себя вести Листер и стоит ли шкурка вычинки.
1.3. Можно просто прятать Листер и закрывать его после закрытия запущенного приложения. Это решит некоторые проблемы предыдущих двух вариантов.
В любом случае нужно следить за закрытием приложений. Я еще пока не знаю как это сделать.
2. Тут нужно следить за нажатиями клавишь. Хуками не получается. Другие варианты пока в голову не приходят.
Добавлено: Пт фев 01, 2008 17:40
Worros
Maximus писал(а):1.3. Можно просто прятать Листер и закрывать его после закрытия запущенного приложения. Это решит некоторые проблемы предыдущих двух вариантов.
В любом случае нужно следить за закрытием приложений. Я еще пока не знаю как это сделать.
По-моему, то, что надо.
http://www.codeproject.com/KB/threads/C ... essEx.aspx
Добавлено: Сб фев 02, 2008 23:10
Maximus
Детально пока не посмотрел, но надо попробовать.
Сейчас я пользуюсь функцией CreateProcess. Из нее мне не удалось выудить ничего, чтобы следить за запущенным процессом.
Может с этой функцией получится.
Добавлено: Пн мар 24, 2008 10:22
VadiMGP
Maximus писал(а):Сейчас я пользуюсь функцией CreateProcess.
Последний папаметр этой функции - структура PROCESS_INFORMATION. В ней есть переменная hProcess - это хэндл запущенного процесса. Его можно использовать с любой функцией ожидания (например, WaitForSingleObject).
Добавлено: Пн мар 24, 2008 13:51
Maximus
VadiMGP писал(а):Последний папаметр этой функции - структура PROCESS_INFORMATION. В ней есть переменная hProcess - это хэндл запущенного процесса. Его можно использовать с любой функцией ожидания (например, WaitForSingleObject).
По этому поводу вопрос уже решен.
Добавлено: Чт апр 03, 2008 22:04
Maximus
AppLoader 0.9 beta
Скачать/48.7 Кб/
Список изменений:
+ возможность загрузки файла приложением непосредственно из архива (Lister держится "в фоне"): ключ [Options], ListerState
* ключ [Options], CloseLister заменен ключом [Options], ListerState
* ключ [Options], WorkWithSelFiles более не используется; вместо него анализируется ключ файла настроек Total Commander [Configuration], Viewertype
+ удержание клавиши Shift при вызове Lister`а влияет на обработку значения ключа файла настроек Total Commander [Configuration], Viewertype заменяя действие "Файл под курсором - внутренней программой" на "Выделенные файлы - внутренней программой", или наоборот
Автор не я :)
Добавлено: Пт июн 06, 2008 22:28
DeathStalker
Нашел такой баг, если в имени файла программы более одной точки то выдается сообщение об ошибке, что файл не найден
Добавлено: Ср июн 11, 2008 21:39
Maximus
Автору последней версии сообщил, но он пока не ответил.
У самого ни времени, ни желания ковыряться сейчас нету.
Добавлено: Сб авг 02, 2008 20:13
exirous
Вопрос.
В Плагинах очень плохо разбераюсь, но почитав форум насчёт AppLoader я настроил его правильно, но он всё равно не пашет.. или я просто не понимаю как им пользоватся?
Я почему-то понял, что это замена Viewer и Editor , которые по умолчанию вызываются по нажатии соответственно F3 и F4..
Изменил только ModalOnly, ScrolLockControl и добавил пару строк в Editor
Код: Выделить всё
[Options]
ScrollLockControl=0
ModalOnly=0
FindFiles=1
SyncDirs=1
TCWindow=1
QuickView=0
Lister4=0
OverWrite=0
WorkWithSelFiles=1
IfIsExtOnly=0
CloseLister=1
NextPlugin=1
ParamsMode=1
ParamsByExtMode=0
UseTCExtensions=0
CopySearchTextToClip=1
DefaultEditor=notepad
[Editor]
inf=notepad
bmp=mspaint
php=C:\Program Files\Notepad++\notepad++.exe
css,js,html=C:\Program Files\Rapid PHP 2006\rapidphp.exe
[HotKeys]
AppFromLister_key=123
AppFromLister_mod=C
DefSysAppFromLister_key=120
DefSysAppFromLister_mod=C
[TCPos]
IsSearchTextLeft=5
IsSearchTextTop=115
SearchTextLeft=85
SearchTextTop=113
Добавлено: Вс авг 03, 2008 19:58
Maximus
Что именно не пашет? Что ты делаешь и что хочешь получить в результате?
Добавлено: Пн авг 04, 2008 20:06
exirous
Попробовал ещё парочку Плагинов.. просто не один не пашет.. версия 7.02a 32-bit (14.09.2007)...
Добавлено: Ср апр 01, 2009 10:30
DeathStalker
еще такой баг - нельзя переименовать файл
1. запускаю Lister, который подгружает для просмотра любой плагин, например SynPlus, при этом плагин Apploader загружается тоже (он на первом месте в списке wlx плагинов).
2. не закрывая Lister'а пытаюсь переименовать любой файл, появляется сообщение "Прервано пользователем".
ЗЫ: 1. в пункте первом если Листером воспользоваться просмотром с отключенными плагинами, то ошибки не происходит.
2. Если отключить Aploader, то ошибки не происходит.
3. Ошибка кажется происходит из-за того что нажатие на Enter интерпретируется как двойное и операция по переименованию отменяется.
Добавлено: Ср апр 01, 2009 11:38
Maximus
Не удалось у себя такого воспроизвести. Переименовать открытый файл получается без проблем.
DeathStalker писал(а):2. не закрывая Lister'а пытаюсь переименовать любой файл, появляется сообщение "Прервано пользователем".
DeathStalker писал(а):3. Ошибка кажется происходит из-за того что нажатие на Enter интерпретируется как двойное и операция по переименованию отменяется.
Очень на то похоже. Попробуй Enter на цифровой клавиатуре. Посмотри, может какие-то программы типа всяких Switcher-ов мешают тебе нормально работать.
DeathStalker писал(а):ЗЫ: 1. в пункте первом если Листером воспользоваться просмотром с отключенными плагинами, то ошибки не происходит.
2. Если отключить Aploader, то ошибки не происходит.
Странно. Не могут влиять плагины на нажатие Enter в файловой панели.
Добавлено: Ср апр 01, 2009 14:53
DeathStalker
Действительно такой эффект проходит если выгрузить пунто свичер, повидимому он как-то в связке с данным плагином вызывает двойное нажатие на enter.
Добавлено: Ср апр 01, 2009 15:22
DeathStalker
Скачал последнюю версию пунто свичера, ошибка больше не повторяется.