logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Program reagujący na określony kolor pixela na ekranie

Xerof0p 25 Lis 2011 13:48 2896 13
REKLAMA
  • #1 10180673
    Xerof0p
    Poziom 20  
    Posty: 664
    Pomógł: 4
    Ocena: 41
    Poszukuję programu, który uruchamia jakiś inny program albo alarmuje dźwiękiem wtedy, gdy określony przez usera pixel na ekranie przybierze określony przez usera kolor.
    Z góry dziękuję
  • REKLAMA
  • Pomocny post
    #2 10180956
    wlw_wl
    Poziom 38  
    Posty: 4327
    Pomógł: 208
    Ocena: 148
    Pisałem jednemu z użytkowników taki program, tylko że tamten chyba wciskał określoną kombinację klawiszy.

    Uzyj wyszukiwarki to znajdziesz.
  • REKLAMA
  • #3 10182334
    Xerof0p
    Poziom 20  
    Posty: 664
    Pomógł: 4
    Ocena: 41
    wlw_wl napisał:
    Pisałem jednemu z użytkowników taki program, tylko że tamten chyba wciskał określoną kombinację klawiszy.

    Uzyj wyszukiwarki to znajdziesz.


    Znalazłem, ale mam problem z uruchomieniem. Mam .NET wersja 4 na windowsie XP Pro SP3. Pojawia mi się takie info:

    Program reagujący na określony kolor pixela na ekranie
  • Pomocny post
    #4 10182577
    wlw_wl
    Poziom 38  
    Posty: 4327
    Pomógł: 208
    Ocena: 148
    Ja tego nie pisałem na pewno na .NET 4, chyba na 2 ale nie pamiętam. Może na 3,5. Na pewno nie 4.

    .NET Framework'a nie wystarczy mieć najnowszego, trzeba mieć wszystkie - 2.0, 3.5, 4.
  • REKLAMA
  • #5 10183149
    Xerof0p
    Poziom 20  
    Posty: 664
    Pomógł: 4
    Ocena: 41
    Już działa. Po zainstalowaniu .NET 3.5.


    Fajny ten programik, ale do mojego użytku to bym potrzebował pewnych modyfikacji

    1. On ma czekać na wskazany kolor, a nie czekać aż wskazany kolor się zmieni. Innymi słowy ma czekać aż nadejdzie wskazany kolor.
    2. Próbowałem twój program użyć do uruchomienia skrótu klawiaturowego. Stworzyłem skrót do notepad.exe na pulpicie i temu skrótowy przyporządkowałem skrót klawiaturowy F12. W twoim programie ustawiłem klawisz F12. O dziwo, kiedy twój program działał, to notatnik się nie uruchamiał, co więcej nawet jak palcem naciskałem F12, to nie włączał się notatnik. Natomiast po zamknięciu twojego programiku, skrót klawiaturowy działał. Mnie by zależało aby działało 1 z dwojga: albo skróty klawiaturowe, albo żeby można było zaprogramować jako akcję kliknięcie myszką w określonym punkcie ekranu. Nawet bardziej to drugie.
    3. Ustawiłem programik na 2 sekundy. Wskazany pixel zmienił kolor tylko raz, a akcja wykonywana była bez końca co 2 sekundy. Nawet jak zamknąłem programik. Dopiero jak się przelogowałem, to przestało. Mnie by zależało, żeby akcja odbywała się tylko raz po każdym odnotowaniu.

    Da radę tak przerobić? ;-) Ok, to może podaj mi kod tego skryptu i ja sam popróbuję. Przy okazji pouczę się.
  • #6 10183233
    wlw_wl
    Poziom 38  
    Posty: 4327
    Pomógł: 208
    Ocena: 148
    To było pisane "z palca" na poczekaniu, nie wymagaj za wiele.
    Skoro naparza ten klawisz w kółko, to tak widocznie sobie życzył autor tamtego zapytania. Udaje wciskanie klawisza do momentu, aż ten piksel nie powróci do stanu pierwotnego. Jak będzie miał kolor startowy, to przestaje udawać i napis "piksel został zmieniony" znika.
    Kod: C#
    Zaloguj się, aby zobaczyć kod

    label1 to ten prostokąt przechowujący kolor piksela.

    Jak ma zadziałać tylko raz a nie w kółko, to wystarczy wykomentować linijkę
    Kod: C#
    Zaloguj się, aby zobaczyć kod
    z
    Kod: C#
    Zaloguj się, aby zobaczyć kod

    Aby uruchomić notatnik zamiast klawisze wciskać, użyj tego
    Kod: C#
    Zaloguj się, aby zobaczyć kod
    zamiast tego
    Kod: C#
    Zaloguj się, aby zobaczyć kod
  • #7 10185818
    Xerof0p
    Poziom 20  
    Posty: 664
    Pomógł: 4
    Ocena: 41
    Przepraszam za głupie pytanie: jak się włącza okienko, w którym wpisuje się ten kod, a potem kompiluje? Czy to jest pisane w języku c#? Jeśli nie, to w jakim?
  • REKLAMA
  • Pomocny post
    #8 10185862
    wlw_wl
    Poziom 38  
    Posty: 4327
    Pomógł: 208
    Ocena: 148
    Moje okienko do wpisywania kodu nazywa się Microsoft Visual Studio 2008, z czego Ty skorzystasz to Twoja sprawa. Tak, jest to C#, bo taki miałem akurat wtedy kaprys :)
  • #10 10198743
    Xerof0p
    Poziom 20  
    Posty: 664
    Pomógł: 4
    Ocena: 41
    Nie chce się zrobić kompilacja. Wywala błędy. Kompiluję za pomocą programu csc.exe, który jest dostarczany wraz z pakietem .NET

    Poniżej zmieniony kod i spis błędów:

    Kod: C#
    Zaloguj się, aby zobaczyć kod
  • Pomocny post
    #11 10198780
    wlw_wl
    Poziom 38  
    Posty: 4327
    Pomógł: 208
    Ocena: 148
    Bo do tego jeszcze jest formatka, na której są etykietki (label) i inne obiekty. To nie jest program konsolowy. Przecież widziałeś oryginał.

    Formatka:
    Kod: C#
    Zaloguj się, aby zobaczyć kod

    Natomiast żeby stosować klasę Process, musisz dodać na początku jeszcze
    Kod: C#
    Zaloguj się, aby zobaczyć kod
  • #12 10322754
    Xerof0p
    Poziom 20  
    Posty: 664
    Pomógł: 4
    Ocena: 41
    @Dżyszla dzięki za linka. Postanowiłem skorzystać z tam zamieszczonych rad, jeśli mi się nie uda uzyskać docelowego produktu w C#.

    @wlw_wl Udało mi się przerobić ten program i nawet fajnie chodzi. Dzięki za mega pomoc!

    Mam jeszcze dalszy ciąg tego tematu. Mianowicie chciałbym uruchamiać ten program napisany w C# na maszynie, która ma tylk framework 2.0. Dlatego zabrałem się za przerabianie. Odinstalowałem wszystki frameworki prócz 2.0. Visual Studio 2010 też odinstalowałem i w jego miejsce zainstalowałem 2005.

    W 2005 utworzyłem nowy projekt i skopiowałem z tego utworzonego w Visual Studio 2010 projektu pliki Form1.cs oraz Form1.Designer.cs.

    I niestety wywala błąd podczas próby kompilacji w Visual Studio 2005 , że brakuje "Linq":
    "Error 1 The type or namespace name 'Linq' does not exist in the namespace 'System' (are you missing an assembly reference?) d:\Documents\Visual Studio 2005\Projects\Pixelki\Pixelki\Form1.cs 7 14 Pixelki"

    Nie wiem co to Linq daje programowi, bo się za mało znam C#. Jak ten problem obejść?
  • Pomocny post
    #13 10323205
    marcinj12
    Poziom 40  
    Posty: 3404
    Pomógł: 1024
    Ocena: 250
    Żeby kompilować programy pod .NET 2.0 nie musiałeś odinstalowywać VS2010, pozostałych frameworków ani instalować VS2005 - zrobisz sobie tylko niepotrzebnie śmietnik z komputera. We właściwościach projektu masz listę TargetFramework, wystarczyło wybrać .NET 2.0:
    Program reagujący na określony kolor pixela na ekranie

    LINQ to metoda dostępu do danych, rozszerzająca, upraszczająca i w pewnym stopniu unifikująca ten dostęp, wprowadzona od .NET 3.0. Na szczęście każdy program program z elementami LINQ można tak przerobić, żeby ich nie potrzebował, jednak ja nie widzę tych elementów w przytoczonym kodzie, więc prawdopodobnie chodzi o przestrzeń nazw:
    Kod: C#
    Zaloguj się, aby zobaczyć kod
    która jest domyślnie wstawiana w nowszych VS przy tworzeniu nowego projektu. Usuń to we wszystkich miejscach w projekcie a powinien się skompilować.
  • #14 10323320
    Xerof0p
    Poziom 20  
    Posty: 664
    Pomógł: 4
    Ocena: 41
    @marcinj12 ok miałeś rację. Wielkie dzięki

    Wcześniej też wyeliminowałem linijkę "using System.Linq;", ale pojawiły się kolejne błędy, więc myślałem, że to ta linijka jest winna.

    Jednak okazało się, że winna nie była, lecz w trakcie "przeróbki" nie uaktualniłem w nowym pliku program.cs linijki mówiącej o używaniu namespace zadeklarowanej w Form1.cs, tudzież po prostu nie przeniosłem starego pliku program.cs do nowego projektu.

    Teraz jest ok.

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik poszukiwał programu, który uruchamia inny program lub alarmuje dźwiękiem, gdy określony piksel na ekranie zmienia kolor. Odpowiedzi wskazywały na konieczność posiadania odpowiednich wersji .NET Framework (2.0, 3.5, 4) oraz na problemy z uruchamianiem skrótów klawiaturowych. Użytkownik z powodzeniem uruchomił program po zainstalowaniu .NET 3.5, ale zgłosił potrzebę modyfikacji, aby program czekał na wskazany kolor, a nie na jego zmianę. W dyskusji poruszono również kwestie kompilacji kodu w C# oraz problemy związane z używaniem LINQ w starszych wersjach Visual Studio. Ostatecznie użytkownik zdołał przerobić program, aby działał na maszynie z .NET 2.0.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA