Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нажать на кнопку 
V
    Опции темы
HellanD
Дата 17.1.2007, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 443
Регистрация: 16.5.2006
Где: Киев

Репутация: 1
Всего: 2



Помогите! Задача такая! Есть окошко. Мне надо както захватить его дискриптор, и нажать на кнопочку а так же ввести в поля (типа edit (выражаясь языком винапи)) данные
Плиз ткните где найти...
Буду благодарен!!!



--------------------
Мой сайт на django
Japanese Innovations
PM ICQ   Вверх
HellanD
Дата 18.1.2007, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 443
Регистрация: 16.5.2006
Где: Киев

Репутация: 1
Всего: 2



Глянте плиз что не так в таком вызове!

Код

>>> import win32gui
>>> import win32api,win32ui
>>> iny=win32gui.FindWindow(None,"Calculator")
>>> win32api.SendMessage(iny,WM_CLOSE,None,None)



Он мне выдает чето

Traceback (most recent call last):
  File "<interactive input>", line 1, in ?
NameError: name 'WM_CLOSE' is not defined

Плиз хелп


--------------------
Мой сайт на django
Japanese Innovations
PM ICQ   Вверх
_Viper_
Дата 18.1.2007, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 8.11.2006

Репутация: 10
Всего: 11



HellanD, WM_CLOSE описана в модуле win32con.
PM MAIL   Вверх
HellanD
Дата 18.1.2007, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 443
Регистрация: 16.5.2006
Где: Киев

Репутация: 1
Всего: 2



не вижу там я ее
Как win32con.WM_CLOSE  ?


--------------------
Мой сайт на django
Japanese Innovations
PM ICQ   Вверх
_Viper_
Дата 18.1.2007, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 8.11.2006

Репутация: 10
Всего: 11



Код
import win32con
win32con.WM_CLOSE

PM MAIL   Вверх
HellanD
Дата 18.1.2007, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 443
Регистрация: 16.5.2006
Где: Киев

Репутация: 1
Всего: 2



СПС. Нашел!


--------------------
Мой сайт на django
Japanese Innovations
PM ICQ   Вверх
HellanD
Дата 18.1.2007, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 443
Регистрация: 16.5.2006
Где: Киев

Репутация: 1
Всего: 2



Все чтоб решить основную задачу осталось лишь заюзать функцию  win32gui.EnumWindows

Там 2 параметра EnumWindows(callback, extra)

Как написать callback функцию для обработки дискрипторов окон?


--------------------
Мой сайт на django
Japanese Innovations
PM ICQ   Вверх
_Viper_
Дата 18.1.2007, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 8.11.2006

Репутация: 10
Всего: 11



Цитата(HellanD @  18.1.2007,  11:37 Найти цитируемый пост)
Как написать callback функцию для обработки дискрипторов окон?

Описываешь ф-цию которая принимает 2 параметра, и передаёшь её в EnumWindows. В чём проблема?
PM MAIL   Вверх
HellanD
Дата 19.1.2007, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 443
Регистрация: 16.5.2006
Где: Киев

Репутация: 1
Всего: 2



_Viper_  ссори друг, я наверно немного торможу... Можна примерчик?
Она не обязательно должна быть определена как каллбек? А какие именно параметры (чтоли дескриптор и .... )? Плиз немного подробнее....
С меня репка smile


--------------------
Мой сайт на django
Japanese Innovations
PM ICQ   Вверх
HellanD
Дата 19.1.2007, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 443
Регистрация: 16.5.2006
Где: Киев

Репутация: 1
Всего: 2



А в питоне нет такого понятия как каллбек функция (аналогичная в С (ВинАпи))


--------------------
Мой сайт на django
Japanese Innovations
PM ICQ   Вверх
DrDred
Дата 19.1.2007, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 14.9.2006
Где: Земля

Репутация: 2
Всего: 2



Ох... А примеры поизучать религия не позволяет?
К pywin32 идут примеры, вот оттуда (файл win32gui_demo.py)
Код

import win32gui

def _MyCallback( hwnd, extra ):
    hwnds, classes = extra
    hwnds.append(hwnd)
    classes[win32gui.GetClassName(hwnd)] = 1

def TestEnumWindows():
    windows = []
    classes = {}
    win32gui.EnumWindows(_MyCallback, (windows, classes))
    print "Enumerated a total of %d windows with %d classes" % (len(windows),len(classes))
    if not classes.has_key("tooltips_class32"):
        print "Hrmmmm - I'm very surprised to not find a 'tooltips_class32' class."

print "Enumerating all windows..."
TestEnumWindows()
print "All tests done!"

PM MAIL WWW ICQ   Вверх
HellanD
Дата 19.1.2007, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 443
Регистрация: 16.5.2006
Где: Киев

Репутация: 1
Всего: 2



Что если сделать например так?
Код

hi=win32gui.FindWindow(None,u'\u0412\u0432\u043e\u0434 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u043f\u0430\u0440\u043e\u043b\u044f')

def Func(CHwnd):
...    st=win32gui.GetClassName(CHwnd)
...    print st
...    

win32gui.EnumChildWindows(hi,Func(hi),None)




Чето не выходит, он пишет 
Traceback (most recent call last):
  File "<interactive input>", line 1, in ?
TypeError: First param must be a callable object


--------------------
Мой сайт на django
Japanese Innovations
PM ICQ   Вверх
HellanD
Дата 19.1.2007, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 443
Регистрация: 16.5.2006
Где: Киев

Репутация: 1
Всего: 2



Подскажите плиз как по дескриптору знать стиль окна...


--------------------
Мой сайт на django
Japanese Innovations
PM ICQ   Вверх
DrDred
Дата 19.1.2007, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 14.9.2006
Где: Земля

Репутация: 2
Всего: 2



Цитата(HellanD @  19.1.2007,  11:30 Найти цитируемый пост)
Подскажите плиз как по дескриптору знать стиль окна... 

Что есть стиль окна?
Можно начать отсюда 
тынц
И вообще, msdn в таких вопросах в помощь smile
PM MAIL WWW ICQ   Вверх
HellanD
Дата 19.1.2007, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 443
Регистрация: 16.5.2006
Где: Киев

Репутация: 1
Всего: 2



глянь плиз че не работает такой код
Код

import win32gui,string


def _MyCallback( Chwnd, extra=None ):
        Num=0
        str=win32gui.GetClassName(Chwnd)
        print str
        x=string.find(str,'Edit')
        print x
        if x is 0:
           Num=Num+1
        if Num is 1 and x is 0:
             print Chwnd   
             w=win32gui.SetWndowText(Chwnd,"NODDD")
             print w

def TestEnumWindows():
    win32gui.EnumChildWindows(a,_MyCallback,None)
  


a= win32gui.FindWindow(None, u'\u0412\u0432\u043e\u0434 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u043f\u0430\u0440\u043e\u043b\u044f')
TestEnumWindows()



Должен бы написать в окошке а не пишет...



--------------------
Мой сайт на django
Japanese Innovations
PM ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1433 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.