Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
  • Страница 1 из 5
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Модератор форума: Peter, DEMBEL, YURIY  
Проверить наличие связи верхнего окна с открытым файлом
ВадимДата: Сб, 24 Июня 2017, 15:42 | Сообщение # 1
Генератор идей
Доброго здравия всем! :)

Понадобилось вот, по работе, программно узнать - верхнее окно в системе является ли дочерним по отношению к определенному уже открытому файлу (имя которого заранее известно) или относится к другому файлу/приложению.

Например, имеем открытый файл в программе Excel. Как узнать, что верхнее окно в системе (которое вызвал пользователь) относится именно к данному файлу (например, могут быть окна: "Формат ячеек", "Шрифт" и т.д., и т.п.)?

Попробовал мониторить дескрипторы плагином Петра (zmFunctions), оказалось, что дескрипторы окон совершенно разные (была мысль, что у дочерних окон есть общий префикс, в рамках одного приложения и одного открытого файла, и что этот префикс можно парсить и сравнивать с префиксом "родительского" окна). Не прокатило...

Есть идеи?


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
СообщениеДоброго здравия всем! :)

Понадобилось вот, по работе, программно узнать - верхнее окно в системе является ли дочерним по отношению к определенному уже открытому файлу (имя которого заранее известно) или относится к другому файлу/приложению.

Например, имеем открытый файл в программе Excel. Как узнать, что верхнее окно в системе (которое вызвал пользователь) относится именно к данному файлу (например, могут быть окна: "Формат ячеек", "Шрифт" и т.д., и т.п.)?

Попробовал мониторить дескрипторы плагином Петра (zmFunctions), оказалось, что дескрипторы окон совершенно разные (была мысль, что у дочерних окон есть общий префикс, в рамках одного приложения и одного открытого файла, и что этот префикс можно парсить и сравнивать с префиксом "родительского" окна). Не прокатило...

Есть идеи?

Автор - Вадим
Дата добавления - 24 Июня 2017 в 15:42
AS3856Дата: Сб, 24 Июня 2017, 19:23 | Сообщение # 2
Эксперт форума
Наверно надо что то подобное ? http://old.computerra.ru/gid/rtfm/system/272855/

Добавлено (24 Июня 2017, 19:23)
---------------------------------------------
-или как то так
командной строке, строка:powershell.exe "Get-Process |where {$_.mainWindowTItle} |format-table id,name,mainwindowtitle -AutoSize"

 
СообщениеНаверно надо что то подобное ? http://old.computerra.ru/gid/rtfm/system/272855/

Добавлено (24 Июня 2017, 19:23)
---------------------------------------------
-или как то так
командной строке, строка:powershell.exe "Get-Process |where {$_.mainWindowTItle} |format-table id,name,mainwindowtitle -AutoSize"


Автор - AS3856
Дата добавления - 24 Июня 2017 в 19:23
mishemДата: Сб, 24 Июня 2017, 22:50 | Сообщение # 3
Эксперт форума
Попробуй вот этот плагин.
Прикрепления: zmBullshit.zip (62.1 Kb)


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
СообщениеПопробуй вот этот плагин.

Автор - mishem
Дата добавления - 24 Июня 2017 в 22:50
ВадимДата: Вс, 25 Июня 2017, 08:59 | Сообщение # 4
Генератор идей
AS3856, mishem, огромное спасибо! Буду пробовать!!

Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
СообщениеAS3856, mishem, огромное спасибо! Буду пробовать!!

Автор - Вадим
Дата добавления - 25 Июня 2017 в 08:59
ВадимДата: Вс, 25 Июня 2017, 12:00 | Сообщение # 5
Генератор идей
Цитата AS3856 ()
Наверно надо что то подобное ?

Вот эти два параметра, возможно смогут помочь:
Pid - идентификатор процесса, породившего данное окно
Image - название процесса, породившего данное окно

Но пока не знаю как их можно задействовать.
Мне с плагином сподручнее. Но если не получится, то буду экспериментировать с этой утилитой, спасибо!

Цитата mishem ()
Попробуй вот этот плагин.

Пока не получилось. Может что не так делаю? Запустил Excel, вызвал из него дополнительное окно, затем нажал кнопки 1 и 2 в демо-проекте (что шел с плагином Петра). В списке дочерних окон пусто:
Прикрепления: 6963347.png (75.4 Kb)


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Цитата AS3856 ()
Наверно надо что то подобное ?

Вот эти два параметра, возможно смогут помочь:
Pid - идентификатор процесса, породившего данное окно
Image - название процесса, породившего данное окно

Но пока не знаю как их можно задействовать.
Мне с плагином сподручнее. Но если не получится, то буду экспериментировать с этой утилитой, спасибо!

Цитата mishem ()
Попробуй вот этот плагин.

Пока не получилось. Может что не так делаю? Запустил Excel, вызвал из него дополнительное окно, затем нажал кнопки 1 и 2 в демо-проекте (что шел с плагином Петра). В списке дочерних окон пусто:

Автор - Вадим
Дата добавления - 25 Июня 2017 в 12:00
mishemДата: Вс, 25 Июня 2017, 12:55 | Сообщение # 6
Эксперт форума
Ну это Петра надо ждать.

Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
СообщениеНу это Петра надо ждать.

Автор - mishem
Дата добавления - 25 Июня 2017 в 12:55
AS3856Дата: Вс, 25 Июня 2017, 15:42 | Сообщение # 7
Эксперт форума
Цитата mishem ()
Ну это Петра надо ждать.

или всё же таскать за собой утилиту http://old.computerra.ru/gid/rtfm/system/272855/ - по описанию там вроде есть такие определения --надо пробовать..
 
Сообщение
Цитата mishem ()
Ну это Петра надо ждать.

или всё же таскать за собой утилиту http://old.computerra.ru/gid/rtfm/system/272855/ - по описанию там вроде есть такие определения --надо пробовать..

Автор - AS3856
Дата добавления - 25 Июня 2017 в 15:42
ВадимДата: Вс, 25 Июня 2017, 16:26 | Сообщение # 8
Генератор идей
Андрей, а ты не пробовал эту утилиту в действии?
Я по описанию утилиты пока не могу понять, как получить в переменную эти параметры верхнего окна в системе:

Pid - идентификатор процесса, породившего данное окно
Image - название процесса, породившего данное окно

Цитата mishem ()
Ну это Петра надо ждать.

Да, было бы круто иметь в zmFunctions соответствующую команду...


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
СообщениеАндрей, а ты не пробовал эту утилиту в действии?
Я по описанию утилиты пока не могу понять, как получить в переменную эти параметры верхнего окна в системе:

Pid - идентификатор процесса, породившего данное окно
Image - название процесса, породившего данное окно

Цитата mishem ()
Ну это Петра надо ждать.

Да, было бы круто иметь в zmFunctions соответствующую команду...

Автор - Вадим
Дата добавления - 25 Июня 2017 в 16:26
AS3856Дата: Вс, 25 Июня 2017, 19:39 | Сообщение # 9
Эксперт форума
Результатом использования cmdow.exe будет листинг, содержащий следующие восемь полей
Handle - шестнадцатеричный дескриптор окна
Lev - уровень окна Windows
Pid - идентификатор процесса, породившего данное окно
Window status - статус окна (активное, минимизированное, скрытое, развернутое и т.п.)
Left, Top - координаты окна (выводятся только в случае использования ключей /F и /P)
Width, Height - размер окна в пикселях (выводятся только в случае использования опций /F и /P)
Image - название процесса, породившего данное окно
Caption - название окна

Сам непробовал, по описанию-это всё будет в консоли,- ну а из консоли достать можно и "разложить по полочкам"
 
СообщениеРезультатом использования cmdow.exe будет листинг, содержащий следующие восемь полей
Handle - шестнадцатеричный дескриптор окна
Lev - уровень окна Windows
Pid - идентификатор процесса, породившего данное окно
Window status - статус окна (активное, минимизированное, скрытое, развернутое и т.п.)
Left, Top - координаты окна (выводятся только в случае использования ключей /F и /P)
Width, Height - размер окна в пикселях (выводятся только в случае использования опций /F и /P)
Image - название процесса, породившего данное окно
Caption - название окна

Сам непробовал, по описанию-это всё будет в консоли,- ну а из консоли достать можно и "разложить по полочкам"

Автор - AS3856
Дата добавления - 25 Июня 2017 в 19:39
AS3856Дата: Вс, 25 Июня 2017, 20:40 | Сообщение # 10
Эксперт форума
скачал,попробовал, как говорится" не всё так однозначно"
Как работает эта утилита - вообще непонятно- мелькает окно-и всё.Хотя по описанию. должна быть возможность ввода команд.Ну да ладно- это можно решить скриптом(собственно что и сделал) набросал функцию, на выходе
получаем все данные которыне эта утилита выдаёт. А так как она просто мелькает и нет возможности ввести команды- издатель её пишет что выдаёт инфу обо всех окнах. Вобщем до конца непонял...
Вобщем о результатах- вверху получаем Handle, Lev,Pid и тд
Вадим попробуй разбирайся. Что то если надо изменить или ещё чем помочь - помогу
(полученые результаты пропарсить по статусу(status)(инфа там вверху) ну а потом окно уже искать--вобщем работать надо, пробовать..
В архиве утилита,проект наскору руку,и функция под утилиту.
Прикрепления: 123.rar (15.1 Kb)
 
Сообщениескачал,попробовал, как говорится" не всё так однозначно"
Как работает эта утилита - вообще непонятно- мелькает окно-и всё.Хотя по описанию. должна быть возможность ввода команд.Ну да ладно- это можно решить скриптом(собственно что и сделал) набросал функцию, на выходе
получаем все данные которыне эта утилита выдаёт. А так как она просто мелькает и нет возможности ввести команды- издатель её пишет что выдаёт инфу обо всех окнах. Вобщем до конца непонял...
Вобщем о результатах- вверху получаем Handle, Lev,Pid и тд
Вадим попробуй разбирайся. Что то если надо изменить или ещё чем помочь - помогу
(полученые результаты пропарсить по статусу(status)(инфа там вверху) ну а потом окно уже искать--вобщем работать надо, пробовать..
В архиве утилита,проект наскору руку,и функция под утилиту.

Автор - AS3856
Дата добавления - 25 Июня 2017 в 20:40
ВадимДата: Вс, 25 Июня 2017, 20:48 | Сообщение # 11
Генератор идей
Помучил утилитку. Прикольная, но то, что мне сейчас нужно не может.
Мне нужно проверить - текущее верхнее окно в системе - это окно работы с конкретным файлом или уже с другим.
Объясню зачем, может я не в том направлении копаю...

Нужно реализовать возможность разрешить пользователю в Excel работать только с одним файлом с заранее нам известным именем. Контролировать окна по названиям заголовков в данном случае затруднительно, поскольку в Excel могут быть вызваны разнообразные диалоговые окна, заранее узнать об именах которых нельзя (их слишком много и не известно какими пользователь воспользуется). Вот я и подумал, что, возможно, есть способ узнать о наличии или отсутствии связи верхнего окна с конкретным открытым файлом.

Утилита cmdow этого не может, она просто показывает идентификатор родительского процесса (Pid), но он одинаковый для всех файлов и диалоговых окон открытых в Excel в течение сессии запуска Excel.

Или, может быть, есть способ на время запретить Excel открывать файлы, кроме уже открытого или с заданным именем?


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
СообщениеПомучил утилитку. Прикольная, но то, что мне сейчас нужно не может.
Мне нужно проверить - текущее верхнее окно в системе - это окно работы с конкретным файлом или уже с другим.
Объясню зачем, может я не в том направлении копаю...

Нужно реализовать возможность разрешить пользователю в Excel работать только с одним файлом с заранее нам известным именем. Контролировать окна по названиям заголовков в данном случае затруднительно, поскольку в Excel могут быть вызваны разнообразные диалоговые окна, заранее узнать об именах которых нельзя (их слишком много и не известно какими пользователь воспользуется). Вот я и подумал, что, возможно, есть способ узнать о наличии или отсутствии связи верхнего окна с конкретным открытым файлом.

Утилита cmdow этого не может, она просто показывает идентификатор родительского процесса (Pid), но он одинаковый для всех файлов и диалоговых окон открытых в Excel в течение сессии запуска Excel.

Или, может быть, есть способ на время запретить Excel открывать файлы, кроме уже открытого или с заданным именем?

Автор - Вадим
Дата добавления - 25 Июня 2017 в 20:48
mishemДата: Вс, 25 Июня 2017, 21:18 | Сообщение # 12
Эксперт форума
Цитата Вадим ()
Нужно реализовать возможность разрешить пользователю в Excel работать только с одним файлом с заранее нам известным именем.

Ты хочешь с помощью НБ запретить пользователю работать с файлами в другой программе?
Это не возможно сделать.

Добавлено (25 Июня 2017, 21:18)
---------------------------------------------

Цитата Вадим ()
Контролировать окна по названиям заголовков в данном случае затруднительно, поскольку в Excel могут быть вызваны разнообразные диалоговые окна,

Дело в том, что любая программа имеет как видимые, так и не видимые окна. И не известно в какой момент она откроет то или иное не видимое окно нужное ей для выполнения определенных задач.

Предположим что ты принудительно закроешь это окно, тем самым нарушив функционал программы.

Грубо говоря ты пытаешься написать вирус, сам того не понимая. :)

Если есть желание посмотреть сколько окон открыто при запуске у ексель, качни программу AnVir Task Manager. Установи режим детальной информации. Выбери на вкладке процессы ексель. Перейди ниже на вкладку Окна. И ты все поймешь, ты все увидишь сам... :)


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата Вадим ()
Нужно реализовать возможность разрешить пользователю в Excel работать только с одним файлом с заранее нам известным именем.

Ты хочешь с помощью НБ запретить пользователю работать с файлами в другой программе?
Это не возможно сделать.

Добавлено (25 Июня 2017, 21:18)
---------------------------------------------

Цитата Вадим ()
Контролировать окна по названиям заголовков в данном случае затруднительно, поскольку в Excel могут быть вызваны разнообразные диалоговые окна,

Дело в том, что любая программа имеет как видимые, так и не видимые окна. И не известно в какой момент она откроет то или иное не видимое окно нужное ей для выполнения определенных задач.

Предположим что ты принудительно закроешь это окно, тем самым нарушив функционал программы.

Грубо говоря ты пытаешься написать вирус, сам того не понимая. :)

Если есть желание посмотреть сколько окон открыто при запуске у ексель, качни программу AnVir Task Manager. Установи режим детальной информации. Выбери на вкладке процессы ексель. Перейди ниже на вкладку Окна. И ты все поймешь, ты все увидишь сам... :)

Автор - mishem
Дата добавления - 25 Июня 2017 в 21:18
ВадимДата: Вс, 25 Июня 2017, 21:34 | Сообщение # 13
Генератор идей
Цитата mishem ()
Если есть желание посмотреть сколько окон открыто при запуске у ексель
Это и cmdow показывает, я насчитал почти 200 окон )).
Цитата mishem ()
Это не возможно сделать.
Ну, у меня задача немного проще - дать возможность пользователю работать с одним файлом, не вмешиваясь в работу других программ. Так что это не вирус.

В проекте "браузер-поплавок" я это уже давно сделал, а именно серфинг в браузере удерживается в пределах указанного домена и программа (необушный браузер) оказывается всегда верхней в системе. Если пользователь пытается открыть что-то другое, то необушный браузер помещается наверх и все дела. Но теперь понадобилось, чтобы пользователь мог работать в Excel, но только в одном файле (не мог открывать другие), вот тут-то и случился пока затык ))


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Цитата mishem ()
Если есть желание посмотреть сколько окон открыто при запуске у ексель
Это и cmdow показывает, я насчитал почти 200 окон )).
Цитата mishem ()
Это не возможно сделать.
Ну, у меня задача немного проще - дать возможность пользователю работать с одним файлом, не вмешиваясь в работу других программ. Так что это не вирус.

В проекте "браузер-поплавок" я это уже давно сделал, а именно серфинг в браузере удерживается в пределах указанного домена и программа (необушный браузер) оказывается всегда верхней в системе. Если пользователь пытается открыть что-то другое, то необушный браузер помещается наверх и все дела. Но теперь понадобилось, чтобы пользователь мог работать в Excel, но только в одном файле (не мог открывать другие), вот тут-то и случился пока затык ))

Автор - Вадим
Дата добавления - 25 Июня 2017 в 21:34
mishemДата: Вс, 25 Июня 2017, 21:49 | Сообщение # 14
Эксперт форума
Цитата Вадим ()
В проекте "браузер-поплавок" я это уже давно сделал

Это совсем другое. Ты сделал в своем приложении. Там, где можешь все контролировать.

Сейчас ты хочешь управлять другим приложением. В принципе с помощью плагина и именно для ексель это думаю вполне возможно сделать, но с помощью НБ - нет.

В принципе ексель всегда создает скрытый временный файл рядом с открываемым файлом. Допустим если все файлы находятся в одной папке или где то рядом где мы знаем что они могут находиться, то можно попробовать мониторить папку на появление нового скрытого файла. Как только он появился, значит был открыт другой файл.

Попробуй реестр просмотреть, вполне возможно что эксель может сохранять путь к последнему открытому файлу. Так же там может находится и весь список открытых файлов. ;)

Ну как то так. Не циклись в одном направлении. Чем больше направлений, тем лучше. Ляжешь спать, сон приснится с правильным направлением. :) Как Менделееву. :D


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата Вадим ()
В проекте "браузер-поплавок" я это уже давно сделал

Это совсем другое. Ты сделал в своем приложении. Там, где можешь все контролировать.

Сейчас ты хочешь управлять другим приложением. В принципе с помощью плагина и именно для ексель это думаю вполне возможно сделать, но с помощью НБ - нет.

В принципе ексель всегда создает скрытый временный файл рядом с открываемым файлом. Допустим если все файлы находятся в одной папке или где то рядом где мы знаем что они могут находиться, то можно попробовать мониторить папку на появление нового скрытого файла. Как только он появился, значит был открыт другой файл.

Попробуй реестр просмотреть, вполне возможно что эксель может сохранять путь к последнему открытому файлу. Так же там может находится и весь список открытых файлов. ;)

Ну как то так. Не циклись в одном направлении. Чем больше направлений, тем лучше. Ляжешь спать, сон приснится с правильным направлением. :) Как Менделееву. :D

Автор - mishem
Дата добавления - 25 Июня 2017 в 21:49
ВадимДата: Вс, 25 Июня 2017, 22:02 | Сообщение # 15
Генератор идей
Цитата mishem ()
можно попробовать мониторить папку на появление нового скрытого файла. Как только он появился, значит был открыт другой файл

Цитата mishem ()
Попробуй реестр просмотреть

Спасибо за идеи!!! :)
Попробую!!

Добавлено (25 Июня 2017, 22:02)
---------------------------------------------
Цитата AS3856 ()
мелькает окно-и всё
Если открыть командную строку через кнопку Пуск/Стандартные, то не мелькает (т.е. не закрывается сразу), но вывод удобнее делать в файл все равно.

Я делал так: cmdow.exe /T /F > log.txt

В итоге получил листинг в файл:

Код
Handle   Lev  Pid -Window status- Image    Caption
0x9C00F92 1 63016 Res Act Ena Vis cmd      Командная строка - cmdow.exe  /T /F
0x04212C6 1 46736 Res Ina Ena Vis explorer V
0x00715E8 1 55852 Res Ina Ena Vis notepad  1.txt — Блокнот
0x09C0C50 1 51688 Res Ina Ena Vis NeoBook  NeoBook 5
0x07C1046 1 28112 Max Ina Ena Vis firefox  Проверить наличие связи верхнего окна с открытым файлом - Форум NeoBook - Mozilla Firefox


Но, если я правильно понял, cmdow не может показать наличие или отсутствие связи окна с каким-либо файлом.


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)

Сообщение отредактировано
Вадим - Вс, 25 Июня 2017, 22:03
 
Сообщение
Цитата mishem ()
можно попробовать мониторить папку на появление нового скрытого файла. Как только он появился, значит был открыт другой файл

Цитата mishem ()
Попробуй реестр просмотреть

Спасибо за идеи!!! :)
Попробую!!

Добавлено (25 Июня 2017, 22:02)
---------------------------------------------
Цитата AS3856 ()
мелькает окно-и всё
Если открыть командную строку через кнопку Пуск/Стандартные, то не мелькает (т.е. не закрывается сразу), но вывод удобнее делать в файл все равно.

Я делал так: cmdow.exe /T /F > log.txt

В итоге получил листинг в файл:

Код
Handle   Lev  Pid -Window status- Image    Caption
0x9C00F92 1 63016 Res Act Ena Vis cmd      Командная строка - cmdow.exe  /T /F
0x04212C6 1 46736 Res Ina Ena Vis explorer V
0x00715E8 1 55852 Res Ina Ena Vis notepad  1.txt — Блокнот
0x09C0C50 1 51688 Res Ina Ena Vis NeoBook  NeoBook 5
0x07C1046 1 28112 Max Ina Ena Vis firefox  Проверить наличие связи верхнего окна с открытым файлом - Форум NeoBook - Mozilla Firefox


Но, если я правильно понял, cmdow не может показать наличие или отсутствие связи окна с каким-либо файлом.

Автор - Вадим
Дата добавления - 25 Июня 2017 в 22:02
AS3856Дата: Вс, 25 Июня 2017, 23:02 | Сообщение # 16
Эксперт форума
есть ещё метод - опять же с помощью vbs (написать функцию) но для этого прежде зарегистрировать библиотеку dynwrapx.dll ну а затем вызов функций Win 32 API.В принципе метод достаточно быстро можно реализовать. Можно почитать тут http://script-coding.com/forum/viewtopic.php?id=7811
и тут http://script-coding.com/dynwrapx.html.
Но придётся установить и зарегить библиотеку на каждом компе где будет использована ваша программа
-опять же делается легко одним нажатием кнопки из проекта необука
есть также варианты на С и делфи- но в силу своей малограмотностьи я их нерассматриваю.
Надо звать Петра redface

Добавлено (25 Июня 2017, 22:45)
---------------------------------------------

Цитата Вадим ()
Если открыть командную строку через кнопку Пуск/Стандартные, то не мелькает (т.е. не закрывается сразу), но вывод удобнее делать в файл все равно.

пока нескопировал в C:\Windows\System32 так и продолжало мелькать.

Добавлено (25 Июня 2017, 23:02)
---------------------------------------------
Вадим посмотри на плагин RACAutoIt3x. Мне кажется там есть то что ты ищешь .
RAC_WinGetState получение параметров окна(существует,видимо,активно доступно.)
Верхнее окно наверно и является активным, нижнее же получается неактивно..
Вобщем можно в эту сторону ковырнуть задачу..

 
Сообщениеесть ещё метод - опять же с помощью vbs (написать функцию) но для этого прежде зарегистрировать библиотеку dynwrapx.dll ну а затем вызов функций Win 32 API.В принципе метод достаточно быстро можно реализовать. Можно почитать тут http://script-coding.com/forum/viewtopic.php?id=7811
и тут http://script-coding.com/dynwrapx.html.
Но придётся установить и зарегить библиотеку на каждом компе где будет использована ваша программа
-опять же делается легко одним нажатием кнопки из проекта необука
есть также варианты на С и делфи- но в силу своей малограмотностьи я их нерассматриваю.
Надо звать Петра redface

Добавлено (25 Июня 2017, 22:45)
---------------------------------------------

Цитата Вадим ()
Если открыть командную строку через кнопку Пуск/Стандартные, то не мелькает (т.е. не закрывается сразу), но вывод удобнее делать в файл все равно.

пока нескопировал в C:\Windows\System32 так и продолжало мелькать.

Добавлено (25 Июня 2017, 23:02)
---------------------------------------------
Вадим посмотри на плагин RACAutoIt3x. Мне кажется там есть то что ты ищешь .
RAC_WinGetState получение параметров окна(существует,видимо,активно доступно.)
Верхнее окно наверно и является активным, нижнее же получается неактивно..
Вобщем можно в эту сторону ковырнуть задачу..


Автор - AS3856
Дата добавления - 25 Июня 2017 в 23:02
AS3856Дата: Вс, 25 Июня 2017, 23:08 | Сообщение # 17
Эксперт форума
русская справка на плагин RACAutoIt3x
Прикрепления: russian-v3.0.10.zip (408.9 Kb)
 
Сообщениерусская справка на плагин RACAutoIt3x

Автор - AS3856
Дата добавления - 25 Июня 2017 в 23:08
PeterДата: Пн, 26 Июня 2017, 03:35 | Сообщение # 18
Админ NeoBook
Цитата Вадим ()
В списке дочерних окон пусто:

И будет пусто, т.к. это - не дочернее окно, а ...
В общем, попробуй просто "чудом в перьях" под названием zmFunctions (что-то там типа FindWindow было).
Думаю будешь удивлен.
;)

В принципе, можно отыскать любое окно (теоретически), но, так и не ясна задача....
Это судя по указанному выше скрину.
Предположим(!) - окно нашли, а дальше-то что?

Цитата Вадим ()
Например, имеем открытый файл в программе Excel. Как узнать, что верхнее окно в системе (которое вызвал пользователь) относится именно к данному файлу (например, могут быть окна: "Формат ячеек", "Шрифт" и т.д., и т.п.)?

Боюсь, никак.
Только по заголовку окна (если там указано имя файла) и/или его классу.
Можно отследить к какому процессу (приложению) принадлежит окно, но вот в каком именно окне какой-то программы отображен тот или иной конкретный документ, сильно сомневаюсь.
Во всяком случае, на текущий момент.
Хотя...
Всякое бывает...



- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Цитата Вадим ()
В списке дочерних окон пусто:

И будет пусто, т.к. это - не дочернее окно, а ...
В общем, попробуй просто "чудом в перьях" под названием zmFunctions (что-то там типа FindWindow было).
Думаю будешь удивлен.
;)

В принципе, можно отыскать любое окно (теоретически), но, так и не ясна задача....
Это судя по указанному выше скрину.
Предположим(!) - окно нашли, а дальше-то что?

Цитата Вадим ()
Например, имеем открытый файл в программе Excel. Как узнать, что верхнее окно в системе (которое вызвал пользователь) относится именно к данному файлу (например, могут быть окна: "Формат ячеек", "Шрифт" и т.д., и т.п.)?

Боюсь, никак.
Только по заголовку окна (если там указано имя файла) и/или его классу.
Можно отследить к какому процессу (приложению) принадлежит окно, но вот в каком именно окне какой-то программы отображен тот или иной конкретный документ, сильно сомневаюсь.
Во всяком случае, на текущий момент.
Хотя...
Всякое бывает...


Автор - Peter
Дата добавления - 26 Июня 2017 в 03:35
ВадимДата: Пн, 26 Июня 2017, 09:53 | Сообщение # 19
Генератор идей
Цитата Peter ()
окно нашли, а дальше-то что?

Проясню свою задумку. Цель проекта - обеспечить корректную сдачу экзамена (работу с тестом онлайн и файлом Excel оффлайн). Студенты приходят в компьютерный класс, садятся за компьютеры - перед ними уже открыт мой проект - необушный браузер (проект "Браузер-поплавок"). В браузере уже реализована возможность ходить только по ссылкам в пределах одного домена (университетский сервер тестирования онлайн). Кроме того, если студент открывает любую другую программу (файл), то Браузер-поплавок (обнаружив не разрешенный заголовок окна) оказывается сверху и тем самым не даёт мухлёвщику воспользоваться другими ресурсами на компьютере. Однако, в этом году, для сдачи экзамена понадобилось ещё разрешить пользователю работать с файлом Excel, в котором он должен решить задачу. Задач много и решить их можно по-разному, используя разные функции и, соответственно, вызывая разные диалоговые окна. Вот тут и случился у меня затык - мониторинг заголовков окон в прежнем виде не решает задачу.

Цитата AS3856 ()
пока не скопировал в C:\Windows\System32 так и продолжало мелькать.
Я поместил в папку C:\Windows
Цитата AS3856 ()
есть ещё метод - опять же с помощью vbs
Пока для меня это темный лес, к моему сожалению. За ссылки - спасибо!
Цитата AS3856 ()
Вадим посмотри на плагин RACAutoIt3x.
Смотрел, там нет подходящих функций.
Цитата AS3856 ()
получение параметров окна (существует, видимо, активно, доступно.)
Всё это, как и возможность получить дескриптор верхнего окна, есть в zmFunctions.
Цитата Peter ()
Можно отследить к какому процессу (приложению) принадлежит окно
Да, этот Pid и показывает утилита, которую Андрей нашел. Но, к сожалению, для всех открытых файлов этот идентификатор будет одинаковым.
Цитата Peter ()
что-то там типа FindWindow было
Да, очень полезная команда! Я в нескольких проектах использую ("Браузер-поплавок", "Chronometer" и др.)! Удобно, когда заранее знаешь заголовок и что далее делать. Как раз проект "Браузер-поплавок" и обновляю.
Цитата Peter ()
Только по заголовку окна (если там указано имя файла) и/или его классу.
Название класса ничего не даёт, очень уж их много. А вот по заголовку наверное можно все-таки попробовать обнаружить, то не принадлежность окна к файлу, а в принципе - открылся ли в Excel ещё один файл. Кажется это можно сделать. Попробую! Как предлагает mishem, попробовать другим способом мониторить факт открытия других файлов.


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Цитата Peter ()
окно нашли, а дальше-то что?

Проясню свою задумку. Цель проекта - обеспечить корректную сдачу экзамена (работу с тестом онлайн и файлом Excel оффлайн). Студенты приходят в компьютерный класс, садятся за компьютеры - перед ними уже открыт мой проект - необушный браузер (проект "Браузер-поплавок"). В браузере уже реализована возможность ходить только по ссылкам в пределах одного домена (университетский сервер тестирования онлайн). Кроме того, если студент открывает любую другую программу (файл), то Браузер-поплавок (обнаружив не разрешенный заголовок окна) оказывается сверху и тем самым не даёт мухлёвщику воспользоваться другими ресурсами на компьютере. Однако, в этом году, для сдачи экзамена понадобилось ещё разрешить пользователю работать с файлом Excel, в котором он должен решить задачу. Задач много и решить их можно по-разному, используя разные функции и, соответственно, вызывая разные диалоговые окна. Вот тут и случился у меня затык - мониторинг заголовков окон в прежнем виде не решает задачу.

Цитата AS3856 ()
пока не скопировал в C:\Windows\System32 так и продолжало мелькать.
Я поместил в папку C:\Windows
Цитата AS3856 ()
есть ещё метод - опять же с помощью vbs
Пока для меня это темный лес, к моему сожалению. За ссылки - спасибо!
Цитата AS3856 ()
Вадим посмотри на плагин RACAutoIt3x.
Смотрел, там нет подходящих функций.
Цитата AS3856 ()
получение параметров окна (существует, видимо, активно, доступно.)
Всё это, как и возможность получить дескриптор верхнего окна, есть в zmFunctions.
Цитата Peter ()
Можно отследить к какому процессу (приложению) принадлежит окно
Да, этот Pid и показывает утилита, которую Андрей нашел. Но, к сожалению, для всех открытых файлов этот идентификатор будет одинаковым.
Цитата Peter ()
что-то там типа FindWindow было
Да, очень полезная команда! Я в нескольких проектах использую ("Браузер-поплавок", "Chronometer" и др.)! Удобно, когда заранее знаешь заголовок и что далее делать. Как раз проект "Браузер-поплавок" и обновляю.
Цитата Peter ()
Только по заголовку окна (если там указано имя файла) и/или его классу.
Название класса ничего не даёт, очень уж их много. А вот по заголовку наверное можно все-таки попробовать обнаружить, то не принадлежность окна к файлу, а в принципе - открылся ли в Excel ещё один файл. Кажется это можно сделать. Попробую! Как предлагает mishem, попробовать другим способом мониторить факт открытия других файлов.

Автор - Вадим
Дата добавления - 26 Июня 2017 в 09:53
mishemДата: Пн, 26 Июня 2017, 11:04 | Сообщение # 20
Эксперт форума
Ты можешь мониторить заголовок окна открытия нового документа который отображается для выбора документа. Можно мониторить по заголовку, у меня заголовок отображается типа "Лист Microsoft Office Excel.xlsx - Microsoft Excel", "Новый.xlsx - Microsoft Excel" и т.д. Т.е. в заголовке всегда присутствует "- Microsoft Excel" и перед ним название файла.

Если честно, я не понимаю саму проблему.

Добавлено (26 Июня 2017, 11:04)
---------------------------------------------

Цитата Вадим ()
Смотрел, там нет подходящих функций.

Там есть подходящая функция, поиск окна по части заголовка. Команда в плагине Петра этого не умеет делать.
В данном случае она тебе может помочь искать все открытые документы в ексель по части заголовка "- Microsoft Excel", а далее с помощью команд плагина Петра ты можешь определить к какому файлу относятся все открытые документы.

Как то так...


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
СообщениеТы можешь мониторить заголовок окна открытия нового документа который отображается для выбора документа. Можно мониторить по заголовку, у меня заголовок отображается типа "Лист Microsoft Office Excel.xlsx - Microsoft Excel", "Новый.xlsx - Microsoft Excel" и т.д. Т.е. в заголовке всегда присутствует "- Microsoft Excel" и перед ним название файла.

Если честно, я не понимаю саму проблему.

Добавлено (26 Июня 2017, 11:04)
---------------------------------------------

Цитата Вадим ()
Смотрел, там нет подходящих функций.

Там есть подходящая функция, поиск окна по части заголовка. Команда в плагине Петра этого не умеет делать.
В данном случае она тебе может помочь искать все открытые документы в ексель по части заголовка "- Microsoft Excel", а далее с помощью команд плагина Петра ты можешь определить к какому файлу относятся все открытые документы.

Как то так...

Автор - mishem
Дата добавления - 26 Июня 2017 в 11:04
ВадимДата: Пн, 26 Июня 2017, 11:23 | Сообщение # 21
Генератор идей
Цитата mishem ()
Можно мониторить по заголовку
сейчас так и пробую сделать (только у меня заголовок не содержит слова Microsoft. Хорошо, что хоть у тебя это увидел - не знаю как в компьютерном классе отобразится):

Код
zmGetForegroundWindow "[HWND]"
zmGetWindowTitle "[HWND]" "[TitleC]" "[TitleH]"
StrReplace "[TitleH]" "[#34]" "" "[TitleH]" ""
SearchStr ".xlsx - Excel" "[TitleH]" "[dr1ExcelYes]" ""
SearchStr ".xlsx - Microsoft Excel" "[TitleH]" "[dr2ExcelYes]" ""
IfEx "[dr1ExcelYes] <> 0 OR [dr2ExcelYes] <> 0"
  IfEx "[TitleH] <> [#34]Экзамен.xlsx - Excel[#34] AND [TitleH] <> [#34]Экзамен.xlsx - Microsoft Excel[#34]"
     GoSub "Ahtung"
  EndIF
EndIF


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Цитата mishem ()
Можно мониторить по заголовку
сейчас так и пробую сделать (только у меня заголовок не содержит слова Microsoft. Хорошо, что хоть у тебя это увидел - не знаю как в компьютерном классе отобразится):

Код
zmGetForegroundWindow "[HWND]"
zmGetWindowTitle "[HWND]" "[TitleC]" "[TitleH]"
StrReplace "[TitleH]" "[#34]" "" "[TitleH]" ""
SearchStr ".xlsx - Excel" "[TitleH]" "[dr1ExcelYes]" ""
SearchStr ".xlsx - Microsoft Excel" "[TitleH]" "[dr2ExcelYes]" ""
IfEx "[dr1ExcelYes] <> 0 OR [dr2ExcelYes] <> 0"
  IfEx "[TitleH] <> [#34]Экзамен.xlsx - Excel[#34] AND [TitleH] <> [#34]Экзамен.xlsx - Microsoft Excel[#34]"
     GoSub "Ahtung"
  EndIF
EndIF

Автор - Вадим
Дата добавления - 26 Июня 2017 в 11:23
AS3856Дата: Пн, 26 Июня 2017, 12:36 | Сообщение # 22
Эксперт форума
Может проще мониторить(циклом секунд в 10-15) все открытые окна ? И при появлении нового окна далее уже и действие произзводить. вообще 2 разные программы запускать для многопоточности-= ну а при обнаружении постороннего окна - посыл в другую(необушную)программу .

Добавлено (26 Июня 2017, 12:36)
---------------------------------------------
-Ну а про RACAutoIt3x - любой плагин можно применять и как угодно извращаться лишь бы это привело к результату

 
СообщениеМожет проще мониторить(циклом секунд в 10-15) все открытые окна ? И при появлении нового окна далее уже и действие произзводить. вообще 2 разные программы запускать для многопоточности-= ну а при обнаружении постороннего окна - посыл в другую(необушную)программу .

Добавлено (26 Июня 2017, 12:36)
---------------------------------------------
-Ну а про RACAutoIt3x - любой плагин можно применять и как угодно извращаться лишь бы это привело к результату


Автор - AS3856
Дата добавления - 26 Июня 2017 в 12:36
ВадимДата: Пн, 26 Июня 2017, 17:48 | Сообщение # 23
Генератор идей
Цитата AS3856 ()
Может проще мониторить(циклом секунд в 10-15) все открытые окна ?
Я так и делаю, только циклом через четверть секунды.

Цитата AS3856 ()
2 разные программы запускать для многопоточности
В данном случае это уже избыточно круто. И так работает. :)

В общем, я изменил логику работы приложения. Было: что не разрешено, то запрещено. А теперь наоборот: что не запрещено, то разрешено. Факт открытия других файлов Excel мониторю по заголовку окна, как показал постом выше, а другие окна отслеживаю просто используя черный список, в который внес все типичные названия окон (точнее элементы их названий), которыми может попытаться воспользоваться нечестный пользователь (включая Проводник, Меню Пуск, портабельные браузеры, офисные пакеты, просмотрщики файлов, программы умеющие убивать процессы и т.п.).

Т.е. свою задачу я худо-бедно решил (студенту будет проще выучить, чем пытаться мухлевать), хотя я и не нашел способа отследить связь верхнего (в системе) окна с конкретным открытым файлом.


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Цитата AS3856 ()
Может проще мониторить(циклом секунд в 10-15) все открытые окна ?
Я так и делаю, только циклом через четверть секунды.

Цитата AS3856 ()
2 разные программы запускать для многопоточности
В данном случае это уже избыточно круто. И так работает. :)

В общем, я изменил логику работы приложения. Было: что не разрешено, то запрещено. А теперь наоборот: что не запрещено, то разрешено. Факт открытия других файлов Excel мониторю по заголовку окна, как показал постом выше, а другие окна отслеживаю просто используя черный список, в который внес все типичные названия окон (точнее элементы их названий), которыми может попытаться воспользоваться нечестный пользователь (включая Проводник, Меню Пуск, портабельные браузеры, офисные пакеты, просмотрщики файлов, программы умеющие убивать процессы и т.п.).

Т.е. свою задачу я худо-бедно решил (студенту будет проще выучить, чем пытаться мухлевать), хотя я и не нашел способа отследить связь верхнего (в системе) окна с конкретным открытым файлом.

Автор - Вадим
Дата добавления - 26 Июня 2017 в 17:48
PeterДата: Пн, 26 Июня 2017, 18:10 | Сообщение # 24
Админ NeoBook
Цитата mishem ()
поиск окна по части заголовка. Команда в плагине Петра этого не умеет делать

:)
Ты в этом уверен?
Упомянутая может и не умеет, но ведь есть и другая....
;)

Цитата Вадим ()
Т.е. свою задачу я худо-бедно решил

Значит вопрос закрыт?
Ну и ладушки.

Цитата Вадим ()
студенту будет проще выучить, чем пытаться мухлевать)

И это говорит человек, который сам когда-то был студентом.
:)

Цитата AS3856 ()
а про RACAutoIt3x - любой плагин можно применять и как угодно извращаться лишь бы это привело к результату

Я не про применение плагина, а про саму идею (и реализацию) его создания.
Это то же самое как создать плагин для выполнения необушных скриптов, вместо того, чтобы вызывать их прямо из кода NB.
:D


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Цитата mishem ()
поиск окна по части заголовка. Команда в плагине Петра этого не умеет делать

:)
Ты в этом уверен?
Упомянутая может и не умеет, но ведь есть и другая....
;)

Цитата Вадим ()
Т.е. свою задачу я худо-бедно решил

Значит вопрос закрыт?
Ну и ладушки.

Цитата Вадим ()
студенту будет проще выучить, чем пытаться мухлевать)

И это говорит человек, который сам когда-то был студентом.
:)

Цитата AS3856 ()
а про RACAutoIt3x - любой плагин можно применять и как угодно извращаться лишь бы это привело к результату

Я не про применение плагина, а про саму идею (и реализацию) его создания.
Это то же самое как создать плагин для выполнения необушных скриптов, вместо того, чтобы вызывать их прямо из кода NB.
:D

Автор - Peter
Дата добавления - 26 Июня 2017 в 18:10
mishemДата: Пн, 26 Июня 2017, 18:40 | Сообщение # 25
Эксперт форума
Цитата Peter ()
Упомянутая может и не умеет, но ведь есть и другая....

Я про упомянутую говорил. Помню что вроде бы с помощью твоего плагина искал окна по части заголовка, но с наскока не нашел такую.

Цитата Вадим ()
SearchStr ".xlsx - Excel" "[TitleH]" "[dr1ExcelYes]" ""
SearchStr ".xlsx - Microsoft Excel" "[TitleH]" "[dr2ExcelYes]" ""


Вадим, у Excel есть и другие расширения. ;)

Добавлено (26 Июня 2017, 18:34)
---------------------------------------------

Цитата Peter ()
Это то же самое как создать плагин для выполнения необушных скриптов, вместо того, чтобы вызывать их прямо из кода NB.

Есть такой плагин для создания подобных плагинов. Кстати не плохая идея но так смотрю никто не пользуется этим плагином.

Создавать плагины с необушным скриптом даже замечательная идея. Можно делать что то типа библиотек dll, только внутри скрипт необук. Те же самые функции, только в виде библиотеки с зщищенным от изменений скриптом.

Добавлено (26 Июня 2017, 18:40)
---------------------------------------------



Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата Peter ()
Упомянутая может и не умеет, но ведь есть и другая....

Я про упомянутую говорил. Помню что вроде бы с помощью твоего плагина искал окна по части заголовка, но с наскока не нашел такую.

Цитата Вадим ()
SearchStr ".xlsx - Excel" "[TitleH]" "[dr1ExcelYes]" ""
SearchStr ".xlsx - Microsoft Excel" "[TitleH]" "[dr2ExcelYes]" ""


Вадим, у Excel есть и другие расширения. ;)

Добавлено (26 Июня 2017, 18:34)
---------------------------------------------

Цитата Peter ()
Это то же самое как создать плагин для выполнения необушных скриптов, вместо того, чтобы вызывать их прямо из кода NB.

Есть такой плагин для создания подобных плагинов. Кстати не плохая идея но так смотрю никто не пользуется этим плагином.

Создавать плагины с необушным скриптом даже замечательная идея. Можно делать что то типа библиотек dll, только внутри скрипт необук. Те же самые функции, только в виде библиотеки с зщищенным от изменений скриптом.

Добавлено (26 Июня 2017, 18:40)
---------------------------------------------


Автор - mishem
Дата добавления - 26 Июня 2017 в 18:40
PeterДата: Пн, 26 Июня 2017, 18:55 | Сообщение # 26
Админ NeoBook


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение

Автор - Peter
Дата добавления - 26 Июня 2017 в 18:55
ВадимДата: Пн, 26 Июня 2017, 20:01 | Сообщение # 27
Генератор идей
Цитата mishem ()
Вадим, у Excel есть и другие расширения.
Этих достаточно, там свежая версия Excel и файл будет извлечен из проги во время её загрузки, так что расширение мне известно заранее.



Цитата Peter ()
Значит вопрос закрыт?
Вопрос как раз открыт. Я просто нашел выход (для текущих прагматических целей), хотя он заведомо неполный и далеко не изящный.


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Цитата mishem ()
Вадим, у Excel есть и другие расширения.
Этих достаточно, там свежая версия Excel и файл будет извлечен из проги во время её загрузки, так что расширение мне известно заранее.



Цитата Peter ()
Значит вопрос закрыт?
Вопрос как раз открыт. Я просто нашел выход (для текущих прагматических целей), хотя он заведомо неполный и далеко не изящный.

Автор - Вадим
Дата добавления - 26 Июня 2017 в 20:01
PeterДата: Пн, 26 Июня 2017, 20:33 | Сообщение # 28
Админ NeoBook


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение

Автор - Peter
Дата добавления - 26 Июня 2017 в 20:33
ВадимДата: Пн, 26 Июня 2017, 20:48 | Сообщение # 29
Генератор идей


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение

Автор - Вадим
Дата добавления - 26 Июня 2017 в 20:48
mishemДата: Пн, 26 Июня 2017, 20:50 | Сообщение # 30
Эксперт форума


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение

Автор - mishem
Дата добавления - 26 Июня 2017 в 20:50
  • Страница 1 из 5
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск: