Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод окна в точке с координатами 
V
    Опции темы
gawriil
Дата 11.5.2010, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 7.3.2008

Репутация: нет
Всего: нет



Коллеги!
Есть 6 мониторов. Рабочий стол растянут на все 6 штук. Есть желание запускать 6 экземпляров приложений(например браузер), но так чтобы каждое из них располагалось на своем(отдельном) мониторе. Думается, что надо выводить каждое окно в точке с координатами х:y. Кто-нибудь реализовывал что-нибудь подобное? Буду благодарен за "пинок" в нужном направлении. 
PM MAIL   Вверх
shamber
Дата 11.5.2010, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: 17
Всего: 18



Это все-ж в раздел про GUI.
Цитата(gawriil @  11.5.2010,  18:05 Найти цитируемый пост)
Думается, что надо выводить каждое окно в точке с координатами х:y.

делается предельно просто. Другой вопрос определить x:y начала каждого монитора. Хотя думаю, что это не самая страшная проблема

PM MAIL Jabber   Вверх
gawriil
Дата 12.5.2010, 06:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 7.3.2008

Репутация: нет
Всего: нет



Цитата(shamber @ 11.5.2010,  22:08)
делается предельно просто.

Как? Меня интересует именно вывод окон в нужном месте. 
PM MAIL   Вверх
shamber
Дата 12.5.2010, 07:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: 17
Всего: 18



gawriil, какое окно?
PM MAIL Jabber   Вверх
arto
Дата 12.5.2010, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



for i in {0..5}; do
    firefox -display :0.$i -geometry +$x+$y
done ?
PM MAIL ICQ   Вверх
gawriil
Дата 12.5.2010, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 7.3.2008

Репутация: нет
Всего: нет



Уважаемые коллеги!
Похоже решение найдено.
use Win32::GUI::AxWindow; -> есть все, что мне надо. Всем спасибо.

PM MAIL   Вверх
gawriil
Дата 15.5.2010, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 7.3.2008

Репутация: нет
Всего: нет



Может кому-нибудь пригодится.

Код

use strict;
use warnings;
use Win32::GUI();
use Win32::GUI::AxWindow;

my ( $win1, $win2, $win3, $win4, $win5, $win6,
     $control1, $control2, $control3, $control4, $control5, $control6 );
     
my $icon = new Win32::GUI::Icon('Burn.ico');                 # Иконка для окна
my $desktop        = Win32::GUI::GetDesktopWindow(); # Дескриптор всего экрана
my $desktop_width  = Win32::GUI::Width($desktop);    # Ширина экрана
my $desktop_height = Win32::GUI::Height($desktop);   # Высота экрана

#===  FUNCTION  ================================================================
#  NAME:              create_browser
#  PURPOSE:        создание окна браузера
#  DESCRIPTION: создаем главное окно, а в нем контрол ActiveX (IE)
#  PARAMETERS:  (переменные для хэндлов главного окна и элемента ActiveX
#                           имя окна, имя контрола, положение окна, url-адрес,
#                           наименование улицы)
#  RETURNS :       хэндл окна
#===============================================================================    
sub create_browser {
    my ( $window, $control, $name_win, $control_name, $x_position, $url, $street ) = @_;
    
# Главное окно

    $window = new Win32::GUI::Window(
        -name        => "$name_win",
        -title       => "$street",
        -pos         => [ "$x_position", 0 ],
        -size        => [ $desktop_width, $desktop_height ],
        -resizable   => 0,
        -sysmenu     => 1,
        -titlebar    => 0,
        -minimizebox => 0,
        -maximizebox => 0,
    );
    
    $window->SetIcon($icon);                        # Устанавливаем иконку
    
    $control = new Win32::GUI::AxWindow(
        -parent  => $window,
        -name    => "$control_name",
        -control => "Shell.Explorer.2",
        -pos     => [ 0, 0 ],
        -size    => [ $desktop_width, $desktop_height ],
        -vscroll => 0,
        -hscroll => 0,
    );
    
    $control->CallMethod( "Navigate", "$url" );
    
    return $window;

}    # ----------  end of subroutine create_browser  ----------

sub window1_Terminate {
    return -1;
}

sub window2_Terminate {
    return 1;
}

#===  FUNCTIONS  ===============================================================
#  NAME:           window(s)_Resize
#  PURPOSE:     при изменении размеров главного окна, изменяем 
#                       размеры контрола расположенного в нем
#  DESCRIPTION: ---
#  PARAMETERS:  ---
#  RETURNS:     ---
#===============================================================================
sub window1_Resize { 
    if ( defined $win1 ) {
        my ( $width, $height ) = ( $win1->GetClientRect )[ 2 .. 3 ];
        $win1->control1->Move( 0, 0 );
        $win1->control1->Resize( $width, $height );
    }
}

$win1 = create_browser( $win1, $control1, 'window1', 'control1', 0, "http://-----------", 'строка' );
$win1->Show();
$win2 = create_browser( $win2, $control2, 'window2', 'control2', "$desktop_width", "http://--------", 'строка' );
$win2->Show();

Win32::GUI::Dialog();



M
JackYF
Пользуйся кнопкой "Код".

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0644 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.