Форум сайта python.su
0
Шалом всем 
используя:
from win32com . client import Dispatch import win32gui ShellWindowsCLSID = '{9BA05972-F6A8-11CF-A442-00A0C90A8F39}' ShellWindows = Dispatch ( ShellWindowsCLSID ) top = win32gui.GetForegroundWindow() for shellwindow in ShellWindows : if int(shellwindow.HWND) == top : for j in range(shellwindow.Document.SelectedItems().Count): lis.append(shellwindow.Document.SelectedItems().Item(j).Path)

Офлайн
31
Если pywinauto это может, значит это возможно
try: w = pywinauto.findwindows.find_windows(class_name='CabinetWClass')[0]# если рабочий стол, то 'Progman' except: w = pywinauto.findwindows.find_windows(class_name='Progman')[0] window = pwa_app.window_(handle=w)
Отредактировано sanodin (Янв. 25, 2014 19:09:41)
Офлайн
0
Я пытаюсь хоть как то потестить твой код, но для этого мне нужен pywinauto,который я в свою очередь не могу поставить. В нете пишут ,что для pywinauto надо сперва поставить sendkeys. А его я вообще не могу найти во всем интернете. У меня python 2.7.6
Кто может помочь…….
Офлайн
31
Не ставил я ничего кроме pywinauto
Офлайн
0
package directory pywinauto does not exist
пишу в cmd python c:\путь к pywinauto\setup.py install
пишет следующее(attached)
Прикреплённый файлы:
Untitled.jpg (50,8 KБ)
Офлайн
31
Прежде чем тему создать, подумай, погугли, на форуме посмотри, эти темы по установке модулей, есть везде…
и смотри в pywinauto, код под себя надо будет дорабатывать
Отредактировано sanodin (Янв. 25, 2014 21:07:47)
Офлайн
0
pywinauto поставил.
Теперь к твоему коду:
try: w = pywinauto.findwindows.find_windows(class_name='CabinetWClass')[0]# если рабочий стол, то 'Progman' except: w = pywinauto.findwindows.find_windows(class_name='Progman')[0] window = pwa_app.window_(handle=w)
ShellWindowsCLSID = '{9BA05972-F6A8-11CF-A442-00A0C90A8F39}' ShellWindows = Dispatch(ShellWindowsCLSID) top = win32gui.GetForegroundWindow() print type(top) print "Top is = " + str(top) for shellwindow in ShellWindows: shellwindow_to_int = int(shellwindow.HWND) print shellwindow_to_int #print GetClassName ( shellwindow . HWND ) if shellwindow_to_int == top: print "DADADADADADADADA!!!!!!!!!" #print shellwindow . LocationName #print shellwindow . LocationURL #print 50 * '-' for j in range(shellwindow.Document.SelectedItems().Count): lis.append(shellwindow.Document.SelectedItems().Item(j).Path) try: return lis except: pass
Офлайн
31
это выдаст список файлов выделенных
# -*- coding: cp1251 -*- import pywinauto from pywinauto import win32functions,win32defines import time import win32clipboard import win32gui import win32com.client import subprocess time.sleep(2) ms=win32functions.SendMessage shell = win32com.client.Dispatch("WScript.Shell") pwa_app = pywinauto.application.Application() try: w = pywinauto.findwindows.find_windows(class_name='CabinetWClass')[0] except: w = pywinauto.findwindows.find_windows(class_name='Progman')[0] window = pwa_app.window_(handle=w) window.SetFocus() win32gui.ShowWindow(w,5) win32gui.SetForegroundWindow(w) #win32gui.SetFocus(w) print window.Texts()[0] time.sleep(1) ms(w, shell.SendKeys("^c", 0), 0,0)#копирование #shell.SendKeys("^a^c", 0)#выделение,копирование time.sleep(1) 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()
Отредактировано sanodin (Янв. 25, 2014 21:20:47)
Офлайн
0
Спасибище!!!!!!
Куча строк кода,но все работает черт возьми!!!
Буду идти построчно и пытаться все это понять 
много много раз спасибо тебе!
Как только пойму ,начну прикручивать это к остальной части кода и в самом конце выложу тебе на показ 
Офлайн