Kilka pytań odnośnie programowania obiektowego.

Odpowiedz Nowy wątek
2018-10-24 19:33
0

Witajcie, liznąłem c++ w okienku, chciałbym pójść kawałek dalej i przejść na obiektówkę, tylko którą najlepiej wybrać?

Stworzyłem w okienku program, który będzie przesuwał myszkę w winampie i uruchamiał wybraną piosenkę, lecz działam jakby po "mojej stronie", w trakcie działania programu nie mogę ruszyć myszką ani zakończyć programu, gdy ustawię więcej kliknięć.
Czy można zrobić tak, że w tle będą leciały piosenki ustawione przez mój program bez ingerencji mojej myszki? Jakby podpięcie się pod winampa?

Czy WinApi to będzie dobrym wyborem? Czy może tracę na niego czas? Chciałbym zostać przy C++ bo trochę już przy nim spędziłem czasu (konsola).
I czym najlepiej się zainteresować, żeby osiągnąć owy efekt?

Aktualnie przerabiam cpp0x i inne blogi po WinAPI.
Jestem początkującym programistą, jestem na tym forum pierwszy raz, liczę na wyrozumiałość.

Co Twoje pytania mają do programowania obiektowego? - Patryk27 2018-10-24 19:40

Pozostało 580 znaków

2018-10-24 19:47
5

Najlepszym wyborem dla okienkowego C++ jest bezsprzecznie Qt, które jest nowoczesnym i dynamicznie rozwijanym frameworkiem. Inne nie mają startu.

WinAPI można sobie darować, nie te czasy.

edytowany 1x, ostatnio: grzesiek51114, 2018-10-24 19:48

Pozostało 580 znaków

2018-10-24 20:13
4
Program1 napisał(a):

Stworzyłem w okienku program, który będzie przesuwał myszkę w winampie i uruchamiał wybraną piosenkę, lecz działam jakby po "mojej stronie", w trakcie działania programu nie mogę ruszyć myszką ani zakończyć programu, gdy ustawię więcej kliknięć.

A to nie możesz sobie zwykłej playlisty zrobić? Będziesz miał ustalone utwory w odpowiedniej kolejności i Winamp je będzie odtwarzał – po to one istnieją.

Czy można zrobić tak, że w tle będą leciały piosenki ustawione przez mój program bez ingerencji mojej myszki?

Tak, do tego służą playlisty.

Jakby podpięcie się pod winampa?

Można wysyłać komunikaty do okien, ale wybieranie konkretnego utworu oznacza pośrednie otwarcie okna Jump to file. IMO takie kombinacje nie mają sensu – wyżej napisałem dlaczego.

Czy WinApi to będzie dobrym wyborem? Czy może tracę na niego czas?

Zależy w jakim sensie – pisanie aplikacji w gołym WinAPI nie ma sensu, bo jest trudne i czasochłonne. Natomiast korzystanie z funkcji z systemowych bibliotek nie jest niczym nadzwyczajnym.


Przy okazji – Winamp został reaktywowany i według zapowiedzi, w przyszłym roku pojawi się nowa wersja. :)


edytowany 1x, ostatnio: furious programming, 2018-10-24 20:14

Pozostało 580 znaków

2018-10-24 21:06
0

Zaufam Ci Grzesiek i poczytam o tym Qt, więc odpuszczę sobie dalsze czytanie o WinApi. Ogólnie to w Qt można w praktyce osiągnąć te same rzeczy co w WinApi?

Furious załóżmy, że mam już otwarte okno, nie przeszkadza mi to, można później zminimalizować. Podasz mi jakieś słowa kluczowe czego mam się uczyć, żeby te komunikaty wysyłać do poszczególnych utworów? Wolę się pobawić nawet jeśli to głupie, przynajmniej mam jakiś cel pisania czegoś, a tak to brak motywacji:)

Pozostało 580 znaków

2018-10-24 21:16
0

Ogólnie to w Qt można w praktyce osiągnąć te same rzeczy co w WinApi?

Zazwyczaj tak i jest to dużo prostsze, ponieważ Qt jest w pełni obiektową biblioteką z wszystkimi jej nowoczesnymi cechami vide drzewko dziedziczenia od wspólnej klasy QObject etc.

Nie należy jednakowoż zapominać, że to wciąż C++ z masą osobliwości. :-)

@Program1:

liznąłem c++ w okienku
Podasz mi jakieś słowa kluczowe czego mam się uczyć, żeby te komunikaty wysyłać do poszczególnych utworów?

Jeżeli nie poznałeś podstaw języka, a chcesz uczyć się go od razu na cięższych przypadkach to z góry mówię, że nie tedy droga.

edytowany 3x, ostatnio: grzesiek51114, 2018-10-24 21:26
A żeby było mało, to na dodatek w Qt można się przejechać na implicit sharing, które wepchali nawet do QVector... - tajny_agent 2018-10-25 20:25

Pozostało 580 znaków

2018-10-24 21:27
0

Ok, to się skupie na poradnikach jakiś, builder c++ wystarczy? czy jakies inne środowisko polecasz lepsze?

Pozostało 580 znaków

2018-10-24 21:28
3

Polecam QtCreator oraz dobrą książkę do C++.

Inaczej polegniesz; C++ jest tylko pozornie łatwym językiem.

Ciekawe, że ktoś nawet pozornie tak uważa. - kq 2018-10-26 23:44

Pozostało 580 znaków

2018-10-24 21:36
0

Ok, dziękuję Wam za odpowiedzi, do usłyszenia za jakiś czas :)

Pozostało 580 znaków

2018-10-24 22:57
1
Program1 napisał(a):

Furious załóżmy, że mam już otwarte okno, nie przeszkadza mi to, można później zminimalizować.

Nie wiem czy zrozumiałeś o co chodzi.

Jeśli Twoja aplikacja ma wybrać utwór, to musi wysłać do okna Winampa komunikat wciścięcia klawisza J, bo ten odpowiada za pokazanie listy wszystkich utworów z możliwością ich filtrowania. Następnie musiałby wysłać tekst do odpowiedniego pola edycyjnego, tak aby wypełnić to pole konkretnym tytułem utworu. Na koniec wysłanie komunikatu wciścięcia klawisza Enter, bo tak wybiera się zaznaczony utwór. Jak widzisz jest trochę roboty, a do tego dochodzi jeszcze aktywowanie i podbijanie okien odtwarzacza na ekranie i to samo dla okna, które było aktywne tuż przed całym procesem zmiany utworu.

Problem w tym, że w momencie gdy Twój program przełączałby utwór, obecnie aktywne okno w systemie (program w którym akurat coś robiłeś, np. przeglądarka) traciłaby focusa. Jeśli byś w tym czasie grał czy pisał, to komunikaty o wciskanych klawiszach nie leciałyby do okna przeglądarki, a do okna aktywowanego przez Twoje narzędzie, czyli do okna Jump to file. Wszedłbyś swojemu programowi w paradę, przez co mógłby wybrać zły utwór lub nie wybrać go wcale. Problem byłby także z określeniem kiedy wybrać utwór – w końcu każdy ma inną długość.

Ogólnie to rozwiązanie nie jest jakoś szczególnie trudne, ale wzamian jest wadliwe i może przeszkadzać w normalnym używaniu komputera (już nie mówiąc o wnerwiającym efekcie migania na ekranie okna do wyboru utworu).

Podasz mi jakieś słowa kluczowe czego mam się uczyć, żeby te komunikaty wysyłać do poszczególnych utworów?

Nie do utworów – komunikaty wysyła się do okien. Przy czym mianem okna określa się nie tylko wizualne okienka, ale też wszelkie osadzone kontrolki posiadające uchwyt, np. przyciski, pola edycyjne, listy itd.

Wolę się pobawić nawet jeśli to głupie, przynajmniej mam jakiś cel pisania czegoś, a tak to brak motywacji:)

Wolałbym abyś napisał sobie plugin do tego odtwarzacza, bo w ten sposób miałbyś bezpośredni dostęp do jego funkcjonalności. Tyle że nie pisałem jeszcze takich pluginów, więc niezbyt wiele miałbym tutaj do powiedzenia, a po drugie, w dalszym ciągu nie ma to sensu, bo w zupełności wystarczy Ci własna playlista.

Jeśli jednak mimo wszystko chcesz się pobawić, to musisz poczytać o enumeracji okien i osadzonych komponentów, wysyłaniu komunikatów do okien i imitowaniu wciskania klawiszy z poziomu kodu. W Google znajdziesz mnóstwo przykładów i objaśnień, a także dużo gotowców.


edytowany 2x, ostatnio: furious programming, 2018-10-24 23:03

Pozostało 580 znaków

2018-10-25 13:53
3

Co do tego Winampa.
Popatrz jakie dowiązania do menu kontekstowego zrobił sobie Winamp. Sprawdź co się dzieje gdy klikasz na mp3.
To ci wystarczy by potem wywołać Winamp z odpowiednimi parametrami i zrobić z nim wiele praktycznych rzeczy, bez kombinowania z myszką.
To będzie tak proste, że można zrobić w zwykłym pliku bat.


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
O tym nie pomyślałem. Pewnie dlatego, że zawsze zabraniam instalatorom dodawać pozycje do menu kontekstowego (z wyjątkiem 7zipa). - furious programming 2018-10-25 15:45

Pozostało 580 znaków

2018-10-26 22:58
0

Ok, dziękuje za wszystkie wskazówki. Szukam na razie materiałów do nauki. Mam nadzieję, że nie odpuszczę za szybko.

Edit: Przepraszam za natręctwo, jestem bardzo niezdecydowany. Przeszukując internet od dwóch dni doszedłem do wniosku, że bardzo mało jest poradników w języku polskim. Może i po angielsku bym sobie poradził, ale na pewno by zrozumienie zajęło więcej czasu.

Dlatego mam do Was parę pytań o język Python. Ucząc się tego języka nie będę się w jakikolwiek sposób ograniczał niżeli bym miał uczyć się c++ Qt?
W tym języku będę miał spore pole do popisu w aplikacjach pod Windowsa?
Czy język konsolowy różni się od obiektowego tak jak to jest w c++ (ucząc się konsoli znamy podstawy, jednak trzeba się poleceń uczyc od nowa w obiektówce)?
Jeśli to by był dobry wybór, to lepiej zacząć od konsoli czy iść od razu na obiektówkę?
I na koniec, jakie środowisko najlepiej wybrać?
Wybrałem ten język, a nie inny ze względu na dużą ilość materiałów do nauki jak i rzekomą prostotę w pisaniu programów.

edytowany 1x, ostatnio: Program1, 2018-10-27 01:15
No niestety ale widać, że baaaardzo długa drogą przed Tobą. Totalnie mylisz pojęcia. Przypuszczam że uważasz że coś tam już wiesz (co nie jest prawdą). Sam nie wiem co Ci poradzić. Najlepiej by było jakbyś poznał jakiegoś programistę i żeby Ci wytłumaczył co i jak bo na razie niestety widać że błądzisz i to mocno. - amd 2018-10-27 16:37

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0