Skocz do zawartości
wolsky

Zamknięcie okna bat po uruchomieniu aplikacji

Rekomendowane odpowiedzi

Witam,

 

Napisalem krótki skrypt który uruchamia zdalnie mój komputer HTPC, a nastepnie podłacza pulpit zdalny. Nie wiem co dopisać, aby po podłączeniu pulpitu zdalnego okno ze skryptem się zakmneło. Okno zamyka się dopiero po wyłączeniu pulpitu zdalnego.

 

 

@echo off

"d:\wolcmd" 50-E5-50-E5-50-E5 192.168.1.100 255.255.255.0 7 >nul

cls

echo.

echo Trwa uruchamianie komputera HTPC....

timeout /t 50 >nul

cls

d:\htpc.rdp

exit

 

 

Dzięki i pozdrawiam

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi

WOL = Wake on LAN? Skrót się zgadza, a dodatkowo podajesz MAC (czyli warstwa karty sieciowej = dostępu do łącza), stąd moje przypuszczenia.

Ta komenda odpowiada za uruchomienie zdalnego komputera?

 

Przez htpc.rdp podajesz jak widzę dane do odpalenia pulpitu zdalnego, więc przed tym nie wyłączę. Pozostałe komendy to jak widzę sterowanie tylko Wierszem polecenia, więc nie ma co ich ruszać.

 

Kluczowe pytanie: co jest w pliku htpc.rdp? To są pliki tekstowe, więc nie powinno być problemu z wklejeniem zawartości.

 

Możesz też skorzystać z polecenia mstsc /? i sprawdzić parametry do połączenia pulpitu zdalnego. htpc.rdp jeśli dobrze pamiętam to plik Remote Desktop Connection Manager, który jest bardziej zaawansowany, ale w większości zastosowań mstsc powinno wystarczyć.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
WOL = Wake on LAN? Skrót się zgadza, a dodatkowo podajesz MAC (czyli warstwa karty sieciowej = dostępu do łącza), stąd moje przypuszczenia.

Ta komenda odpowiada za uruchomienie zdalnego komputera?

 

Tak, tak to komenda do zdalnego uruchomienia PC, wystarczt podac MAC oraz IP.

 

Przez htpc.rdp podajesz jak widzę dane do odpalenia pulpitu zdalnego, więc przed tym nie wyłączę. Pozostałe komendy to jak widzę sterowanie tylko Wierszem polecenia, więc nie ma co ich ruszać.

 

Kluczowe pytanie: co jest w pliku htpc.rdp? To są pliki tekstowe, więc nie powinno być problemu z wklejeniem zawartości.

 

Plik RPD ma tekstowy format w zawartości którego znajdują się parametry podłączenia pulpitu zdalnego.

 

screen mode id:i:2
use multimon:i:0
desktopwidth:i:1366
desktopheight:i:768
session bpp:i:32
winposstr:s:0,1,0,0,800,600
compression:i:1
keyboardhook:i:2
audiocapturemode:i:0
videoplaybackmode:i:1
connection type:i:4
displayconnectionbar:i:1
disable wallpaper:i:0
allow font smoothing:i:1
allow desktop composition:i:0
disable full window drag:i:1
disable menu anims:i:1
disable themes:i:1
disable cursor setting:i:0
bitmapcachepersistenable:i:0
full address:s:192.168.1.100
audiomode:i:1
redirectprinters:i:0
redirectcomports:i:0
redirectsmartcards:i:0
redirectclipboard:i:1
redirectposdevices:i:0
redirectdirectx:i:1
autoreconnection enabled:i:1
authentication level:i:2
prompt for credentials:i:0
negotiate security layer:i:1
remoteapplicationmode:i:0
alternate shell:s:
shell working directory:s:
gatewayhostname:s:
gatewayusagemethod:i:4
gatewaycredentialssource:i:4
gatewayprofileusagemethod:i:0
promptcredentialonce:i:1
use redirection server name:i:0
drivestoredirect:s:
username:s:htpc\konto

 

Możesz też skorzystać z polecenia mstsc /? i sprawdzić parametry do połączenia pulpitu zdalnego. htpc.rdp jeśli dobrze pamiętam to plik Remote Desktop Connection Manager, który jest bardziej zaawansowany, ale w większości zastosowań mstsc powinno wystarczyć.

 

Niestety ale uruchomienie poprzez:

 

(MSTSC HTPC.RPD) & EXIT

 

Nic nie zmienia. Tzn. uruchamia się poprawnie pulpit zdalny, ale nie zamyka się z okno ze skryptem.

Chodzi mi właśnie o komendę która po wykonaniu tej linijki skryptu (podlaczenie pulpitu) zamknie skrypt.

 

Próbowałem z komendą CALL, ale bez zmian.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi

A, ok. Zapomniałem, że mstsc także obsługuje pliki RDP. U mnie (mstsc "i cośtam") & exit działa jak potrzebujesz, ale sprawdź jeszcze start /b

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi

A zobacz:

 

START /B HTPC.RPD

EXIT

 

start /b mstsc HTPC.RPD

 

Powyższa komenda załatwiła sprawę!

Bardzo dziękuje Panowie za pomoc!

 

To może podpowiecie jeszcze jakiś inny sposób na zainicjowanie podłączenia pulpitu zdalnego po uruchomieniu komputera?

 

Ja to rozwiązałem w ten sposób jak widać w skrypcie poprzez "timeout" (czas uruchomienia PC), ale to mało "eleganckie" rozwiązanie.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi

Może polecenie waitfor?

http://technet.microsoft.com/pl-pl/library/cc773293.aspx

 

Tylko zastanawiam się, jak zmusić komputer zdalny do wysłania sygnału zaraz po uruchomieniu. Dodanie wpisu do Run w rejestrze nic nie da, działa bowiem dopiero po zalogowaniu użytkownika.

 

Można by też testować przez ping działanie komputera, ale wiele serwerów ma wbudowany podsystem do zarządzania komputerem, który odpowiada na pingi bez włączonego systemu, np. Intel Active Management Technology.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi

Z ping próbowałem już wcześniej, niestety bez skutku. Ale bardzo dziękuje za sugestie!

 

Wymyśliłem inne rozwiązanie:

 

Mapowanie dysku sieciowego i pętla ;) Rozwiązanie to jest o tyle dobre, ze jesli komputer jest juz uruchomiony, podłaczenie pulpitu nastepuje natychmiast, bez oczekiwania na timeout.

 

Wygląda to w ten spósób:

@echo off

"d:\wolcmd" 50-5e-49-9g-AG-8A 192.168.1.100 255.255.255.0 7 >nul & cls

echo.

echo Trwa uruchamianie komputera HTPC....

NET USE H: \\htpc\HOME >nul & cls

If not exist H: goto petla>nul & cls

NET USE h: /delete /yes >nul & cls

start /b mstsc d:\htpc.rdp >nul & exit

 

 

:petla

"d:\wolcmd" 50-5e-49-9g-AG-8A 192.168.1.100 255.255.255.0 7 >nul & cls

 

:loop

echo.

echo Trwa uruchamianie komputera HTPC....

NET USE H: \\htpc\HOME >nul & cls

If exist H: goto start >nul & cls

goto loop

 

:start

echo.

echo Trwa uruchamianie komputera HTPC....

NET USE h: /delete /yes >nul & cls

start /b mstsc d:\htpc.rdp >nul & exit

 

Tutaj pojawia się kolejne pytanie:

 

Jak ukryć wynik tej komendy

 

NET USE H: \\htpc\HOME >nul & cls

 

W momencie oczekiwania na włączenie systemu, na ekranie pojawia się co kilka sekund na ułamek sekundy oczywisty komunikat o błędzie w związku z wykonaniem powyzszej komendy.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...