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

Pisanie programu sterującego aplikacjami, systemem itp.

Siber 26 Wrz 2004 18:01 4685 43
Najlepsze odpowiedzi LABEL_AI_GENERATED

Jak najłatwiej napisać program dla Windows, który o określonej godzinie wyłączy komputer, uruchomi lub zamknie program i zmieni ustawienia systemu?

Najłatwiej zrobić to w Delphi, ewentualnie w C++ Builderze, bo jeśli znasz Pascala, to przesiadka na Delphi będzie bezbolesna [#881091][#905455][#928662] Wszystkie opisane funkcje da się zrealizować przez WinAPI, więc praktycznie nada się każdy język, który ma do niego dostęp [#876915] Wyłączanie komputera można oprzeć na prostym timerze sprawdzającym godzinę lub datę [#876915] Uruchamianie i zamykanie innych programów również nie stanowi problemu, a zmiana ustawień systemu zależy od tego, co dokładnie chcesz modyfikować [#876915] Jeśli aplikacja ma działać „w tle”, można ją uruchomić jako zwykłą aplikację Windows i ukryć okno, np. przez `ShowWindow(..., SW_HIDE)` [#904428][#936271]
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
  • #1 876269
    Siber
    Poziom 11  
    Posty: 38
    Ocena: 1
    Jak można napisać program, który np. wyłączyłby kompa o tej i o tej godzinie, uruchomiłby jakiś program, wyłączył program, zmienił ustawienie systemu, jakieś opcje itp. Jaki jest najłatwiejszy język programowania do napisania takiego programu (jeżeli to możliwe..raczej tak). Pascal pewnie nie da rady.
  • #2 876915
    krzychoo_soft
    Poziom 17  
    Posty: 233
    Pomógł: 16
    Ocena: 13
    Każdy język się nadaje bo wszystkie zaproponowane przez Ciebie funkcje tego programu są obsługiwane przez Win API. I myślę że nie powinno to być trudne. Zamykanie można zbudować na prostym timerze i sprawdzaniu godziny (lub daty), odpalenie innego programu to też nie jest problem... chyba największy problem będzie ze zmianą ustawień systemu (w zależności od tego jakie ustawienia będziesz chciał modyfikować).

    pozdrawiam,
  • #3 878847
    Siber
    Poziom 11  
    Posty: 38
    Ocena: 1
    pisałeś może kiedyś taki program? Jeśli tak to w jakim języku?
  • #4 878875
    krzychoo_soft
    Poziom 17  
    Posty: 233
    Pomógł: 16
    Ocena: 13
    pisałem podobny w c++ (builder 6)
  • #5 880213
    Siber
    Poziom 11  
    Posty: 38
    Ocena: 1
    nie wiesz jak to można zrobić w pascalu?
  • #6 881091
    rtom
    Poziom 18  
    Posty: 458
    Pomógł: 6
    Ocena: 18
    Zacznij uczyc sie delphi!!! Do takich rzeczy sie nada a przesadka z pascala bedzie bezbolesna!
  • #7 904267
    Siber
    Poziom 11  
    Posty: 38
    Ocena: 1
    Czy jest możliwość, aby program napisany w pascalu nie uruchamiał się w oknie, tylko działał pokryjomu, był wciąż aktywny (jak np. firewall)?
  • #8 904428
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    Siber napisał:
    Czy jest możliwość, aby program napisany w pascalu nie uruchamiał się w oknie, tylko działał pokryjomu, był wciąż aktywny (jak np. firewall)?
    Jeśli to aplikacja windows to nie ma problemu.
  • #9 904516
    ghost666
    Tłumacz Redaktor
    Posty: 11961
    Pomógł: 157
    Ocena: 10267
    w pascualu samym trudno cos takiego stworzyc tj. jesli myslisz o pascalu pod, chociazby, tp7 itp
  • #10 905455
    _sid
    Poziom 11  
    Posty: 6
    Dlaczego tak uparles sie z tym Pascalem ? :) Naprawde powinienes przezucic sie na Delphi - w sumie to pascal tyle ze pod windowsa, tryb okienkowy :p. Jeszcze lepszy bedzie C++ Builder. Ostatecznie tego typu programy mozesz napisac w assembelrze 32bit hehe - beda chodzily bardzo szybko - ale zajmie Ci to sporo czasu. Pod samym pascalem tez mozesz napisac tego typu programy ale nie mam pojecia jak sie wykorzystuje winapi pod np tp7 ... w Builderze taki "wylacznik czasowy" to kolo 20 min roboty - a 1 dzien wlacznie ze skinami do niego - wiec sie zastanow nad tym :p
  • #11 928662
    Tomex
    Poziom 20  
    Posty: 316
    Pomógł: 37
    Ocena: 33
  • #12 929836
    rtom
    Poziom 18  
    Posty: 458
    Pomógł: 6
    Ocena: 18
    Pascala jest modny, bo ucza tego w szkolach, choc wedlug mnie powinni zaczynac od C. Jesli np. nie uzywac w C wskaznikow czy skrotow myslowych i++, zamiast i=i+1, to nie ma problemu z przejsciem z pascala na C (musisz tylko zastapis begin - {, end }, wiedziec ze cos takeigo i=1 to instrukcja przypisania a i==1 to rownosc). Z reszta spojrz do jakiegos kursu, jak swietnie mozna pisac petle for w porownaniu z pascalem - bajka! . Wiec przesiadaj sie na C, pozniej C++ i bulider, ,albo ucz sie delphi.
  • #13 936197
    Konto nie istnieje
    Konto nie istnieje  
  • #14 936271
    krzychoo_soft
    Poziom 17  
    Posty: 233
    Pomógł: 16
    Ocena: 13
    Cytat:
    C jest niesamowicie nielogiczny. Nie wiem z jakich powodów ktokolwiek go używa.


    To już przesada :/ C/C++ to moim zdanie bardzo dobry język. Składnia jest bardzo logiczna a co najważniejsze pozwala szybko i efektownie tworzyć aplikacje. Zaczynałem programowanie od C, po kilku latach "zobaczyłem" jak się pisze w Pascalu... Moim zdaniem C jest o wiele bardziej wygodne i daje więcej możliwości. Co do samego Pascala to niemogłem się przyzwyczaić do składni... moim zdaniem bardzo zamieszanej. Nie wspominając o kodzie programu który jest mało czytelny (jak by nie był napisany). Ale z doświadczenia wiem że ludzią przesiadka z Pascala na C/C++ idzie o wiele bardziej opornie niż z C/C++. Ale to chyba kwestja tego że programowanie w C++ uczy myślenia bardziej abstrakcyjnego i opartego o obiekty. Takie jest moje zdanie.

    Co do wcześniejszego pytania.... odnośnie uruchomienia programu "w tle"...
    Abu uzyskać taki efekt wykorzystujemy funkcję API: ShowWindow(uchwyt,SW_HIDE);

    Nie znam zabardzo Delphi ale to chyba powinno wyglądać podobnie jak w C ;] :
                     Application->CreateForm(__classid(TForm1), &Form1);
                     ShowWindow(Application->Handle, SW_HIDE); //tu ukrywamy nasze okienko
                     Application->Run();

    (to oczywiście źródło projektu nie "unit`u")

    pozdrawiam
  • #15 936632
    rtom
    Poziom 18  
    Posty: 458
    Pomógł: 6
    Ocena: 18
    Kolego tjanusz, polecam lekture paradygmatu programowania obiektowego.
  • #16 938560
    Konto nie istnieje
    Konto nie istnieje  
  • #17 942534
    rtom
    Poziom 18  
    Posty: 458
    Pomógł: 6
    Ocena: 18
    No tak tylko ze wlasnie ja sam rozpoczales, bo napisales o nielogicznosci C! Moze daj jakis przyklad? Moze rzeczywiscie cos znalazles nielogicznego.
  • #19 943250
    Konto nie istnieje
    Konto nie istnieje  
  • #20 944101
    krzychoo_soft
    Poziom 17  
    Posty: 233
    Pomógł: 16
    Ocena: 13
    Cytat:
    Po prostu wyraziłem swoje zdanie, wyrobione dzięki pracy nad przeniesieniem kodu (w przeciwieństwie do np. Krzycho_soft, ktory przyznaje, że nie ma pojęcia o pascalu więc "mówi co wie, ale nie wie co mówi")


    Widzę że kolega tjanusz nie ma problemu z wygłaszaniem własnych opinii, ale napewno ma problem ze zrozumieniem tekstu który czyta ;]
    Ja napisałem
    Cytat:
    Nie znam zabardzo Delphi


    O Pascalu mam wyrobione zdanie. Uczyłem się go jeden semestr... i może cię to rozczaruje ale egzamin zaliczyłem na 5 podobnie jak ćwiczenia. Więc jakieś pojęcie o tym co mówie mam. C++ się ucze o wiele dłużej, i z własnego doświadczenia wiem że wygodniej mi się w nim pisze niż w Pascalu - którego wbrew temu co sądzisz jednak poznałem. Ale może na przyszłość: "Nie znam Delphi" ;)

    Mój profesor od Elektroniki cyfrowej twierdzi że Pascal to już przeżytek, i nie widzi sensu w tym żeby "przyszli programiści" zaczynali naukę programowania od tego właśnie języka. To według Ciebie znaczy że "mówi co wie, ale nie wie co mówi"? ;]
  • #21 944635
    rtom
    Poziom 18  
    Posty: 458
    Pomógł: 6
    Ocena: 18
    Pascal to byl pierwszy jezyk progr. jaki poznalem. Napisalem w nim pare fajnych programow, gier, np. kolo foruny (okolo 2000 linii), z wykorzystaniem myszki w trybie graficznym, robilem swoje okienka jak w windows (mowie o zwyklym pascalu nie delphi). Pozniej sie przesiadlem na C i z tego wzgledu, ze ten jezyk ma np. wiele ciekawych uproszczen np. zapis i++; zamisat i=i+1, swobode w deklaracji zmiennych, tablic pisanie petli np. for, swobode w formatowaniu zmiennych za pomoca printf. Do tego pewien porzadek wyrazony tym, iz istnieja same funkcje (nie ma procedur), do tego wskazniki, ktore stanowia cala sile C. To z grubsza pare zalet. Do tego pisze programy na mikrokontrolery i uzywam keila i nie widzialem nigdzie, zeby mozna byl odo niego uzywac kompilatora pascala (choc wiem ze cos takiego gdzies istnieje).
    Poza tym programy napisane w pasclau zajmuja wieksza objetosc (RAM, dysk) niz w C. Nie wiem jak z delphi ,ale zwykly turbo pacal np. 7.0 wydaje sie strasznie toporny.
  • #22 945206
    Xitami
    Poziom 29  
    Posty: 1130
    Pomógł: 118
    Ocena: 31
    tJanusz
    C nielogiczne? Wiesz jeśli wszyscy myślą inaczej niż ja, to zastanawiam się czego nie rozumiem.
    rTom
    -co do begin i end w Pascalu, nie trzeba zmieniać przyzwyczajeń z Pascala, preprocesor to strasznie silne narzędzie
    -poważniejsza sprawa to inne priorytety operatorów
    -w C nie pisze się i=i+1 ;) tylko i += 1, ta konstrukcja jest ogólniejsza, i++ to tylko ((i+=1)-1), a ++i to (i+=1), wynika to z tego że przypisanie niesie wartość, + dla C
    -zmienne tablice (otwarte) występują także w Pascalu;
    -for jest zdecydowanie mocniejsze w C
    -a co ma printf czego nie ma write
    -że niby brak procedur to przejaw porządku? To czemu trzeba sztukować z funkcjami które zwracają „nic”
    -wskaźniki nie wskazują niczego innego w C niż w Pascalu
    -dla zabawy kombinuję teraz z pascalem na avr, ale chyba braknie mi cierpliwości
    -Turbo wydaje się być toporne, no cóż to sprawa gustu, a o gustach się nie dyskutuje
    Krzycho_soft
    A jakie zdanie ma Twój profesor filozofii? Elektronika cyfrowa to nie to samo co informatyka.

    Moim pierwszym językiem był COBOL, kto go jeszcze pamięta, mało tego, ilu z Was o nim słyszało?
    Pamiętam swoje pierwsze wrażenia kiedy poznawałem C, był to dla mnie język stworzony z myślą o łatwej budowie kompilatora a nie wygodzie dla programisty, bo jakoś czytało się go odwrotnie niż Pascal, później zmieniłem zdanie (czy raczej przywykłem). No i cały program składa się tylko z komentarza bo wszystko zawarte jest między nawiasami klamrowymi ;)
    Pascal odegrał swoją rolę i jako szacownemu staruszkowi należy mu się szacunek.
    Kiedy programuje się tylko dla siebie to robi się to tak jak jest nam najwygodniej, i „mój” język jest lepszy od wszystkich innych i już. Zupełnie inaczej kiedy ma się zamiar pracować w zespole. Są zadania w których pewne języki są „równiejsze” od innych, ale i tak we wszystkich językach można zrobić to samo.
    Proponuję uciąć temat lub przenieść go do innego wątku, bo przypominam, że spotkaliśmy się tu z innego powodu.
  • #23 945759
    Konto nie istnieje
    Konto nie istnieje  
  • #24 946072
    Xitami
    Poziom 29  
    Posty: 1130
    Pomógł: 118
    Ocena: 31
    tJanusz podrzuć linka do tego mikro Pascala.
  • #25 946313
    Konto nie istnieje
    Konto nie istnieje  
  • #26 947786
    koval_s
    Poziom 18  
    Posty: 253
    Pomógł: 3
    Ocena: 20
    Zapomnieliśmy o myśli przewodniej, panu Siber chodziło prawdopodobnie o coś chyba w stylu Trojana, o ile dobrze zrozumiałem, ale z firewallem z dwóch stron nie pójdzie ale w ogóle jakoś pójdzie, proponuję poszukać w sieci źródła Prosiaka, oj to dopiero była jazda jak w biurze w pracy zapuściliśmy z kolegą, ale jaja były, ale najpierw poszukaj, źródła są w Delphi i kilka komponentów w stylu Spy bez nich też jakoś poszło, uwaga nie chodzi pod Delphi7, brakuje już socketów odpowiednich pozmieniali na lepsze
  • #27 949056
    rtom
    Poziom 18  
    Posty: 458
    Pomógł: 6
    Ocena: 18
    Tjanusz, moze i nie rozumiesz zapisow stosowanych w C, ale to nie powod by twierdzic, ze C jest nielogoczny (jesli Cie tak raza te zapisy zawsze mozesz pisac standardowo). Tylko, ze Ty jak napisales zajmujesz sie przepisywaniem programow z C na pascala? Niezbyt tworcze zajecie, chociaz....;) Pewnie stad te Twoje fanaberie na temat nielogicznosci.
    To jakby ktos tlumaczyl cos z rosyjskiego na polski, nie znajac rosyjskiego. Toz to smiechu warte i kpina!
    Progonuje przed kazdym swpim osadem pisac z duzej litery i pogrubione (to jest tylko moje zdanie), zeby ktos niedoswiadczony, nieopatrze nie wzial twoich wywodow za ogolnie przyjety dogmat.
  • #28 954902
    Konto nie istnieje
    Konto nie istnieje  
  • #29 955675
    rtom
    Poziom 18  
    Posty: 458
    Pomógł: 6
    Ocena: 18
    Zeby moc tlumaczyc, niestety musisz znac wybitnie oba jezyki. Po drugie skoro jestes taki orzel w pascalu nie rozumiem, po co cos przepisujesz. Pisz w Pascalu nie korzsytaj z C (po co Ci C?), skoro uwazasz, ze mozesz w wszystko w pascalu. Po trzecie sa na necie dostaepne konwertery kodu C -> Pascal, wiec zamiast populistyczno-demagogicznie bruzdzic na temat C, skorzystaj po prostu z nich!
    Gubisz sie na prostych i++,++i, wiec C nie jest dla ciebie, ale to nie wina C, bo wiekszosc dostrzega w tym zalete, a nie wade. Po prostu, lata nie otwierania okien na swiat zrobily swoje i stales sie ortodoksyjnym pascalowcem, co poza nim nic juz nie zobaczy.
    Coz, powodzenia.
  • #30 955739
    Konto nie istnieje
    Konto nie istnieje  

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczyła sposobów napisania programu sterującego komputerem, który mógłby wykonywać zadania takie jak wyłączanie komputera o określonej godzinie, uruchamianie i zamykanie programów oraz zmiana ustawień systemowych. Podkreślono, że wszystkie te funkcje są dostępne poprzez WinAPI i można je realizować w różnych językach programowania. Najczęściej rekomendowanymi językami były Delphi oraz C++ (np. C++ Builder 6), ze względu na łatwość integracji z Windows i dostęp do funkcji systemowych. Pascal w klasycznej formie (np. Turbo Pascal 7) jest mniej wygodny do takich zastosowań, choć możliwe jest tworzenie programów działających w tle, jednak wymaga to większego nakładu pracy i znajomości WinAPI. Wątek rozwinął się również w kierunku dyskusji o zaletach i wadach języków Pascal i C/C++, z uwzględnieniem różnic składniowych, czytelności kodu oraz efektywności. Poruszono kwestie operatorów w C, wskaźników, oraz trudności w tłumaczeniu kodu między tymi językami. Wspomniano także o kompilatorze Pascal dla mikrokontrolerów AVR (E-Lab). Wskazano, że do ukrywania aplikacji w systemie Windows można użyć funkcji API ShowWindow z parametrem SW_HIDE. Dyskusja zakończyła się apelem o zachowanie merytorycznego tonu i unikanie personalnych sporów.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA