Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Tworzenie przydatnych programów

zdunek123 10 Lut 2013 13:24 2394 13
  • #1 10 Lut 2013 13:24
    zdunek123
    Poziom 16  

    Witam, wybieram się na technikum Informatyczne i chciałbym coś poszperać w tym kierunku. Chodzi mi o to że chciałbym zrobić program który będzie instalował na moim komputerze wszystkie potrzebne ( przydatne ) programy.

    Mam np. program :
    -Skype
    -Gadu-Gadu
    -Przeglądarka Internetowa

    Te programy są spakowane lub wrzucone do pewnego folderu.
    Jest osobna ikonka którą jak włączę to zacznie się instalacja Skype, gdy zakończy się to włączy program automatycznie instalator Gadu-Gadu.
    Co o tym sądzicie ? W jakim programie to napisać ? Czy mogli byście podesłać mi jakieś informacje które przydadzą mi się , i podstawy takiego krótkiego programowania ?

    PS. Jeszcze rozmyślałem 2 opcję:

    Poprzez uruchomienie instalatora , wyskakuje okienko np. z tymi 3 przyciskami (na których jest nazwa danego programu ) poprzez kliknięcie Guzika , instalator rozpoczyna pracę.

    Wszystkie odpowiedzi mile widziane i czekam na uwagi :)

    0 13
  • #2 10 Lut 2013 14:34
    marcinj12
    Poziom 40  

    Hmmm, według mnie to będzie raczej średnio przydatne...
    W końcu jak często reinstalujesz system - raz do roku? Programów będzie góra kilkanaście, do tego pewnie będziesz chciał mieć co roku ich najnowsze wersje.
    Nikt też nie zagwarantuje, że nie zmieni się menu instalatora programu i np. nie będziesz chciał odznaczyć jakiejś opcji, której wcześniej nie było (teraz wszyscy chcą instalować z programem jakiś dodatkowy syf - toolbary, programy, przeglądarki) - dlatego lepiej robić to ręcznie.
    Gdyby to miało służyć do instalacji programów np. w firmie, to instaluje się je na modelowym komputerze, wypala obraz i na pozostałych komputerach wgrywa ten obraz.

    Niemniej, gdyby chcieć to zrobić samemu, to większość instalatorów oferuje jakiś tryb instalacji automatycznej. Niestety, każdy inny - musisz najpierw poszukać na necie odpowiedniej składni polecenia (szukaj po: nazwa_programu silent installation), a jak znajdziesz, wystarczy prosty baczyk, coś w stylu:

    Kod: actionscript
    Zaloguj się, aby zobaczyć kod


    Bardziej ambitnym podejściem do tematu jest wykonanie jakiegoś własnego instalatora, z wykorzystaniem np. darmowego Inno Setup.

    0
  • #3 10 Lut 2013 21:35
    Raphaw
    Poziom 20  

    Coś takiego: http://ninite.com/ ? :) Poza minusami wskazanymi przez kolegę dodałbym jeszcze fakt iż instalatory offline zajmowałyby sporo miejsca i szybko się deaktualizowały. Jeśli chcesz się nauczyć programować proponowałbym nieco inne podejście - przerobienie jakiegoś kursu np C/C++, Java, żeby załapać podstawy, a następnie próbę napisania własnego programu, np. prostej gry.
    Pozdrawiam.

    0
  • #4 11 Lut 2013 22:25
    101pawel
    Poziom 25  

    zdunek123 napisał:
    Chodzi mi o to że chciałbym zrobić program który będzie instalował na moim komputerze wszystkie potrzebne ( przydatne ) programy.
    Nie obraź się, ale, - albo robisz jakaś podpuchę, albo rzeczywiście jesteś bardzo młody i nie miałeś okazji choćby tylko przez parę lat czytać grupy pl.comp.nowe-programy? Nie jest łatwo wymyślić programik użytkowy, który nie byłby już wymyślony; już w latach 80. ub. wieku codziennie na świecie powstawało ich około 3 tyś, z czego ok. 1 tysiąca kwalifikowało się do wystawienia na stronie tucows(!), czyli było rzeczywiście jako takie użyteczne. Z serii programów do backupu systemu, tworzenia obrazu partycji czy dysku do dziś pozostał chyba nieprześcigniony Norton Ghost. Nie wymyślisz ponownie koła, ani nie odkryjesz Ameryki.
    Co do meritum, - automatyczną(?) instalację programu trudno zautomatyzować (co innego obraz zakończonej instalacji), w jej trakcie w wielu przypadkach należy z setupem współpracować interaktywnie, wybierając opcje czy jakieś parametry. Jeśli instalacja polega tylko na uruchomieniu pliku instalacyjnego i czekaniu na komunikat o zakończeniu, to automatyzacja jest tym bardziej bezsensowna, na upartego wykonasz to jak pisze Ci kolega marcinj12 plikiem wsadowym.
    Aha, ściągnij sobie tego Ghosta. Za parę lat jak już będziesz dobry w te klocki to go podrasujesz ;)
    Pozdrawiam

    0
  • #5 12 Lut 2013 23:52
    wcale
    Poziom 12  

    A mi przydał by się program wyświetlający barwę w zależności od podanej temperatury - barwa podana w RGB dec i hex (dla palety od 8 do 16 bit na kolor) a stopnie w Kelvinach od 0 do maxint. Dodatkowo mile widziana była by wartość transparent przy podczerwieni.
    Oczywiście program powinien być dokładny a nie aproksymować z tablic.

    0
  • #6 02 Kwi 2013 21:38
    OgrzesiekO
    Poziom 12  

    Podpinam się do prośby zdunek123.

    Mogę istalować za pomocą pliku wsadowego i póki co tak robię ale ja bym chciał to scalić że tak się określę. Nie chce mieć pliku wsadowego tylko jeden plik np instalka.exe. Ghosta mam opanowanego (nie jest to jakiś skomplikowany program) tylko że zrobienie kopi systemu i wrzucenie go później na inną płytę główną nie działa to normalne.

    Mam np

    - Firefox
    - Adobe reader
    - Winrar
    - Open office
    - flash

    itp

    Zamiast klikać każdy po kolei (czy też klikać na klawiaturze T albo N przy pliku wsadowym) chciałbym scalić te programy i po kliknięciu na instaltor pokazuje mi programy które chce zainstalować. Klikam i instaluje :)
    Zdaję sobie sprawę że to może być trudne ale możliwe. Czy jest ktoś kto by mnie poinstruował czy też jakiś link do tutka podarował? Szukałem na googlach ale zostałem tutaj odesłany xd. Pozdrawiam

    0
  • #8 03 Kwi 2013 19:26
    OgrzesiekO
    Poziom 12  

    No ok mam zainstalowane InnoSetup i jak mam te programy scalić?

    Mogę się domyślać że trzeba by było każdy program rozebrać na czynniki pierwsze później w InnoSetup zaprogramować tak aby każdy plik został skopiowany w odpowiednie miejsce.
    Tylko jak to zrobić i gdzie dokładnie to wrzucić.
    Dwa to rejestry, co z rejestrami? Oglądałem tutorial w którym gostek zrobił instalator w Inno ale to były pliki portable których nie trzeba było nawet instalować.

    0
  • #9 03 Kwi 2013 19:37
    Dżyszla
    Poziom 42  

    Niczego rozbierać nie musisz. Wystarczy, że uruchomisz wybrane instalatory (analogicznie, jak w pliku BAT) wrzucając je wszystkie do jednego swojego instalatora (InnoSetup oczywiście robi to sam podczas kompilacji).

    0
  • #10 03 Kwi 2013 20:37
    OgrzesiekO
    Poziom 12  

    Hmm. Ja to zrobiłem tak. Wybrałem dajmy na to 5 instalek programów. W inno zrobiło mi z nich jedną instalkę dajmy na to o wadze 202mb. Klikam na ten instalator i on mi "instluje" to w program files/instalator i w folderze instalator znajdują się te instalki (to tak jak bym je spakował winrarem a później rozpakował XD a ja bym chciał jeszcze żeby mi to z automatu wszystko zaczęło instalować tak abym nie musiał klikać dalej->dalej->zakończ. Zaczynam rozkminiać bo to pod cichą instalacje podchodzi. Problem jaki mam teraz to problem z przełącznikami :( nie znam wszystkich i stoję na Open Office)

    0
  • #11 03 Kwi 2013 22:43
    Dżyszla
    Poziom 42  

    Po pierwsze, to nie trzeba ich nigdzie na stałe rozpakowywać. Zobacz opis flagi deleteafterinstall oraz w sekcji [Run] nie używaj flagi postinstall. Dodatkowo możesz wykorzystać jako miejsce docelowe zmienną {tmp}. Z kolei przy użyciu zadań lub komponentów możesz zadecydować, który plik zostanie rozpakowany i uruchomiony.

    Co do parametrów poszczególnych instalatorów, to mogą się różnić i nie każdy używać tego samego zestawu, a nawet nie każdy obsługiwać cichą instalację. Jeśli będziesz mieć szczęście, to uruchomienie z przełacznikiem /? lub /help lub -help wyświetli listę opcji. Jeśli nie, pozostaje samemu strzelać... :( lub szukać rozwiązań u źródła, czyli twórców poszczególnych programów.

    0
  • #12 04 Kwi 2013 09:23
    OgrzesiekO
    Poziom 12  

    No to chyba rozumie. Najpierw pobieram programy które chcę sobie "scalić" w jeden plik. Tworze foldery i wrzucam do każdego folderu dany program. Później tworze plik wsadowy w którym zadeklaruję cichą instalacje dla każdego programu (przełączniki są różne). Jak to wszystko zrobię to na koniec InnoSetup tworze instalkę ale tak żeby po zainstalowaniu usunął mi te pliki które wyodrębnił. :)

    0
  • #13 04 Kwi 2013 09:56
    Dżyszla
    Poziom 42  

    Nie musisz tworzyć żadnego pliku wsadowego ani żadnych folderów (zakładając, że będziesz wykorzystywać instalatory programów).

    Robisz coś na kształt (piszę z głowy):

    Code:
    [Files]
    
    Source: Firefox.msi; DestDir: {tmp} Components: Firefox; Flags: deleteafterinstall

    [Components]
    Name: "firefox"; Description: "Przeglądarka Firefox"; Types: full compact custom

    [Run]
    Filename: {tmp}\Firefox.msi; Parameters: "/passive"; Description: Instaluj Firefox; WorkingDir: {tmp}; Flags: shellexec waituntilterminated; Components: Firefox

    0
  • #14 04 Kwi 2013 15:25
    OgrzesiekO
    Poziom 12  

    hmm. Czy mógłbyś zrobić mi w innosetup
    - Acrobat Reader
    - Mozille

    w jednej paczce i poprawny opis podobny do tego wyżej?
    Jeżeli dałbyś mi wzór to zrozumiałbym jak to działa.
    Będę wdzięczny a tobie by to chwilę zajęło :)



    to mi się całkiem zesypało :/

    ; Script generated by the Inno Setup Script Wizard.
    ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

    #define MyAppName "Paczka"
    #define MyAppVersion "1.0"
    #define MyAppPublisher "Grzechu"
    #define MyAppExeName "MyProg.exe"

    [Setup]
    ; NOTE: The value of AppId uniquely identifies this application.
    ; Do not use the same AppId value in installers for other applications.
    ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
    AppId={{40D95912-C0F4-4C3B-8385-8C81F84687BE}
    AppName={#MyAppName}
    AppVersion={#MyAppVersion}
    ;AppVerName={#MyAppName} {#MyAppVersion}
    AppPublisher={#MyAppPublisher}
    DefaultDirName=C:\temp
    DefaultGroupName={#MyAppName}
    DisableProgramGroupPage=yes
    OutputBaseFilename=setup
    Compression=lzma
    SolidCompression=yes

    [Languages]
    Name: "english"; MessagesFile: "compiler:Default.isl"

    [Tasks]
    Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

    [Files]
    Source: "C:\Program Files\Inno Setup 5\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion
    Source: "C:\Documents and Settings\Grzechu\Pulpit\temp\Instalka.CMD"; DestDir: "{app}"; Flags: ignoreversion
    Source: "C:\Documents and Settings\Grzechu\Pulpit\temp\Chicha instalacja Adobe\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: "C:\Documents and Settings\Grzechu\Pulpit\temp\Cicha instalacja ffdshow\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: "C:\Documents and Settings\Grzechu\Pulpit\temp\Cicha instalacja Firefox\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: "C:\Documents and Settings\Grzechu\Pulpit\temp\Cicha instalacja GIMP\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: "C:\Documents and Settings\Grzechu\Pulpit\temp\Cicha instalacja net2.0\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: "C:\Documents and Settings\Grzechu\Pulpit\temp\Cicha instalacja Net framework 3.1\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: "C:\Documents and Settings\Grzechu\Pulpit\temp\Cicha instalacja NetFramework 4\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: "C:\Documents and Settings\Grzechu\Pulpit\temp\Cicha instalacja OpenOffice\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: "C:\Documents and Settings\Grzechu\Pulpit\temp\Cicha instalacja poprawki wic 3.0\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: "C:\Documents and Settings\Grzechu\Pulpit\temp\Cicha instalacja Real\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
    ; NOTE: Don't use "Flags: ignoreversion" on any shared system files

    [Icons]
    Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
    Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

    [Run]
    Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

    0