uploading file via flash button

stefaneo

Client
Регистрация
07.03.2010
Сообщения
14
Благодарностей
2
Баллы
3
Попробовал такое сделать с soundcloud.com/settings, итог плачевный - загружает файл на сервер только 1 раз, потом нужно перезагружать ZP для того, что бы он снова регил нормально. Пробовал разные координаты - не находит окно(
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113

stas11

Client
Регистрация
31.03.2013
Сообщения
188
Благодарностей
5
Баллы
18
Summary: Mouse click requires project instances to work in visible mode. I am pretty sure clicking on element by ID would not require this.

So yes - it works, but there were some errors (only with multithreading) because the dialog box from forms aren't properly locked. So if 2 threads are there it is overlaping is possible. Especially because there it takes 20-30 miliseconds for the dialog box from to become focused windows. Meanwhile, it could happen that something else pop-ups so the file patch is filled in another form.

I solved the problem by writing in a txt file that file dialog box is open and then I make all other thread except current waiting till the proccess finishes. When the process is finished i write in the txt file that process is finished and then all the other threads can start to work. I add a random pause in milliseconds to avoid the case when two thread get into process at the same time.

It is a bit slower but the success rate is 99.8% (923 of 925) per my testing.
Из того что сумел перевести, понял что человек столкнулся с такой же проблемой как и я, но не могу понять как он ее решил.
При многопотоке, в фоновом режиме не нажимается кнопка добавить картинку, но если нажать на просмотр в Зеннопостере - тогда выгрузка происходит картинок. Или если запустить шаблон в ПроджектМейкер в реальном времени, тогда цикл нормально работает и загружает фотки из списка.
Помогите решить проблему. Спасибо.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Билд последний?
 

stas11

Client
Регистрация
31.03.2013
Сообщения
188
Благодарностей
5
Баллы
18
ZennoPosterStandard-RU-v5.0.4.2
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Тестируйте на последнем, если проблемы будут, сообщайте. С шаблоном и как воспроизвести, чтобы я мог передать разработчикам.
 

stas11

Client
Регистрация
31.03.2013
Сообщения
188
Благодарностей
5
Баллы
18
на последнем нет возможности проверить можно как-то решить эту проблему?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Ну вдруг ошибки при сборке всплыли, нужно на последнем подтверждать проблему. Попробуйте на демке последней прогнать, можно на виртуалку поставить.
 

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 596
Благодарностей
1 014
Баллы
113
Я отвечу за автора - проблема действительно существует... у меня 5 или 6 проектов таких вот кликов по флешу и блин в 2х или 3х из них работает _ТОЛЬКО_ если поток показан!!!
До этого не работало вообще нигде (только в 8, ранее писал об этом) - поставил обновления .NET или как его там заработало в 7 :-)
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Да, windows может оптимизировать свое поведения для невидимых окон.
Практических советов в этом случае нет. Если шаблон специфический работает только при открытых инстансах, держите их открытыми.
 

stas11

Client
Регистрация
31.03.2013
Сообщения
188
Благодарностей
5
Баллы
18
Почему-то перестала работать С++ код в Зеннопостер. В PM работает нормально.
Открывается окно чтоб ставить картинку, но не прописывается путь к картинке fileToUpload

lock(SyncObjects.InputSyncer)
{
string dialogCaption = project.Variables["caption"].Value;
string buttonText = project.Variables["buttonText"].Value;
string fileToUpload = project.Variables["fileToUpload"].Value;
System.Threading.Thread.Sleep(2000);
Emulator.ActiveWindow(dialogCaption, true);
System.Threading.Thread.Sleep(2000);
var result = Emulator.SendText(dialogCaption, 240, 368, fileToUpload);
System.Threading.Thread.Sleep(2000);
Emulator.ActiveWindow(dialogCaption, true);
return Emulator.ButtonClick(dialogCaption, buttonText);
}

что может быть?
 

stas11

Client
Регистрация
31.03.2013
Сообщения
188
Благодарностей
5
Баллы
18
Подскажите в чем проблема? работало и перестало.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
А с показанными инстансами работает в ZP?
 

stas11

Client
Регистрация
31.03.2013
Сообщения
188
Благодарностей
5
Баллы
18
Ни так ни так не работает (только в проджекмейкер работает). Все идет нормально до момента выгрузки фотографии. Открывается окно загрузки фото, но путь не прописывается и шаблон замирает на этом.
Все работало прекрасно, но в момент перестало.
Можете проверить у себя на работоспособность это С++

lock(SyncObjects.InputSyncer)
{
string dialogCaption = project.Variables["caption"].Value;
string buttonText = project.Variables["buttonText"].Value;
string fileToUpload = project.Variables["fileToUpload"].Value;
System.Threading.Thread.Sleep(2000);
Emulator.ActiveWindow(dialogCaption, true);
System.Threading.Thread.Sleep(2000);
var result = Emulator.SendText(dialogCaption, 240, 368, fileToUpload);
System.Threading.Thread.Sleep(2000);
Emulator.ActiveWindow(dialogCaption, true);
return Emulator.ButtonClick(dialogCaption, buttonText);
}
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
У меня есть сильное подозрение что координаты http://joxi.ru/zdRMU_3JTJCSAcWNBG0 порядком отличаются в зеннопостере, в отличие от координат в проджект мейкере) я почти уверен, что если вы уменьшите окно в Пм, то у вас этот код и там работать не будет.
 

stas11

Client
Регистрация
31.03.2013
Сообщения
188
Благодарностей
5
Баллы
18
А за что эти координаты отвечают? За поле куда вводить путь картинки?
что тогда делать, чтоб назначить верный?
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
я бы на вашем месте бы в начало выполнения добавил сниппет с кодом
Код:
instance.SetWindowSize(%ширина%, %высота%);
И таким образом подогнал бы размер инстанса в ЗП к размеру инстанца в ПМ
Ну это актуально, если речь еще про флеш, если все таки про обычную страницу, то можно воспользоваться
topinbrowser
и
leftinbrowser
и получить их конкретные значения и их подставлять в качестве координат.
 

stas11

Client
Регистрация
31.03.2013
Сообщения
188
Благодарностей
5
Баллы
18
немного запутался "240, 368" - это координаты чего именно? окна выбора картинки как я понимаю?
и как мне получить этого окна в постере?
 

stas11

Client
Регистрация
31.03.2013
Сообщения
188
Благодарностей
5
Баллы
18
Спасибо! Разобрался
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
ээээ велкам))) но вообще на русской части форума нас конечно больше)))))
 

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 596
Благодарностей
1 014
Баллы
113
задам в другой ветке
 
Регистрация
16.05.2014
Сообщения
145
Благодарностей
23
Баллы
18
Summary: Mouse click requires project instances to work in visible mode. I am pretty sure clicking on element by ID would not require this.

So yes - it works, but there were some errors (only with multithreading) because the dialog box from forms aren't properly locked. So if 2 threads are there it is overlaping is possible. Especially because there it takes 20-30 miliseconds for the dialog box from to become focused windows. Meanwhile, it could happen that something else pop-ups so the file patch is filled in another form.

I solved the problem by writing in a txt file that file dialog box is open and then I make all other thread except current waiting till the proccess finishes. When the process is finished i write in the txt file that process is finished and then all the other threads can start to work. I add a random pause in milliseconds to avoid the case when two thread get into process at the same time.

It is a bit slower but the success rate is 99.8% (923 of 925) per my testing.

Can you send sample project?

Or maybe someone found a better solution for multithreading?
 

zenfreak

Client
Регистрация
21.08.2013
Сообщения
249
Благодарностей
12
Баллы
18
Регистрация
16.05.2014
Сообщения
145
Благодарностей
23
Баллы
18
  • Спасибо
Реакции: rostonix

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)