Blog (13)
Komentarze (18)
Recenzje (0)

Wymiary okna programu, AutoSizer i rozważania filozoficzne

@wampir_Wymiary okna programu, AutoSizer i rozważania filozoficzne22.02.2011 19:28

Wiele rzeczy można sobie na komputerze ułatwić. Można powiedzieć, że komputer zrobi za nas dowolną rzecz, jaką sobie wymyślimy. Problem polega na tym, że najpierw trzeba go tego "nauczyć". Innymi słowy trzeba przygotować algorytm postępowania oraz narzędzia, dzięki którym osiągniemy zamierzony efekt.

W warunkach domowo-biurowych - jeżeli akurat nie mamy zamiaru nauczenia naszego laptopa, żeby nas zawiózł do pracy naszym samochodem - wystarczą dostępne narzędzia programowe i ich optymalna konfiguracja lub ewentualnie, jeżeli jesteśmy w stanie, stworzenie własne prostych narzędzi.

Jak już napisałem na początku możliwości realizacji naszych potrzeb są ograniczone tylko naszymi umiejętnościami i chęcią poświęcenia odpowiedniej ilości czasu. Gdybym opisał Wam wszystkie narzędzia, które sam sobie stworzyłem, aby osiągnąć efekty dokładnie takie jakich oczekiwałem, być może w reakcji usłyszałbym salwy śmiechu. Daruję więc sobie i przywołam tylko jeden, mało spektakularny przykład. Zatem będzie: z jednej strony - instruktarzowo, z drugiej - opis pokaże, jak w różny sposób można osiągnąć zbliżony efekt, choć nie zawsze idealny. A, tym samym, że aby osiągnąć efekt idealnie taki jak oczekiwany, trzeba włożyć nieco więcej pracy niż w rozwiązaniu najprostszym. Pytanie tylko: czy warto?

Cel:

otwieranie okna programu zawsze w tym samym położeniu i rozmiarze; program nie zapamiętuje wymiarów okna; (w tym przypadku - program: VirtualDub)

Rozwiązanie nr 1:

Zgodnie z tym co napisałem we wstępie: najczęściej wystarczają dostępne narzędzia i ich dobra konfiguracja. W tym przypadku: program AutoSizer. Programowi można przypisać aby po włączeniu dowolnego programu okno tego programu miało określony wymiar i położenie. AutoSizer musi być uruchomiony - więc, żeby nie było konieczności pamiętania o włączeniu go, trzeba zaznaczyć opcję startu z systemem w ustawieniach programu.

Owszem dla większości rozwiązanie nr 1 zakończyłoby problem. Niestety nie dla mnie. Ilość programów uruchamianych wraz ze startem systemu ograniczam do minimum. Jeżeli coś nie musi działać od razu - niech nie działa. Nie wchodziło też w grę ręczne uruchamianie programu przed włączeniem VirtualDuba.

Rozwiązanie nr 2:

Należało więc sprawić aby programu po jednym kliknięciu startowały jeden po drugim. I tu nasuwa się oczywiste rozwiązanie: utworzenie pliku bat, który zrobi to za nas. W miejscu z którego uruchamiamy program (menu Start lub pulpit) zmieniamy skrót aby odwoływał się do pliku bat zamiast do programu (ikonka zostaje :). Jeżeli nie chcemy oglądać okna wiersza poleceń możemy w opcjach skrótu ustawić "uruchom zminimalizowane", co spowoduje, że zminimalizowane okno wiersza poleceń pojawi się tylko na chwilę w pasku zadań aż uruchomią się właściwe programy. Plik bat powinien wyglądać tak:

@echo off
cd "C:\Program Files\Akcesoria\AutoSizer"
start AutoSizer.exe
PING -n 2 127.0.0.1>nul
cd "C:\Program Files\Akcesoria\VirtualDubMod 1.6.0.0 Surround"
start VirtualDubMod.exe

Ja z umiejętnością pisania skryptów jestem nieco na bakier, więc nie wiem jaki jest najlepszy sposób na odczekanie dwóch sekund, które trzeba dać AutoSizer'owi na uruchomienie. Niestety żadne tradycyjne Pause czy Wait z parametrem czasowym nie dawało efektu, natomiast natknąłem się na rozwiązanie wykorzystujące PING. Skoro działa - zostało.

Niestety efekt końcowy nie jest satysfakcjonujący. Dlaczego? Program AutoSizer działa w ten sposób, że jeżeli jest już uruchomiony próba ponownego uruchomienia go skutkuje przywołaniem okna ustawień, które normalnie jest schowane w zasobniku. Oczywiście niejednokrotnie mogłoby się zdarzyć, że będziemy chcieli uruchomić VirtualDuba, a AutoSizer będzie już włączony po poprzednim korzystaniu z VD. Wtedy wyskakiwałoby okno AutoSizera. Takie rozwiązanie mi nie odpowiadało.

Rozwiązanie nr 3:

Pora na wersję najbardziej rozwiniętą. Skoro już się powiedziało "a" i wdepnęło w skrypty bat, trzeba powiedzieć "b" i zrobić to jak należy. A zatem skrypt powinien sprawdzać czy konieczne jest włączenie AutoSizer'a, czy też program już działa.

Wspominałem już, że w skryptach nie jestem najmocniejszy, musiałem więc sięgnąć po pomoc do internetu i odnalazłem rozwiązanie z poleceniem "tasklist". Tasklist jest w rzeczywistości programem umożliwiającym wyświetlanie w linii komend informacji o procesach. Jak się dodatkowo okazało program Tasklist nie jest "na wyposażeniu" Windowsa XP Home Edition. Trzeba go było ściągnąć i umieścić w folderze Windowsa.

Możecie sobie wyobrazić, że dokopanie się do tych wszystkich informacji nie było wcale proste. Ostatecznie udało mi się sklecić odpowiedni skrypt, który realizował wszystko tak jak sobie to wymyśliłem:

@echo off
cd "C:\Program Files\Akcesoria\AutoSizer"
tasklist /FI "IMAGENAME eq AutoSizer.exe" 2>NUL | find /I /N "AutoSizer.exe">NUL
if "%ERRORLEVEL%"=="1" start AutoSizer.exe
PING -n 2 127.0.0.1>nul
cd "C:\Program Files\Akcesoria\VirtualDubMod 1.6.0.0 Surround"
start VirtualDubMod.exe

Na początku zadałem pytanie: "czy warto?. To niestety nie do końca trafne pytanie. Oczywiście celem było ułatwienie sobie pracy w ten sposób, żeby nie trzeba było za każdym razem ustawiać właściwego wymiaru okna, jednak "idealne", trzecie rozwiązanie to już kaprys - nie chcę autostartu, nie chcę minimalizować. Kaprys wynikający pewnie z psychologii. Tak po prostu mam, że nie lubię sprawy zostawić zrobionej w połowie, "częściowo dobrze", jeżeli wiem, że na pewno dałoby się to zrobić lepiej. Tyle, że "lepiej" zawsze wymaga poświęcenia czasu. (Czy ktoś zdiagnozował u siebie podobną przypadłość?)

Informacje o Tasklist: microsoft.com

Do pobrania i dodatkowe informacje po polsku: www.computerhope.com/download/winxp www.colorconsole.de/console/pl/158

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.