Odczyt współrzędnych XY w obcym oknie

problemy z tworzeniem aplikacji graficznych oraz audio i wideo

Odczyt współrzędnych XY w obcym oknie

Nowy postprzez Chemik » piątek, 9 września 2011, 14:02

Witam,
mam trochę rysunków szkła i sprzętu laboratoryjnego i napisałem sobie program do "sczytywania" punktów do późniejszego rysowania tego w C++ (przez Canvas) w programie symulatorze. Ładuję rysunek (bitmapowy) do Image i klikam na ważne dla mnie punkty.
Dorobiłem sobie Canvas na postawie http://programowanie.cal.pl/cyfbar/grafika.html#graf8, wiec mam odczytywane współrzędne a potem mi to już w kodzie do skopiowania wyrzuca jako MoveTo i LineTo. To działa.
Ale mam też część z rysunków wektorowo w Corelu z pięknymi owalami z krzywych Bezier. Chciałbym rozbudować program o sczytywanie współrzędnych z obcego okna (z Corela) po kliknięciu (najlepiej jeszcze z shiftem lub altem). Wtedy bym klikał na kolejne węzły i punkty kontrolne. Zrzut ekranowy odpada, ponieważ Corel nie pokazuje wszystkich punktów kontrolnych tylko te sąsiednie, więc klikanie w Corelu jest potrzebne. Jak to zrobić?
Mam WinXP oraz W7 i Borland Builder Personal 6.0
Avatar użytkownika
Chemik
Bladawiec
Bladawiec
 
Posty: 4
Dołączył(a): środa, 4 maja 2011, 12:48
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: XP Prof/Win7
Kompilator: Borland Builder 6.0 Personal
Gadu Gadu: 0
    Windows 7Firefox

Re: Odczyt współrzędnych XY w obcym oknie

Nowy postprzez polymorphism » piątek, 9 września 2011, 18:29

Jak to zrobić?

Opcje są chyba dwie:
  • zapisać figurę w formacie, który bedziesz mógł odczytać w swoim programie (wmf, svg itp).
  • Corel chyba posiada automatykę (OLE automation), więc mógłbyś od tej strony podejść. Choć jeśli jesteś początkujący, zapomnij ;)
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Keyloger

Nowy postprzez Cyfrowy Baron » sobota, 10 września 2011, 09:29

Być może dałoby się to zrobić za pomocą keylogera, który opisałem w poradzie: ► patrz serwis: Cyfrowy Baron dział: porady -> API -> Keyloger, czyli przechwytywanie wciśnięcia klawiszy we wszystkich programach. W przykładowym kodzie jest podana obsługa myszki. Jeżeli zrozumiesz kod i będziesz go sobie w stanie przerobić, to może coś z tego wyjdzie. Problemem jednak będzie z całą pewnością pobranie współrzędnych tych punktów, bo bez problemu to da się pobrać współrzędne względem lewego górnego ekranu pulpitu lub okna programu, ale nie jest to już takie proste z obszarem roboczym zawierającym grafikę.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Odczyt współrzędnych XY w obcym oknie

Nowy postprzez Chemik » piątek, 23 września 2011, 17:35

Dziękuję za odpowiedzi.
Jako pasjonat niezaawansowany odpuszczam OLE itp. Nie umiem również odczytać formatu svg. Mam teraz pomysły dwa. Pierwszy to otwieranie okna Corela w swoim programie: gdzieś to kiedyś czytałem/widziałem (chyba u Cyfrowego Barona) ale z czymś prostym (Wordpad czy coś takiego) - może da się wtedy podejrzeć współrzędne względem okna programu głównego (nie Corela) i potem je sobie przetransformuję. Mogą być problemy w W7, bo tam Corel mój nie bardzo działa na standardowych ustawieniach (za stary), ale wystarczy mi w XP. Drugi pomysł to zastosowanie Keylogera a połączeniu z Corelem: Corel chyba pokazuje współrzędne kursora w swoim pasku: będę klikał na punkty i keylogerze je zapisywał ręcznie. Mam teraz tydzień luzu przed październikiem, to będę szukał i kombinował. Jeśli nie, to nakłady czasowe na program przekroczą zysk czasowy z programu.
Dziękuję za zainteresowanie.
Avatar użytkownika
Chemik
Bladawiec
Bladawiec
 
Posty: 4
Dołączył(a): środa, 4 maja 2011, 12:48
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: XP Prof/Win7
Kompilator: Borland Builder 6.0 Personal
Gadu Gadu: 0
    Windows 7Firefox

Re: Odczyt współrzędnych XY w obcym oknie

Nowy postprzez Cyfrowy Baron » sobota, 24 września 2011, 09:52

Chemik napisał(a):ierwszy to otwieranie okna Corela w swoim programie:[...]
Chemik napisał(a):może da się wtedy podejrzeć współrzędne względem okna programu głównego (nie Corela) i potem je sobie przetransformuję.


Dodatkowo dojdzie określanie współrzędnych względem okna głównego plus okno Corel'a. To tylko dodatkowo zagmatwa sprawę, gdyż okno obcego programu umieszczone w oknie własnego programu wciąż pozostaje obce.

Tego z keylogerem nie rozumiem.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Aplikacje multimedialne, graficzne

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 1 gość