Форум сайта python.su
Добрый день, подскажите, пожалуйста:
Скрипт умеет запускать выделенный мышкой файл. Но, как запустить его не программой по-умолчанию, а с помощью указанной в python скрипте? Например, CPhotoshop.exe, вместо дефолтного вьювера
Заранее благодарю
Офлайн
это?
import subprocess subprocess.Popen("notepad.exe C:\\1.txt") #('explorer "%s"'%(PATH))
Офлайн
sanodin, спасибо
Мой скрипт просто выполняет клавишу Enter и выделенный файл открывается в дефолтной программе
subprocess.Popen(“notepad.exe C:\\1.txt”) - офигенно, только как в нее вставить название выделенного в Windows'e файла?
Офлайн
Твой скрипт видит выделенный объект, этот объект и будет в
('explorer "%s"'%(PATH))
Отредактировано sanodin (Сен. 30, 2013 14:03:03)
Офлайн
sanodin, суть такая: в винде выделяю файл, запускаю скрипт.
Скрипт выглядит так:
ctypes.windll.user32.keybd_event(0x0D, 0, 0, 0, 0)
ctypes.windll.user32.keybd_event(0x0D, 0, 0x0002, 0)
Заменил это на:
subprocess.Popen ('“C:\photoshop.exe” “C:\1560.jpg”'). Открылось в фотошопе, пол дела сделано
Как же все таки передать в переменную в скрипт название выделенного файла?
Отредактировано napuznik (Окт. 1, 2013 11:00:51)
Офлайн
пробуйте с модулем pywinauto, найти хендл открытого окна , типа так
import pywinauto pwa_app = pywinauto.application.Application() w=pywinauto.findwindows.find_windows(class_name='CabinetWClass')[0] window = pwa_app.window_(handle=w) print window.Texts()[0] pwa_app = pywinauto.application.Application() w=pywinauto.findwindows.find_windows(class_name='CabinetWClass')[0] window = pwa_app.window_(handle=w) print window.Toolbar2.Texts()[0]
Отредактировано sanodin (Окт. 1, 2013 13:23:02)
Офлайн
print window.Toolbar2.Texts() - ошибка
В описании к модулю не нашел ни Toolbar, ни других функций, определяющих, какой файл выделен
Офлайн
у меня на семерке без ошибок работает
на win server 2008 x 64 тоже выдает ошибку , но здесь путь указывает
print window.Texts()[0]
Отредактировано sanodin (Окт. 1, 2013 16:16:25)
Офлайн
или еще вариант:
выделяете файл мышкой, запуск скрипта, скрипт отрабатывает нажатие клавиш “ctrl-C”, копирование,то есть файл скопирован, а в буфере находится теперь полный путь к файлу, вытащить его при помощи winapi, все…)
Офлайн
Вот, один хороший человек дал,
import win32clipboard win32clipboard.OpenClipboard() try: data = win32clipboard.GetClipboardData(win32clipboard.CF_HDROP) print 'Files:' for i in data: print i except: print 'No file to the clipboard' win32clipboard.CloseClipboard()
Офлайн