Board.KolibriOS.org

Official KolibriOS board
It is currently Wed Aug 21, 2019 11:04 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 26 posts ]  Go to page 1 2 Next
Author Message
PostPosted: Fri Jun 04, 2010 6:19 am 
Offline
User avatar

Joined: Mon Feb 09, 2009 4:13 am
Posts: 445
Pipetka v0.0

Pipetka - программа, для взятия цвета пикселя с экрана. Прогой пользоваться можно, но она работает через жопу, так что сами понимаете. :D
Внимание! программа совсем не оптимизирована.


Attachments:
Screenshot.png
Screenshot.png [ 2.45 KiB | Viewed 3815 times ]
Pipetka v0.0.7z [9.82 KiB]
Downloaded 210 times

_________________
\ Маузер в руке, Путин – на крюке! \ Путину – клизму! Смерть капитализму! \ Путин – параша, победа будет наша!\
\ Застрели буржуя в спину! Он не лучше чем скотина! \
Image
Top
   
PostPosted: Fri Jun 04, 2010 9:59 am 
А в чем собственно это "работает через жопу" выражается?
Самокритика хорошо, но не стоит умалять своего достоинства.


Top
   
PostPosted: Fri Jun 04, 2010 2:32 pm 
Offline
User avatar

Joined: Mon Feb 09, 2009 4:13 am
Posts: 445
Дело в том, что программа иногда выдаёт чёрный цвет в квадрате, в то время когда мышь находится на каком ни-будь пикселе иного цвета и сильное мерцание, меня это очень сильно раздражает. Не могу понять в чём проблема. Раньше конечно мерцание было ещё больше, но все таки мне это не нравится, не люблю когда что-то плохо работает. :(

_________________
\ Маузер в руке, Путин – на крюке! \ Путину – клизму! Смерть капитализму! \ Путин – параша, победа будет наша!\
\ Застрели буржуя в спину! Он не лучше чем скотина! \
Image


Top
   
PostPosted: Sun Jun 06, 2010 2:16 am 
Offline
User avatar

Joined: Mon Feb 09, 2009 4:13 am
Posts: 445
Pipetka v0.1

Вышла новая версия. :D

Исправления:
1. При наведении курсора мышки на окно программы, считывался цвет пиксела с экрана, из-за чего возникало лишнее мерцание мыши.
2. Примерно тоже самое, и с окном "ABOUT". Теперь когда окно открыто, считывания цвет пиксела, не происходит.

Добавлено:
1.Показ координат положения стрелки мыши.
2.Для уменьшения мерцания, добавлен мелкий код с алгоритмом при котором, если новый и старый цвета пиксела одинаковые, то перерисовки данных в окне не происходит.


Attachments:
Screenshot.png
Screenshot.png [ 3.85 KiB | Viewed 3757 times ]
Pipetka v0.1.7z [11.77 KiB]
Downloaded 152 times

_________________
\ Маузер в руке, Путин – на крюке! \ Путину – клизму! Смерть капитализму! \ Путин – параша, победа будет наша!\
\ Застрели буржуя в спину! Он не лучше чем скотина! \
Image
Top
   
PostPosted: Sun Jun 06, 2010 2:42 am 
Offline
User avatar

Joined: Wed Jan 27, 2010 10:59 am
Posts: 269
Отличная работа :) Добавлю лишь два замечания:
1) Если навести курсор в самый верх экрана (нулевой пиксель по Y) программа грохается.
2) Когда окно не активно, оно по-прежнему показывает цвет. Имхо, надо сделать проверку на активность/неактивность окна Pipetk'и и если окно не активно не реагировать на движение мыши.

_________________
ушёл...


Top
   
PostPosted: Sun Jun 06, 2010 10:47 am 
Вот такой вот код можно применить для проверки того что окно находится на вершине оконного стека:
Code:
START:
   call   get_active_pocess
...

Вызываемая процедура:
Code:
get_active_pocess:
   mcall   9,procinfo,-1
   mov   eax,[ebx+30]
   mov   [PID],eax
   xor   ecx,ecx
@@:
   inc   ecx
   mcall   9,procinfo
   mov   eax,[PID]
   cmp   eax,[ebx+30]
   jne   @r
   mov   [active_process],ecx
   ret

Главный цикл:
Code:
still:
   mcall   10
   cmp   eax,1
   je   red
   cmp   eax,2
   je   key
   cmp   eax,3
   je   button
   cmp   eax,6
   je   mouse
   jmp   still

И далее проверка при обработке события 6-событие мыши:
Code:
mouse:
   mcall   18,7
   cmp   [active_process],eax
   jne   still


Код из OpenDialog.


Top
   
PostPosted: Sun Jun 06, 2010 3:07 pm 
Offline
User avatar

Joined: Fri Jun 27, 2008 3:22 pm
Posts: 988
Полезная программа, когда-то делал такие под DOS и под Win.


Top
   
PostPosted: Sun Jun 06, 2010 3:11 pm 
Offline
User avatar

Joined: Thu Mar 01, 2007 7:57 pm
Posts: 835
Действительно, хорошая и нужная программа, может облегчить много задач художникам и дизайнерам

_________________
Всех выше те, кто доброе творят,
И за дела добра не ждут наград,
Всем жертвуют для страждущих людей,
Не думая о выгоде своей.


Top
   
PostPosted: Mon Jun 07, 2010 12:46 am 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
Mario
Во-первых, вообще-то для поиска слота по PID уже давно можно вместо того, чтобы гонять в цикле 9-ю функцию, просто вызвать 18.21. Во-вторых, в данном случае даже это не нужно, поскольку 9-я функция возвращает позицию в оконном стеке, так что вместо 18.7 и сравнения с заранее вычисленным [active_process] можно просто вызвать 9-ю функцию и сравнить word[ebx+4] с ax.

_________________
Ушёл к умным, знающим и культурным людям.


Top
   
PostPosted: Mon Jun 07, 2010 1:46 am 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
Включил в русскоязычный вариант ночной сборки.

_________________
Ушёл к умным, знающим и культурным людям.


Top
   
PostPosted: Mon Jun 07, 2010 9:00 am 
diamond
Вот я все понимаю, что ты во многом систему знаешь лучше, но неужели тяжело было об этом в кой-либо теме отписать на форуме раньше? Обязательно надо подождать когда кто-нибудь выложит старое (НО РАБОЧЕЕ!) решение. И показать свою гениальность? После этого негодуешь, что на вики информация старая! Не хорошо так...
Quote:
можно просто вызвать 9-ю функцию и сравнить word[ebx+4] с ax

И вообще по твоему посту не понятно что в ax.


Top
   
PostPosted: Mon Jun 07, 2010 11:16 am 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
Mario wrote:
Вот я все понимаю, что ты во многом систему знаешь лучше, но неужели тяжело было об этом в кой-либо теме отписать на форуме раньше?

Что именно? Сообщение о том, что, ура, появилась новая сисфункция 18.21? Дык это было на форуме и без меня. Вызов 9-й функции и проверка состояния оконного стека? Дык это в документации прямо так и написано (один из комментариев к функции 9), мне что, все 200K документации на форум запостить?
Mario wrote:
И вообще по твоему посту не понятно что в ax.

То, что туда записывает функция 9. Как и сказано в документации.


Top
   
PostPosted: Wed Jun 09, 2010 1:09 am 
Offline
User avatar

Joined: Mon Feb 09, 2009 4:13 am
Posts: 445
Nasarus wrote:
1) Если навести курсор в самый верх экрана (нулевой пиксель по Y) программа грохается.

Самое интересное, что под оффициальной сборкой (а я именно под ней шкодю), программа работает без проблем, а под ночной сборкой грохается.

Поправил.

Nasarus wrote:
2) Когда окно не активно, оно по-прежнему показывает цвет. Имхо, надо сделать проверку на активность/неактивность окна Pipetk'и и если окно не активно не реагировать на движение мыши.

Сделано.

Mario

Большое спасибо, за код.

diamond

Не совсем понял (я не крутой программист), надо разобираться. Поменяю позъже. Пока вставил код, который любезно предоставил Mario.


Attachments:
Pipetka v0.2.7z [10.13 KiB]
Downloaded 144 times

_________________
\ Маузер в руке, Путин – на крюке! \ Путину – клизму! Смерть капитализму! \ Путин – параша, победа будет наша!\
\ Застрели буржуя в спину! Он не лучше чем скотина! \
Image
Top
   
PostPosted: Wed Jun 09, 2010 5:34 pm 
Offline
User avatar

Joined: Thu Mar 01, 2007 7:57 pm
Posts: 835
А как у неё со встраиваемостью? Может быть в будущем встроена в графический редактор или что-то подобное?

_________________
Всех выше те, кто доброе творят,
И за дела добра не ждут наград,
Всем жертвуют для страждущих людей,
Не думая о выгоде своей.


Top
   
PostPosted: Thu Jun 10, 2010 3:27 am 
Offline
User avatar

Joined: Mon Feb 09, 2009 4:13 am
Posts: 445
Атауальпа wrote:
А как у неё со встраиваемостью?

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

Атауальпа wrote:
Может быть в будущем встроена в графический редактор или что-то подобное?

А зачем она там? - там и так есть пипетка, только код цвета она не показывает, да и код очень простой, что сам разработчик редактора, сам без труда его туда встроет.

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

_________________
\ Маузер в руке, Путин – на крюке! \ Путину – клизму! Смерть капитализму! \ Путин – параша, победа будет наша!\
\ Застрели буржуя в спину! Он не лучше чем скотина! \
Image


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 26 posts ]  Go to page 1 2 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited