Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2009, 16:49   #1
Яр|/||< (^_^)
LosYear
Форумчанин
 
Аватар для Яр|/||< (^_^)
 
Регистрация: 19.06.2009
Сообщений: 695
По умолчанию Связь между двумя ОС

Насколько реально связать мой компьютер (Windows XP) с виртуальным компьютером VirtualBox (XP). При помощи делфи. Или для этого нужен какойто язык ? (Яв, СИ++ ...)
Яр|/||< (^_^) вне форума Ответить с цитированием
Старый 04.07.2009, 17:00   #2
bill_gates
Ненависник Windows
Пользователь
 
Аватар для bill_gates
 
Регистрация: 04.07.2009
Сообщений: 82
По умолчанию

Можно настроить сеть между нормальным компом и виртуальным. А там дело техники: Заюзать компоненты ClientSocket и ServerSocket. Можно написать прогу для виртуалки с ServerSocket'ом который будет всегда включен, для реальной машины с ClientSocket'ом и с реального компа на виртуальный пересылать по TCP команды, а виртмашина будет их исполнять. По-моему эта идея вполне осуществима на Delphi 6 (В новых версиях уже другие компоненты, я в них еще не разобрался. Хотя, можно и на других язаках: C++, по-моему Java.
if Вопрос.Возник then begin if Google.Поиск=false then begin СоздатьТопик; end; end;

if ДругойЮзер.Помог then begin НажатьНаВесы end;

Последний раз редактировалось bill_gates; 04.07.2009 в 17:11.
bill_gates вне форума Ответить с цитированием
Старый 04.07.2009, 17:17   #3
Яр|/||< (^_^)
LosYear
Форумчанин
 
Аватар для Яр|/||< (^_^)
 
Регистрация: 19.06.2009
Сообщений: 695
По умолчанию

На делфи можно а можешь по подробнее?
Яр|/||< (^_^) вне форума Ответить с цитированием
Старый 04.07.2009, 17:47   #4
bill_gates
Ненависник Windows
Пользователь
 
Аватар для bill_gates
 
Регистрация: 04.07.2009
Сообщений: 82
По умолчанию Пример

Пример на Delphi 6 таков
Сервер:
Создаем компонент ServerSocket. Порт выбираем четырех-пятизначный, незанятый на виртмашине. Например 5555. Обрабатываем событие onClientRead
Код:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
//Если принятый текст: shutdown
if Socket.ReceiveText='shutdown' then begin
//то запускаем прогу shutdown с параметрами -s -t 1
ShellExecute(Application.Handle,'open','C:\Windows\system32\shutdown.exe','-s -t 1','',SW_NORMAL);
end;
end;
Ну с функцией запуска программ я думаю ты разберешься, только в uses юнита добавь shellapi.

А в момент активации формы включи сокет, а то соединение не пойдет

Код:
procedure TForm1.FormActivate(Sender: TObject);
begin
ServerSocket1.Open;
end;
Клиент:
Создаем ClientSocket и Кнопку. В клиентСокет прописываем параметры:

Address: IP виртмашины
Host: Имя машины в сетке (если задал ip, можно не писать)
Port: 5555

При активации формы:

Код:
procedure TForm1.FormActivate(Sender: TObject);
begin
//Врубаем сокет и соединяемся
ClientSocket1.Open;
end;
По нажатию кнопки:

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
//Шлем команду shutdown
ClientSocket1.Socket.SendText('shutdown');
end;
Здесь описано в деталях, как программировать серверсокет
http://www.delphimaster.ru/articles/socksrv/

Здесь описано, как программировать клиентсокет
http://www.delphimaster.ru/articles/sockets/index.html

Передавать файлы можно этим способом, рекомендую
http://www.realcoding.net/article/view/187

Удачи. Если что не получается пиши в личку
if Вопрос.Возник then begin if Google.Поиск=false then begin СоздатьТопик; end; end;

if ДругойЮзер.Помог then begin НажатьНаВесы end;
bill_gates вне форума Ответить с цитированием
Старый 05.07.2009, 02:00   #5
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

хмм.. могу добавить лишь одно - компоненты TServerSocket и TClientSocket есть во всех версиях дэлфи... просто начиная с 7 версии их убрали со стандартной палитры компонент.... всё,что нужно - это устаносить пакет dclsocketXX.bpl (где XX - номер версии дэлфи), и тогда на вкладке Internet появятся вышеозвученные компоненты
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 05.07.2009, 12:58   #6
bill_gates
Ненависник Windows
Пользователь
 
Аватар для bill_gates
 
Регистрация: 04.07.2009
Сообщений: 82
По умолчанию

Цитата:
Сообщение от goblinyara Посмотреть сообщение
всё,что нужно - это устаносить пакет dclsocketXX.bpl (где XX - номер версии дэлфи), и тогда на вкладке Internet появятся вышеозвученные компоненты
Спасибо за инфу. Надо поискать.
if Вопрос.Возник then begin if Google.Поиск=false then begin СоздатьТопик; end; end;

if ДругойЮзер.Помог then begin НажатьНаВесы end;

Последний раз редактировалось bill_gates; 05.07.2009 в 16:11.
bill_gates вне форума Ответить с цитированием
Старый 06.07.2009, 09:40   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
На делфи можно а можешь по подробнее?
Никакое ДЕлфи тебе не поможет пока ты в свойствах VBox не создашь сеть. Хотя есть Virtual Shared Folder, и возможно они работают через Pipe. но это еще проверять надо.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.07.2009, 17:33   #8
Яр|/||< (^_^)
LosYear
Форумчанин
 
Аватар для Яр|/||< (^_^)
 
Регистрация: 19.06.2009
Сообщений: 695
По умолчанию

А как её создать ?
Яр|/||< (^_^) вне форума Ответить с цитированием
Старый 06.07.2009, 20:45   #9
bill_gates
Ненависник Windows
Пользователь
 
Аватар для bill_gates
 
Регистрация: 04.07.2009
Сообщений: 82
По умолчанию

Зайди в свойства виртмашины, потом Сеть->Адаптер 1->Помечаем галку "Включить сетевой адаптер" и тип подключения ставим сетевой мост. Жмем OK. Потом в компе идешь пуск->панель управления->сетевые подключения->жмем правой кнопкой по VirtualBox Host Only Network->Свойства->Протокол интернета TCP\IP->настройка->Использовать следующий IP-адрес->IP-адрес пишешь 192.168.0.1->маску подсети 255.255.255.0. В виртмашине то же самое, только IP-адрес 192.168.0.2
if Вопрос.Возник then begin if Google.Поиск=false then begin СоздатьТопик; end; end;

if ДругойЮзер.Помог then begin НажатьНаВесы end;
bill_gates вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Связь между двумя таблицами. megaten Microsoft Office Access 5 17.05.2009 14:17
Разница между двумя Bitmap Seqular Общие вопросы .NET 2 25.04.2009 17:31
выборка между двумя датами UnChanter БД в Delphi 1 30.03.2009 21:09
Перетаскивание Bans'ов между двумя CoolBar'ами? chandrasecar Общие вопросы Delphi 0 12.02.2009 16:47
Как из Delphi программно создать связь между двумя базами Access? Dimm Microsoft Office Access 6 12.01.2007 14:35