Zacząłem się trzy dni temu uczyć programowania i dzisiaj udało mi się skończyć pierwszy w pełni samodzielny program. Prosty bo prosty, ale własny. Potrzebuję królików doświadczalnych, które mi udzielą feedbacku, a że program jest związany z WoWem, to jest to chyba właściwe miejsce by prosić o pomoc.
Program ma na celu automatyczne wykonanie kopii zapasowej folderu WTF (czyli ustawień addonów) w postaci archiwum RAR i zrzucenie tego na pulpicie. Może to działać powoli i topornie, a zależy to głównie od wydajności komputera, ilości dysków, wielkości tych dysków, ilości danych na nich zapisanych oraz tego gdzie jest zainstalowany WoW. To przez to, że musiałem znaleźć jakieś rozwiązanie na lokalizowanie folderu WTF niezależnie od tego, gdzie są instalowane programy. Pierwotna wersja zawsze zakładała dysk C:\ i jak wysłałem znajomemu to z przerażeniem odkryłem, że nic nie działa. Moje trzydniowe doświadczenie programistyczne nie jest zbyt wielkie, więc dopiero po kilku godzinach udało mi się wymyślić rozwiązanie opierające się skanowaniu w kolejności alfabetycznej zawartości wszystkich dysków. Jak program trafi na wow.exe - zatrzymuje się. Dlatego to tyle trwa.
Do działania potrzebny jest WinRAR (dowolna wersja) i Python w wersji 2.7, którego pobrać można tutaj: LINK
Jeżeli masz 64-bitowy system - ściągnij wersję Windows X86-64 MSI Installer (2.7.6) [1] (sig). Jeśli nie wiesz, jaki masz system, ściągnij Windows x86 MSI Installer (2.7.6) (sig).
Wiem, że wygląda to topornie, ale nie umiem póki co zrobić niczego lepszego. Wiem, że funkcjonalność jest minimalna i program jest toporny, ale to mój pierwszy w życiu. Potrzebuję informacji o tym, czy wam to działa, a jeśli nie to co jest nie tak. Do tego najlepiej jeszcze informacja o wersji systemu (XP, Vista, 7, oraz gdzie jest zainstalowany WoW i WinRAR. Byłbym również wdzięczny za screen konsoli, bo powinna wywalać jakieś błędy. Jeżeli będą jakieś poważne błędy to może się zamknąć błyskawicznie, ale zazwyczaj w takim przypadku jest jakiś komunikat o błędzie i po prostu trzeba szybko robić screena.
EDIT
Z poniższej krótkiej dyskusji wynikło dla mnie na tyle sporo, że powyższe staje się nieaktualne. Już wiem, co muszę dopracować. :) Dlatego usuwam link do programu.
|
|
Skanowanie zawartości dysków w poszukiwaniu określonej aplikacji jest nieefektywne - pamiętaj, że WoW (zresztą nie tylko WoW) tworzy w rejestrze systemowym pewnie wpisy - może to Cię naprowadzi ;-)
Jaki jest sens wymagania WinRAR? System Windows posiada wbudowanego ZIPa - wszystko można z poziomu wiersza poleceń/shella wykonać, tym bardziej, że archiwizowane są pliki o strukturze pliku tekstowego. Kolejna kwestia - co w przypadku, gdy ktoś celowo nazwie inny plik wow.exe? :) Dlaczego Python? K. <3
|
|
Od Pythona zacząłem naukę. Każdy co innego twierdzi, jak chodzi o język, od którego najlepiej zacząć. Trochę poczytałem i padło na ten.
Z WinRARem to głównie kwestia mojej niewiedzy. Ucząc się korzystałem z materiałów nastawionych na użytkowników Linuksa, więc muszę to sobie sam przerabiać na to, co funkcjonuje pod Windowsem. Tam też było o zipowaniu pod Linuksem i Windowsem, ale nic o tym, że na Windowsie można to zrobić bez zewnętrznego oprogramowania. Wyszedłem z założenia, że WinRAR jest najpopularniejszym programem, stąd na niego padło. Zastanowię się nad zmianą. Co do skanowania - jest nieefektywne, ale pewne. Rozważałem szukanie po wpisie InstallPath w rejestrze, ale ten wpis nie zawsze jest. Ja go na przykład nie mam, a normalnie instalowałem WoWa. Część osób zwyczajnie kopiuje folder zmieniając system i oni też nie będą tego wpisu mieli. Skanowanie daje gwarancje - jest albo nie ma. Teoretycznie mógłbym najpierw skanować rejestr i jeżeli nic nie znajdzie to szukać skanując dyski, ale to jak na razie jest zbyt skomplikowane. |
|
Spodziewasz się, że ktoś ściągnie i uruchomi program z nieznanego źródła, który robi to samo, co składający się z 5 linijek batch?
Wybrałeś chyba najbardziej skomplikowaną i zasobożerną metodę z możliwych, która na dodatek jest zupełnie nieskuteczna, jeśli użytkownik: -ma więcej niż 1 katalog z WoWem (np. z PTRową wersją) -ma jakikolwiek plik o nazwie wow.exe (dosyć popularny skrót) -nie ma pliku wow.exe (wow-64 się kłania) Jeśli zastanawiasz się jak to zrobić, to: -wersja najprostsza; wykorzystanie pliku katalog.txt, w którym użytkownik podaje ścieżkę -wersja prosta; audyt z zapytaniem o katalog z WoWem -wersja zaawansowana; wyciągnięcie tego z rejestru Windows
Albo dodać funkcję zrzucania logów. |
|
Wybrałem jedyną metodę, jaka mi do głowy przyszła. Nie jestem programistą, ledwo co uczyć się zacząłem. Owszem, metoda jest nieskuteczna i te jej słabe strony potrzebuje poznać. Jak mam się inaczej nauczyć? Zacząłem pisać, aż doszedłem do momentu, gdy u mnie działało zawsze bez problemów. Wysłałem znajomemu i zacząłem poprawiać tak, by zaczęło działać bez problemu i u niego. W międzyczasie musiałem wszystko od nowa napisać, bo pierwotna wersja okazała się nie dawać kompletnie rady w innych okolicznościach. Ale do tego musiałem jakoś dojść, na tym nauka polega.
Co do wow-64.exe - patrzyłem wcześniej, jak to u mnie wygląda. Mam zarówno wow.exe jak i wow-64.exe, więc wyszedłem z założenia, że tak jest zawsze. Zaś co do logów - do tego jeszcze nie doszedłem. Jakbym umiał, to bym coś takiego dodał. |