Перейти к содержимому

Фотография

Вызов контексного меню


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 Kate4kina

Kate4kina

    Новый участник

  • Members
  • Pip
  • 16 сообщений

Отправлено 27 декабря 2010 - 12:56

Ситуация такая:
В проводнике открыта папка.в ней есть exe файл. Нужно вызвать из контекстного меню этого файла 7Zip. Подскажите, как это сделать?!
Что-то не получается ни установить фокус на фал, ни нажать на него.
  • 0

#2 Sunshine

Sunshine

    Новый участник

  • Members
  • Pip
  • 33 сообщений

Отправлено 27 декабря 2010 - 13:38

Ситуация такая:
В проводнике открыта папка.в ней есть exe файл. Нужно вызвать из контекстного меню этого файла 7Zip. Подскажите, как это сделать?!
Что-то не получается ни установить фокус на фал, ни нажать на него.


Я могу ошибиться, но мне кажется, что основная задача у вас - это сжать что-то 7Zip-ом. Для этого не обязательно пользоваться проводником - можно просто позвать exe-шник 7zip с правильными параметрами и подождать, пока процесс 7zip не исчезнет. Результат будет тот же, надёжность всей операции - выше.
  • 0

#3 SergeyP

SergeyP

    Специалист

  • Members
  • PipPipPipPipPip
  • 651 сообщений
  • Город:Москва

Отправлено 27 декабря 2010 - 17:11

Ситуация такая:
В проводнике открыта папка.в ней есть exe файл. Нужно вызвать из контекстного меню этого файла 7Zip. Подскажите, как это сделать?!
Что-то не получается ни установить фокус на фал, ни нажать на него.


Какой скрипт получается при выполнении Record ?
При прогоне скрипта получается установить фокус ?
  • 0

#4 Kate4kina

Kate4kina

    Новый участник

  • Members
  • Pip
  • 16 сообщений

Отправлено 31 декабря 2010 - 09:02

Проблема была в том, что папка представляет собой "WndClass"="SysListView32" компонент, в котором сложно список файлов разделить на отдельные компоненты. Проблему решила следующим образом:

set eix=Sys.Process("Explorer")
set wnd=eix.findchild ("WndCaption","FolderView",8)
if wnd.exists then
Set oFolder = aqFileSystem.GetFolderInfo(path)
Set colF = oFolder.SubFolders
Set f = colF.Item(1)
name_c=p_text
pge.ToUrl(path+name_c)
end if
set f_wnd=eix.findchild ("WndCaption",f.name,10)
if f_wnd.exists then log.Message "Каталог открылся!!!!"
Set oFolder2 = aqFileSystem.GetFolderInfo(path+F.name)
Set colF2 = oFolder2.Files
set f=colF2.Item(0)
log_ev "name= "&f.name
aqString.ListSeparator = ".e"
name_file=aqString.DeleteListItem(f.Name, 1)

set exe=f_wnd.findChild ("WndClass","SysListView32",10)
exe.selectItem(name_file)
exe.Keys("[Apps]")
If (exe.PopupMenu Is Nothing) Then
log_ev "Контекстное меню не появилось"
exit function
else
exe.PopupMenu.Click("7-Zip|Распаковать")
end if
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных