s0n1c Opublikowano 12 Września 2010 Zgłoś Opublikowano 12 Września 2010 Zaczne od tego ze nie znam tego jezyka :P (Opieram sie na skladni c podobnych) Chce sobie zrobic skrypt, dzieki ktoremu po nacisnieciu klawisza 9 w telefonie, muzyka bedzie wyciszana. Natomiast ponowne nacisniecie podglosni do poziomu sprzed wyciszenia (logiczne). I tutaj pojawia sie problem: Za kazdym razem z wyciszenia (tj. settings.Volume < -30) wraca do wartosci 0. Jak to rozwiazac? Wiem ze diabel tkwi w szegole :P public volsub KeyPress() select case BRCD.Key (...) case "7": if settings.ActivePlaybackOrder <> orderShuffle then settings.ActivePlaybackOrder = orderShuffle else settings.ActivePlaybackOrder = orderDefault end if case "9": if settings.Volume >= -30 then //mute on vol = settings.Volume settings.Volume = -50 elseif settings.Volume < -30 then //mute off settings.Volume = vol end if case "*": showHelp case else end selectend sub Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
kfgz Opublikowano 12 Września 2010 Zgłoś Opublikowano 12 Września 2010 Zgadza się. Diabeł tkwi w szczegółach. Spróbuję naprowadzić Ciebie na rozwiązanie. Otóż, gdy naciśniesz po raz drugi klawisz 9, po raz drugi zostanie wywołana funkcja... ale już zmienna vol zostanie wyzerowana ponieważ nie jest ona zmienną globalną. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
s0n1c Opublikowano 12 Września 2010 Zgłoś Opublikowano 12 Września 2010 (edytowane) Albo calkowicie wypadlo mi z glowy tworzenie zmiennych, albo VB ma swoje "ograniczenia" i nie potrafie poprawnie stworzyc tej zmiennej. Wszelkie moje proby nie poskutkowaly. Otrzymam gotowca? Edytowane 12 Września 2010 przez s0n1c Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
kfgz Opublikowano 12 Września 2010 Zgłoś Opublikowano 12 Września 2010 (edytowane) sub KeyPress() Static cvol as Integer select case BRCD.Key (...) case "7": if settings.ActivePlaybackOrder <> orderShuffle then settings.ActivePlaybackOrder = orderShuffle else settings.ActivePlaybackOrder = orderDefault end if case "9": if settings.Volume >= -30 then //mute on cvol = settings.Volume settings.Volume = -50 elseif settings.Volume < -30 then //mute off settings.Volume = cvol end if case "*": showHelp case else end selectend sub Nie wiem czy będzie działać bo nie mam jak sprawdzić ;) Edytowane 12 Września 2010 przez kfgz Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
s0n1c Opublikowano 12 Września 2010 Zgłoś Opublikowano 12 Września 2010 Tez tak probowalem. Jedynie co dostaje to blad o tresci "oczekiwano instrukcji". A pomyslow brak... Najprostszym sposobem bylo by odwolac sie do funkcji mute w foobarze (mozna stworzyc taki skrot klawiszowy), tylko... niestety foo_comserver nie posiada tej funkcji :( command line Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
ULLISSES Opublikowano 12 Września 2010 Zgłoś Opublikowano 12 Września 2010 1. Wnioskuję, że używasz telefonu jako pilota do kompa dzięki BlueSoleil lub samemu Foobarowi. 2. Nie wiem, jaki Foobar przyjmuje zakres zmiennej dla Volume, ale skoro nie da się zapisywać poprzednich wartości, to może da się odejmować i dodawać stałą wartość? Przykładowo "mute on" odejmować 20, przy "mute off" dodawać 20. 3. Można też rzucić okiem do dokumentacji/Sieci, czy nie ma gdzieś specjalnych komórek do zapisu danych. Jeśli nie, to (zakładając dostępność wszystkich funkcji VBS), zapisywać do pliku. Wiem, że to strzelanie do wróbla z armaty, ale jeśli nie ma innego wyjścia... ;] Edit: Nie można wysłać/zasymulować polecenia wciśnięcia klawisza? Nie można użyć "pause"? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
s0n1c Opublikowano 12 Września 2010 Zgłoś Opublikowano 12 Września 2010 No i zastosowalem rozwiazanie jak w punkcie 2. Takie troche koslawe, ale co poradzic jak zmienne zeruje. Ps. foobar operuje na zakresie [-100...0]. Pauza jest, ale chcialem dodac jeszcze wyciszanie. (ot taka sztuka dla sztuki) ;-) To chyba na tyle. Dziekuje wszystkim za pomoc. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...