Strona 1 z 1

[C++] uruchamianie progrmów

: 23 sie 2010, 16:36
autor: J.K.
Mam zainstalowane copssh na Windowsie (Windows 7) i chce zdalnie z komputera na którym jest linux uruchomić przez ssh na kompie z Windowsem program w trybie graficznym (powiecmy Starcrafta2). Pomyślałem że najłatwiej bedzie napisac prosty program działający pod konsolą który odpala Starcrafta i ten program odpalać przez ssh.

Kod: Zaznacz cały

#include "stdafx.h"
#include "windows.h"
#include "iostream"

using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
	//system("start 'C:\\Program Files (x86)\\StarCraft II\\StarCraft II.exe'");
	WinExec ("C:\\Program Files (x86)\\StarCraft II\\StarCraft II.exe", SW_SHOWNORMAL) ;
	cout << "Starting StarCraft II: Wings of Liberty";
	return 0;
}
No ale jedyne co sie dzieje to w konsoli wyswietla sie "Starting StarCraft II: Wings of Liberty" na komputerze do którego jestem podłączony nic sie nie dzieje. Jak zmienić proram żebyto dziłało, czy może wogóle zmienić pdejście do problemu?

Odp: [C++] uruchamianie progrmów

: 23 sie 2010, 23:06
autor: simonnam
Chcesz żeby okno aplikacji (w tym przypadku Starcrafta) było przesyłane przez ssh do Linuksa?

Odp: [C++] uruchamianie progrmów

: 24 sie 2010, 04:21
autor: luzakwielki
@J.K.: ssh jest TYLKO do trybu tekstowego. Jeśli chcesz mieć dostęp do graficznego trybu to zainteresuj się RDP wbudowanego w Windowsa lub VNC (bo po zadanym pytaniu nie sądzę, żebyś mógł napisać alternatywę dla nich sam).

Odp: [C++] uruchamianie progrmów

: 24 sie 2010, 11:11
autor: DDAroo
Czyli tak, zainstalowałeś copssh, który jest serwerem ssh na windowsie i który używa Cygwina. Na początek musisz się upewnić, że serwer ssh na windowsie działa poprawnie i można się z nim połączyć.

Gdybyś nie mógł połączyć się z serwerem ssh na windowsie to mogą być trzy powody dlaczego tak jest:
  1. Skopana instalacja lub konfiguracja serwera na windowsie.
  2. Połączenia są blokowane przez firewall.
  3. W przypadku łączenia się przez internet serwer musi mieć przydzielony publiczny adres IP, albo muszą być przekierowane porty używane przez serwer na routerze.
Najprościej będzie się się teraz połączyć z tym serwerem przy użyciu klienta ssh na linuxie, a potem uruchomić zdalnie proces na windowsie. Pamiętaj, że po połączeniu obowiązuje składnia linuxa poleceń, bo te polecenia są później emulowane przez Cygwina i zamieniane na windowsowe (mniej więcej). Pamiętaj też, że choć uruchomisz aplikację graficzną to nie będziesz widział efektów jej działania na linuxie. Istnieje tylko kilka programów, współpracujących z Cygwin/X, z którymi można zestawić takie połączenie graficzne.

Co do Twojego programu to zauważ, że dołączasz nagłowek "windows.h", który jest obecny na windowsie, ale którego nie ma na linuxie. Jeśli chciałbyś napisać taki program, to musiałbyś użyć biblioteki ssh i API linuxa.

@luzakwielki
ssh może współpracować z X window, tyle tylko że natywne aplikacje windowsowe nie używają X window, więc w tym przypadku nie może być mowy o graficznym połączeniu.

Odp: [C++] uruchamianie progrmów

: 25 sie 2010, 16:08
autor: J.K.
wiem że ssh jest tylko do trybu tekstowego, nie chce przesyłać okna aplikacji do linux'a chce tylko zdalnie odpalić SC2 na windzie. problem w tym, że jak odpalam SC2 przez ssh to na windowsie też nic nie widzę i z tego co czytałem ssh nie odpali programów tak żeby było widać GUI.