Skocz do zawartości

Skrypt połączenia z internetem


Rekomendowane odpowiedzi

Uprzejmie proszę, na klęczkach proszę o pomoc. Przypadek nagły, niecierpiący zwłoki.

Otóż używam na Windowsie XP następującego skryptu:

 

@echo off

echo at+cpin="1234">pin

print /d:com4 pin>nul

del pin>nul

ping 127.0.0.1>nul

rasdial/d|rasdial ^

Iplus /phone:*99#>nul

 

Skrypt uruchamia modem Huawe i automatycznie ustanawia połączenie z internetem w trakcie uruchomienia systemu. Umieszczony jest w folderze Autostart. Natomiast ten sam skrypt nie działa na W7.

Stąd moje pytanie dlaczego nie działa? Brak uprawnień? Źle napisany? Na W7 nie ma możliwości, żeby zadziałał?

Odnośnik do komentarza
Pomoc jest darmowa, ale proszę rozważ przekazanie dotacji na utrzymanie serwisu: klik.

Stąd moje pytanie dlaczego nie działa? Brak uprawnień? Źle napisany? Na W7 nie ma możliwości, żeby zadziałał?

Jak UAC jest włączony to na pewno nie zadziała z powodu braku uprawnień.Spróbuj użyć harmonogram zadań w tym celu - wybierz uruchamianie skryptu z poziomu konta SYSTEM oraz uruachamianie skryptu przy uruchamianiu systemu lub w trakcie logowania każdego użytkownika.

Odnośnik do komentarza

UAC jest teraz wyłączony. Wcześniej na właczonym pojawiał się monit w okienku konsoli pt. Odmowa dostępu do C:\System32\cmd.exe

Teraz po wyłaczeniu UAC monitu nie ma i połaczenie z netem nie następuje.

 

Natomiast co do:

 

Spróbuj użyć harmonogram zadań w tym celu - wybierz uruchamianie skryptu z poziomu konta SYSTEM oraz uruachamianie skryptu przy uruchamianiu systemu lub w trakcie logowania każdego użytkownika.

 

Gupi jestem i nie wiem jak dodać zadanie :lol:. Czy istnieje szansa na jakąś przyziemną instrukcje?

Odnośnik do komentarza

Na chwile obecną sytuacja wygląda tak, że nauczyłem się dodawać zadanie do harmonogramu zadań. :lol: Co nie zmieniło faktu, że skrypt nie działa. Nie ustanawia połaczenia. Uparcie grzebałem dalej i wygrzebałem taki wynalazek:

@echo off
SLEEP 20
rem ping -n 30 127.0.0.1 >nul
rasdial "Iplus" "plusgsm" "plusgsm"

 

Z tym skryptem internet łaczy się automatycznie....ale. W oknie konsoli pojawia się najpierw komunikat, że nazwa Sleep lub plik wsadowy nie jest rozpoznawany by za chwilke, połaczenie nastąpiło.

Gdybym mógł prosić biegłych skryptologów o komentarz do nazwy SLEEP, będę wdzięczny. A może wystarczy bez SLEEP?

 

Z ostatniej chwili.

Zmodyfikowałem skrypt. Chodziło mi o możliwośc podania kodu PIN. Teraz jest tak i nic nie wyskakuje. Połaczenie następuje w mgnieniu oka.

 

@echo off
echo at+cpin="1234">pin
rem ping -n 30 127.0.0.1 >nul
rasdial "Iplus" "plusgsm" "plusgsm"

Odnośnik do komentarza

Żeby Ci zadziałało polecenie sleep musiałbyś zainstalować pakiet Resource Kit dla systemu.

http://ss64.com/nt/sleep.html

 

W tym skrypcie nie używasz żadnej pętli, więc sleep możesz sobie odpuścić. A jak dobrze poszukasz to znajdziesz mniej lub bardziej ciekawe obejścia. A po co jest to zakomentowane polecenie ping? Innymi słowy, usuniesz słówko rem = zacznie działać polecenie ping.

Odnośnik do komentarza

Całą linijkę wywal. Jak usuniesz tylko rem to zadziała polecenie ping, które wszystkie komunikaty wywali do pliku nul. Polecenie ping w tym kontekście ma tylko wstrzymać na jakiś czas wykonanie skryptu, a właściwie opóźnić wykonanie następnego polecenia. Polecenie rasdial ma Ci się wykonać, więc po co je opóźniać - masz w tym jakiś cel (jest to związane z linijką wyżej w skrypcie)?

Odnośnik do komentarza
Nazwa skryptu .vbs nie ma znaczenia. Ważniejsze jest jego zawartość, a konkretniej podanie odpowiedniej ścieżki do pliku .bat.

 

tak wymodziłem ścieżke, ale nie wiem czy dobrze, bo okno jest

Dim oShell
Set oShell = WScript.CreateObject ("WSCript.shell")
oShell.run "cmd /C .\C:\Users\Mathew\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\iplus.bat",0
Set oShell = Nothing

 

Zastosowałem Bat to Exe - okna nie ma. Ale jestem troszkę dociekliwy, więc jakbyście rzucili okiem na zapis vbs, będę wdzięczny.

Odnośnik do komentarza

oShell.run "cmd /C .\C:\Users\Mathew\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\iplus.bat",0

To co zbędne zaznaczyłem na czerwono. A mogłoby to wyglądać tak... (chociaż nie jestem pewien nazw ze spacjami, a nie mam na razie możliwości tego sprawdzić).

oShell.run "cmd /C %appdata%\Microsoft\Windows\Start Menu\Programs\Startup\iplus.bat",0

Użyłem zmiennej środowiskowej %appdata% = http://pl.wikipedia.org/wiki/Zmienna_środowiskowa = dla windows 7 jest to C:\Users\{username}\AppData\Roaming

Chociaż ja bym umieścił skrypt .vbs tam gdzie skrypt .bat, a do autostartu wrzuciłbym link do skryptu .vbs, a wtedy zapis Ci się uprości:

oShell.run "cmd /C .\iplus.bat",0

Oczywiście musiałbyś skrypt .bat umieścić poza autostartem! :) Przy takiej lokalizacji skryptu .bat wrzucanie tam jeszcze .vbs mija się z celem. Chyba, że czegoś nie rozumiem. :)

Odnośnik do komentarza
Oczywiście musiałbyś skrypt .bat umieścić poza autostartem! smile.gif Przy takiej lokalizacji skryptu .bat wrzucanie tam jeszcze .vbs mija się z celem. Chyba, że czegoś nie rozumiem. smile.gif

 

Rozumiecie kumie bardzo dobrze. Zapodałem bata do autostartu. Pozmieniam i zobacze jak działa vbs.

 

Sprawdziłem. Wszystko śmiga jak należy. Okienka nie ma. Internet jest.

Dziekuje za cierpliwość.

Gdybyście chcieli kiedyś zrobić skrypt, który nie działa - chętnie przyjmę zlecenie :lol:

Pozdrawiam

Edytowane przez Belfegor
Odnośnik do komentarza

Poniżej masz kawałek kodu, który zrobi Ci od razu link do wkazanego pliku. Nie sprawdzałem czy bangla.

http://stackoverflow.com/questions/346107/creating-a-shortcut-for-a-exe-from-a-batch-file

 

Nie ma sensu łączyć go z poprzednim skryptem, ale możesz go użyć w trakcie instalacji docelowego skryptu. Zdaje się, że winrar ma możliwość uruchomienia skryptu przy wypakowaniu. Ale tego nigdy nie robiłem.

Odnośnik do komentarza
  • 2 tygodnie później...

Tak gwoli ścisłości, nie wydaje się wam, że linijka:

echo at+cpin="1234">pin

nie jest do niczego używana, tworzy co prawda plik o nazwie "pin" ale czy coś się z tym plikiem dalej dzieje?

 

Jeżeli tak to można zastosować sam vbs typu:

 

Dim oShell
Set oShell = WScript.CreateObject ("WSCript.shell")
oShell.run "rasdial Iplus plusgsm plusgsm",0
Set oShell = Nothing

 

nawet jeżeli nie to nadal można uprościć do pojedynczego skryptu bądź tworząc tymczasowy bat bądź stosując taką konstrukcję:

oShell.run "%comspec% /c echo at+cpin=1234>pin | rasdial Iplus plusgsm plusgsm",0

jak widzicie wywaliłem wewnętrzne cudzysłowy bo wysypią skrypt, trzeba by je zastąpić znakami chr(34) a to bardzo gmatwa składnię a same cudzysłowy są tutaj zbędne (jak i echo off bo i tak nie wyświetlamy wyjścia).

 

Jeszcze słowo wyjasnienia o konstrukcji:

oShell.run "cmd /C .\C:\Users\Mathew\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\iplus.bat",0

spacja we fragmencie "Start Menu" powoduje, że ta konstrukcja nie zadziała, na dodatek strasznie trudno się to obchodzi w skryptach, proponowana przez @3oo %appdata% też niewiele da bo zostanie rozwinięta przez komendę, na dodatek można ustawić wewnętrzną zmienną typu "SpecialFolders" link

 

Spacje w ścieżkach prowadzą do następujących konstrukcji - fragment jednego z moich skryptów:

objShell.run "%comspec% /c" & chr(34)& strprogramfiles &"\InstallShield Installation Information\{7F3AD00A-1819-4B15-BB7D-08B3586336D7}\setup.exe"&chr(34) &" "& "/runfromtemp /l0x0009 /uninst",0,true

 

pzdr

Odnośnik do komentarza
Tak gwoli ścisłości, nie wydaje się wam, że linijka:

echo at+cpin="1234">pin

nie jest do niczego używana, tworzy co prawda plik o nazwie "pin" ale czy coś się z tym plikiem dalej dzieje?

 

Bez tej linijki przy pierwszym logowaniu do sieci modem nie łaczy się z netem. Jeśli nie ma na karcie SIM wymogu podania PINU, wtedy można z wpisu zrezygnować.

Po pierwszym logowaniu kod PIN jest zapamiętywany przez modem. Przy kolejnych logowaniach już nie jest potrzebny.

Odnośnik do komentarza
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...