Autor Wątek: CE Scripting  (Przeczytany 6381 razy)

Offline mdsoft

  • GZU
  • Swojak
  • ****
  • Podziękowań: 11
CE Scripting
« dnia: Sobota, 13 Czerwiec 2009, 19:59 »
Nowa wersja i nowe podejście do wcześniejszego pomysłu, czyli "CE Scripting" (CES) z obsługą MortScript'a i PHP ;)


W tym momencie CES to maszynka do odpalania skryptów MORT na PDA; Obsługi PHP jeszcze nie "włączyłem".
Program pozwala edytować kilka plików na raz,
Wykonanie skryptu przez Ctrl+E lub F5 lub F9.
CES ma "swojego" MORT'a, którego wgrywa do PDA w trakcie nawiązywania połączenia - nie ma konieczności wcześniejszej instalacji MORT'a.

Co w kolejnych wersjach:
- wykrywanie typu urządzenia aby wgrywać odpowiednią wersję MORT'a
- korzystanie z MORT'a już zainstalowanego (jako opcja), bez wgrywania "swojego"
- kontrola wykonania skryptu (parametry uruchomienia skryptu, możliwość "ubicia")
- włączenie obsługi PHP
- podświetlanie/wykrywanie składni MORT'a

http://www.mdsoft.pl/ces_test/ces_test1.zip
Potestujcie, pooglądajcie - wszystkie sugestie i pomysły mile widziane  :ok:
« Ostatnia zmiana: Poniedziałek, 15 Czerwiec 2009, 10:21 wysłana przez mdsoft »

Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Podziękowań: 140
  • Samsung Note 4
Odp: CE Scripting
« Odpowiedź #1 dnia: Sobota, 13 Czerwiec 2009, 22:10 »
- korzystanie z MORT'a już zainstalowanego (jako opcja), bez wgrywania "swojego"

hmm, bardzo mocno naciskam ;)  zawsze używam najnowszej bety... :)
Pobawię się i dam znać, jakie spostrzeżenia.


Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Podziękowań: 140
  • Samsung Note 4
Odp: CE Scripting
« Odpowiedź #2 dnia: Wtorek, 30 Czerwiec 2009, 11:41 »
W końcu się pobawiłem chwilkę :)
Działa - to najważniejsze! Za pierwszym razem coś schowek nie chciał zadziałać, ale potem już działał i nie potrafię powiedzieć, co było...
Teraz - kolorowanie składni i opcja wykorzystania morta wbudowanego :)



Offline mdsoft

  • GZU
  • Swojak
  • ****
  • Podziękowań: 11
Odp: CE Scripting
« Odpowiedź #3 dnia: Wtorek, 30 Czerwiec 2009, 13:48 »
Cytat: ═╣ utak3r ╠═
Za pierwszym razem coś schowek nie chciał zadziałać, ale potem już działał i nie potrafię powiedzieć, co było...
Też to miałem i już poprawione ;)

Cytat: ═╣ utak3r ╠═
Teraz - kolorowanie składni i opcja wykorzystania morta wbudowanego :)
Wbudowany Mort też już śmiga.
Teraz dopieszczam obsługę PHP - funkcje CES_xxxxxx.

Robię też możliwość, przygotowanie i obsługi "paczek", czyli możliwość dystrybucji kilku plików (php + mort'y + np. pliki exe) jako jednego pliku "paczki".
Paczka będzie automatycznie otwierana i wykonywany domyślny skrypt z paczki.
Do tego rejestracja MIME w systemie i tak gotowe paczki/skrypty można będzie umieszczać na stronach,
wtedy wystarczy mieć u siebie CES'a, klik na linku na stronie i automatycznie będziemy mieć wykonany kod/wgrane pliki/zmodyfikowany rejestr na PDA ;)
Może być przydatne dla "leniuchów", którym nie chce się grzebać  i wgrywać ;)

Offline mobi

  • Administrator
  • Core
  • *****
  • Podziękowań: 351
  • Wizard/HD2/Kaiser/SGS3/HTC E8/HTC 10/Xiaomi MiA1
Odp: CE Scripting
« Odpowiedź #4 dnia: Wtorek, 30 Czerwiec 2009, 13:51 »
mdsoft, a może to narzędzie wykorzystać do tego co Ci pisałem?
Chodzi mi o update tweaków do CeRega, ale to może zbyt skomplikowane będzie.


Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Podziękowań: 140
  • Samsung Note 4
Odp: CE Scripting
« Odpowiedź #5 dnia: Wtorek, 30 Czerwiec 2009, 13:55 »
Robię też możliwość, przygotowanie i obsługi "paczek", czyli możliwość dystrybucji kilku plików (php + mort'y + np. pliki exe) jako jednego pliku "paczki".
Paczka będzie automatycznie otwierana i wykonywany domyślny skrypt z paczki.

mów mi więcej  :D  to byłoby piękne rozwiązanie.

Offline globalbus

  • GZU
  • Core
  • ****
  • Podziękowań: 77
  • N900 + Zest
Odp: CE Scripting
« Odpowiedź #6 dnia: Wtorek, 30 Czerwiec 2009, 13:59 »
na hotfix'y jak znalazł ;)

Offline mdsoft

  • GZU
  • Swojak
  • ****
  • Podziękowań: 11
Odp: CE Scripting
« Odpowiedź #7 dnia: Wtorek, 30 Czerwiec 2009, 14:08 »
mdsoft, a może to narzędzie wykorzystać do tego co Ci pisałem?
Chodzi mi o update tweaków do CeRega, ale to może zbyt skomplikowane będzie.
No dokładnie ;)
Zamiast tweak'a zapisywać w xml'u, to jako skrypt Mort'a lub PHP  :ol:
hmmm... niech CES zacznie działać zgodnie z planami i wtedy można będzie pomyśleć już konkretnie ;) - CERE wygeneruje plik Mort'a na podstawie pliku lub rejestru  :o  ;)

Offline mdsoft

  • GZU
  • Swojak
  • ****
  • Podziękowań: 11
Odp: CE Scripting
« Odpowiedź #8 dnia: Czwartek, 02 Lipiec 2009, 15:02 »
No to kolejny test:
http://www.mdsoft.pl/ces_test/ces_test2.zip

+ włączona obsługa PHP
+ możliwość wyboru wersji MORT'a
+ lista ostatnio otwieranych plików

Lista dodatkowych funkcji dla PHP:
  • CES_FileCopyToCE(skad, gdzie) - kopiuje plik/pliki (obluguje maski) do PDA; nie trzeba troszczyć się o katalogi, jak trzeba to CES je pozakłada
  • CES_FileCopyToPC(skad, gdzie) - kopiuje plik/pliki (obluguje maski) z PDA na PC
  • CES_FileExistsAtCE(nazwa) - sprawdza czy plik istnieje na PDA
  • CES_FileDeleteAtCE(nazwa) - kasuje plik na PDA
  • CES_DirCreateAtCE(nazwa) - tworzy katalog na PDA; podobnie jak przy kopiowaniu plików; można podać całe drzewko, a wszystkie katalogi "po drodze" zostaną założone
  • CES_DirCreateAtPC(nazwa) - tworzy katalog na PC
  • CES_DirExistsAtCE(nazwa) - sprawdza czy katalog istnieje na PDA
  • CES_DirDeleteAtCE(nazwa) - kasuje katalogna PDA
  • CES_RegKeyCreate(nazwa) - tworzy klucz w rejestrze PDA; można podać całą strukturę, wszystkie potrzebne klucze utworzą się
  • CES_RegKeyExists(nazwa) - sprawdza czy klucz istnieje w rejestrze
  • CES_RegValueExists(nazwa) - sprawdza czy wartość istnieje
  • CES_RegValueSet_REG_SZ(nazwa_klucza, nazwa_wartosci, dane) - tworzy/ustawia wartość typu REG_SZ; nie trzeba troszczyć się o klucz- jak go nie bedzie CES go założy
  • CES_RegValueSet_REG_DWORD(nazwa_klucza, nazwa_wartosci, dane) - podobnie jak wyżej, tyle że tworzy wartość DWORD
  • CES_RegValueGet(nazwa_klucza, nazwa_wartosci) - zwraca wartość z rejestru
  • CES_MortRunScript(nazwa_pliku) - uruchamia skrypt MORT z podaną nazwą
  • CES_MortRunCode(polecenie_mortscript) - uruchamia podany kod MortScript

W załączeniu, przykład z wywołania kodu MORT'a z poziomu PHP.

Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Podziękowań: 140
  • Samsung Note 4
Odp: CE Scripting
« Odpowiedź #9 dnia: Czwartek, 02 Lipiec 2009, 15:06 »
ajajaj... wygląda to bardzo obiecująco  :o   Sprawdzałeś może, czy potrafi podmieniać pliki systemowe? Wieczorkiem na pewno będę testował  :peace:


Offline mdsoft

  • GZU
  • Swojak
  • ****
  • Podziękowań: 11
Odp: CE Scripting
« Odpowiedź #10 dnia: Sobota, 04 Lipiec 2009, 12:43 »
Kolejna wersja: http://www.mdsoft.pl/ces_test/ces_test3.zip
Dodałem kolorowanie składni, dostępne dla MORT'a i PHP oraz podświetlanie aktualnej linii w edytorze.
W miarę możliwości sprawdźcie czy wszystkie elementy są prawidłowo "kolorowane" - mogłem gdzieś się walnąć, pisząc obsługę "gramatyki" języka.

Kolorowanie w MORT
[attachment=1]

Kolorowanie w PHP
[attachment=2]
« Ostatnia zmiana: Sobota, 04 Lipiec 2009, 13:20 wysłana przez mdsoft »

Offline mdsoft

  • GZU
  • Swojak
  • ****
  • Podziękowań: 11
Odp: CE Scripting
« Odpowiedź #11 dnia: Piątek, 10 Lipiec 2009, 10:33 »
Kolejna wersja:
http://www.mdsoft.pl/ces_test/CES_Setup_1.0.0.3.exe
oraz "szybki" opis funkcji PHP dostępnych w CES - sorry, ale na razie tylko angielski :)
http://www.mdsoft.pl/ces_test/CES_manual.pdf

Co w nowej wersji?
Głównie zmiany w funkcjach PHP, kilka funkcji zostało usuniętych, kilka doszło. Dodałem też możliwość wymieniania się danymi między PHP a MORT'em - np. można z poziomu MORT'a odczytać stan baterii, ilość wolnego miejsca na dysku i przekazać te wartości do PHP.


Do funkcji plikowych, lokalizacje na PDA należy przekazywać z przedrostkiem CE\.
np. jeżeli chcemy skopiować pliki z katalogu c:\test do PDA, do folderu \program files\mojepliki,
lokalizację na PDA należy podać jako ce\program files\mojepliki
CES_FileCopy("c:\\test\\","ce\\program files\\mojepliki\\");

  • CES_FileCopy(skad, gdzie) - kopiuje plik/pliki (obluguje maski)
  • CES_FileExists(nazwa) - sprawdza czy plik istnieje
  • CES_FileDelete(nazwa) - kasuje plik
  • CES_DirCreate(nazwa) - tworzy katalog
  • CES_DirExists(nazwa) - sprawdza czy katalog istnieje
  • CES_DirDelete(nazwa) - kasuje katalogna
  • CES_RegKeyCreate(nazwa) - tworzy klucz w rejestrze PDA; można podać całą strukturę, wszystkie potrzebne klucze utworzą się
  • CES_RegKeyExists(nazwa) - sprawdza czy klucz istnieje w rejestrze
  • CES_RegValueExists(nazwa) - sprawdza czy wartość istnieje
  • CES_RegValueSet_REG_SZ(nazwa_klucza, nazwa_wartosci, dane) - tworzy/ustawia wartość typu REG_SZ; nie trzeba troszczyć się o klucz- jak go nie bedzie CES go założy
  • CES_RegValueSet_REG_DWORD(nazwa_klucza, nazwa_wartosci, dane) - podobnie jak wyżej, tyle że tworzy wartość DWORD
  • CES_RegValueGet(nazwa_klucza, nazwa_wartosci) - zwraca wartość z rejestru
  • CES_MortRunScript(nazwa_pliku) - uruchamia skrypt MORT z podaną nazwą
  • CES_MortRunCode(polecenie_mortscript) - uruchamia podany kod MortScript
  • CES_MortReadValue (nazwa_wartości) - umożliwia odczyt wartości przekazanych przez MortScript
  • CES_MortWriteValue(nazwa_wartości, dane) - zapis wartości, do przekazania do MortScript
  • CES_MessageInfo(komunikat) - wyświetla okno z komunikatem
  • CES_MessageWarning(ostrzeżenie) - wyświetla okno z ostrzeżeniem
  • CES_MessageError(błąd) - wyświetla okno z błędem
  • CES_DialogAnswer(pytanie, guziki) - wyświetla okno z pytaniem i czeka na odpowiedź użytkownika
  • CES_DialogEnterParam(komunikat) - wyświetla okno z kumunikatem i czeka na wprowadzenie "danych" przez użytkownika
  • CES_DialogSelectParam(komunikat,lista) - wyświetla okno z kumunikatem i czeka na wybranie przez użytkownika pozycji z listy
  • CES_DialogSelectFolder(lokalizacja) - wyświetla okno, gdzie użytkownik może wybrać folder (na PC lub CE)

W jaki sposób wymieniać dane między PHP a MortScript'em:
Do wymiany danych między PHP a MORT'em wykorzystane są pliki INI. MORT posiada bardzo łatwe w użyciu funkcje IniRead i IniWrite.
Dzięki nim, łatwo i szybko można zapisać/odczytać wartości z/do pliku.
Dodatkowo CES oferuje dwie funkcje CES_MortReadValue, CES_MortWriteValue, które zwalniają z zastanawiania się nad nazwami plików, sekcji, itp.
CES uruchamiając MORT'a, rejestruje w nim dwie zmienne globalne, CES_INOUT i CES_SECTION.
Należy się nimi posłużyć przy wywołaniach funkcji IniRead i IniWrite.
CES_INOUT - to nazwa pliku INI,
CES_SECTION - to nazwa sekcji w pliku INI

Jak połączymy to razem, to otrzymujemy to:
[attachment=1]


Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Podziękowań: 140
  • Samsung Note 4
Odp: CE Scripting
« Odpowiedź #12 dnia: Piątek, 10 Lipiec 2009, 11:04 »
W jaki sposób wymieniać dane między PHP a MortScript'em

ciekawa idea  :ok:

Offline globalbus

  • GZU
  • Core
  • ****
  • Podziękowań: 77
  • N900 + Zest
Odp: CE Scripting
« Odpowiedź #13 dnia: Sobota, 11 Lipiec 2009, 19:48 »
Potężne narzędzie :) Jak na razie propozycji z mojej strony brak, bo jeszcze nie w pełny wykorzystałem program :-[

Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Podziękowań: 140
  • Samsung Note 4
Odp: CE Scripting
« Odpowiedź #14 dnia: Sobota, 11 Lipiec 2009, 20:00 »
ciężko go wykorzystać "w pełni".... daje ogromne wręcz możliwości :)