Skocz do zawartości
s0n1c

[vbs] problem ze zmienna

Rekomendowane odpowiedzi

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

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

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ą.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

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 przez s0n1c

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

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 przez kfgz

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

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

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

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"?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

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.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...