Program do oceny

0

Witam,

chciałbym oddać Wam do wglądu mój projekt nad którym mocno pracuję. Jest to aplikacja korzystająca z silnika bazy danych Firebird 2.5 która umożliwia nagrywanie akcji wykonywanych przez użytkownika na komputerze tj. ruch myszy, wpisywanie klawiszy.

Wielu z Was pewnie pomyśli, jest wiele tego typu programów w necie, które to robią w prosty sposób. Jest pewna różnica pomiędzy innymi programami a tym. Jedną z głównych zalet tej aplikacji jest fakt, że program potrafi "inteligentnie" nagrywać wykonywane akcje.

WTF znaczy inteligentnie?
Otóż, program potrafi sam odnaleźć dany obiekt, który został wybrany przez użytkownika tj. przyciski, panele i inne komponenty innych programów, nie tyczy się to pulpitu i jego ikon oraz folderów i plików w oknie podglądu folderu oraz zawartości przeglądarek.

Przykład nagrania prostego schematu działania:

  1. Uruchom dowolny program.
  2. Nagraj Kliknięcie w przycisk.
  3. Odtwórz nagranie.

Program bez problemu odtworzy wcześniej zapisany schemat z resztą jak wszystkie inne dostępne w internecie.
Teraz otwórz program w dowolnym środowisku programistycznym, przesuń przycisk w dowolne miejsce na oknie, lub usuń go z formy, zapisz zmiany, skompiluj i uruchom. Następnie odpal dowolny program odtwarzający wcześniej zapisany schemat nagrania.
Efektem działania tych programów będzie kliknięcie w puste miejsce i ślepe przeniesienia kursora myszy w miejsce, gdzie niegdyś znajdował się przycisk. Natomiast jeśli chodzi o mój projekt to program poinformuje o braku przycisku jeżeli został usunięty, lub ustawi kursor/kliknie w przycisk jeżeli został on przesunięty w inne miejsce a okno na którym się znajduje zostało przesunięte.

Dodatkowym atutem jest możliwość tworzenia warunków (obecnie 1) i dopasowanie dalszego schematu wykonywania instrukcji w zależności od wyniku warunku (spełniony, lub nie) poprzez nadanie im identyfikatora PRAWDA/FAŁSZ:
Warunek: Combobox1 (Jeśli) Combobox2 (Obiekt istnieje) ListView (Wskaż obiekt na ekranie klikając na niego - komponent/okno).

Kolejna rzecz o jakiej warto wspomnieć jest możliwość tworzenia kont użytkowników, grup schematów i przypisywanie do nich samych instrukcji (instrukcje są to akcje wykonywane przez użytkownika). Póki co nie mam jeszcze instrukcji obsługi programu, ale na pewno takowa powstanie. Póki co jeżeli czegoś nie wiecie to pytajcie. Skrócona instrukcja dostępna jest w menu -> Pomoc -> Skróty klawiszowe.

Założeniem projektu jest możliwość tworzenia dużych schematów testowych dla aplikacji, możliwy ich eksport do XML oraz tworzenie skryptów i przenoszenie ich pomiędzy stacjami roboczymi, gdzie znajduje się zainstalowana aplikacja MoveIt.

Projekt jest w fazie rozwoju i non stop wprowadzane są poprawki w algorytmie wyszukiwania obiektów i jego odwołań do nich.

Program wrzucam tutaj w celu uzyskania od Was opinii oraz wysłuchania pomysłów jakie jeszcze można zaimplementować w programie.

Informuję, że program jest w fazie rozwoju i nie musi być skuteczny we wszystkich sytuacjach, których jeszcze nie miałem szansy odtworzyć u siebie na komputerze.

Program jest pisany w Delphi XE3 stąd też jego wielkość :)
Plik jest skompilowany w konfiguracji DEBUG z uwagi na to, że po przełączeniu na RELEASE wali AV.

6 screenów w załączniku.

Instrukcja instalacji:

  1. Pobierz paczkę z tej strony http://www.speedyshare.com/b29BM/MoveIt-package.rar
  2. Zainstaluj Firebird 2.5 zawarty w paczce
  3. Uruchom program i utwórz konto
0

1.Kod?
2.

Plik jest skompilowany w konfiguracji DEBUG z uwagi na to, że po przełączeniu na RELEASE wali AV.

To nie brzmi dobrze.
3.

  1. Zainstaluj Firebird 2.5 zawarty w paczce

To ja już sobie podaruję - potencjalny użytkownik chce Twoją aplikację, a nie Twoją aplikację i jakieś milion od firm trzecich. SQLite jest bodajże lokalną bazą, która nie wymaga dodatkowych serwerów, więc imo byłaby lepszym wyjściem.
4.25 MB aplikacja? Nie mogłeś jakimś osobnym programem strip-nąć tych zbędnych symboli?

2

Wielu z Was pewnie pomyśli, jest wiele tego typu programów w necie, które to robią w prosty sposób.

I co z tego - gdyby każdy rodzaj programu miał być tylko w jednej wersji, to mielibyśmy tylko jedną przeglądarkę, jeden edytor tekstowy, jeden pakiet biurowy, jeden program graficzny itd.; Właśnie dlatego, że ludzie coś robią jest taka różnorodność i to jest piękne;

Natomiast jeśli chodzi o mój projekt to program poinformuje o braku przycisku jeżeli został usunięty, lub ustawi kursor/kliknie w przycisk jeżeli został on przesunięty w inne miejsce a okno na którym się znajduje zostało przesunięte.

Bardzo dobrze, że jest takie zabezpieczenie, bo jeśli program klikałby "na ślepo" to mógłby wyrządzić więcej strat niż przynieść pożytku;

Plik jest skompilowany w konfiguracji DEBUG z uwagi na to, że po przełączeniu na RELEASE wali AV.

To bardzo niedobrze... Błedu nie usuwa się przez pozostawienie trybu debug by nie dostawać wyjątku - musisz znaleźć bug i go poprawić;


Program wygląda estetycznie, interfejs ma prosty i czytelny, komponenty fajnie porozmieszczane na formularzach - tutaj jest w porządku; Nie wiem, czy dobrym rozwiązaniem jest wykorzystywanie bazy danych do tak małej liczby zapisywanych informacji; Być może proste pliki amorficzne były by lepszym wyjściem; Jeśli jednak chcesz pozostać przy bazach, to skorzystaj z lekkiej SQLite tak, by nie dręczyć potencjalnego użytkownika instalacją dodatkowych komponentów.

0

@furious programming wielkie dzięki za zainteresowanie i uwagi :)

Jeśli chodzi o debug... nie wiem jak to ugryźć pokombinuję z showmessage po każdej linii kodu no bo nic innego nie mam do wyboru.
Jeśli chodzi o zapisywanie danych w bazie. Danych w brew pozorom będzie gigantyczna ilość chociażby ze względu na zapisywaną ścieżkę ruchu myszy X, Y * liczba schematów * liczba grup * liczba użytkowników w programie. Dodatkowo taki plik puchł by niesamowicie i łatwo o jego utratę czy uszkodzenie. Natomiast z bazą mam o tyle lepiej, że mogę robić backupy w prosty sposób robić zapytania i inne bajery. Akurat w tym wypadku sprawdza się w 100%. Firebird ma również wersję EMBEDDED więc wystarczy sam plik bazy i biblioteka dll także nie będzie problemu z przeniesieniem.

Cieszę się, że interfejs przypadł do gusty, tworzony był z myślą o przejrzystości i prostocie korzystania z dostępnych funkcji, natomiast teraz skupiam się na dokładnym dopracowaniu działania warunków i poprawności odnajdywania obiektów w przypadku ich przeniesienia/usunięcia czy zmiany nazwy.

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