Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.08.03;
Скачать: CL | DM;

Вниз

Виртуальные рабочие столы на 2 мониторах   Найти похожие ветки 

 
Ajax   (2008-06-16 13:08) [0]

Подскажите пожалуйста, как такое можно осуществить?

Есть: компьютер с 2 подключенными мониторами.
Хочется: 2 "почти независимых" рабочих стола.

То есть хочется, чтобы на 2 мониторах были 2 разных рабочих стола. Чтобы на каждом была своя панель задач и можно было запускать программы. И при этом переключать фокус ввода между этими рабочими столами аналогично тому, как это сделано в различных программах типа virtuawin.

Спасибо.


 
X9 ©   (2008-06-16 13:20) [1]

В настройках видеодрайвера выбрать "расширение рабочего стола" на второй монитор.


 
Ajax   (2008-06-16 13:29) [2]

>В настройках видеодрайвера выбрать "расширение рабочего стола" на второй монитор.

Это я умею :-)

Меня интересует появление второго таскбара и т.д.


 
DVM ©   (2008-06-16 13:41) [3]


> Меня интересует появление второго таскбара и т.д.

Не, это не получится. Чтобы запустить второй экземпляр эксплорера в режиме рабочего стола, его надо запускать именно на другом десктопе, который в свою очередь должен отображаться на отдельном мониторе.


 
tesseract ©   (2008-06-16 13:46) [4]

Поставить linux. Там такая фишка есть.


 
Ajax   (2008-06-16 14:04) [5]

Линукс не подходит.

А как работают программы, которые под виндами создают виртуальные рабочие столы? Мне нужно что-то наподобие.


 
VirEx ©   (2008-06-16 14:09) [6]

ктото уже приводил такой код:
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

function MyThread(Parameter: Pointer): Integer; stdcall;
var
hdeskNew, hdeskOld: THandle;
StInfo: TStartupInfo;
PrInfo: TProcessInformation;
begin
hdeskNew:= CreateDesktop("MyDesktop", nil, nil, DF_ALLOWOTHERACCOUNTHOOK, MAXIMUM_ALLOWED, nil);

if hdeskNew <> 0 then begin
  hdeskOld:= GetThreadDesktop(GetCurrentThreadId());
  SetThreadDesktop(hdeskNew);
  SwitchDesktop(hdeskNew);
  MessageBox(0, "Hello from ""MyDesktop""!", "", MB_OK);

  ZeroMemory(@StInfo, SizeOf(StInfo));
  StInfo.cb:= SizeOf(StInfo);
  StInfo.lpDesktop:= PChar("MyDesktop");
  StInfo.wShowWindow:= SW_SHOW;

  if (CreateProcess(nil, "notepad.exe", nil, nil, False, 0, nil, nil, StInfo, PrInfo)) then begin
    WaitForSingleObject(PrInfo.hProcess, INFINITE);
    CloseHandle(PrInfo.hProcess);
    CloseHandle(PrInfo.hThread);
  end;
  SwitchDesktop(hdeskOld);
  SetThreadDesktop(hdeskOld);
  CloseDesktop(hdeskNew);
end;
result:= 0;
end;

procedure TForm1.Button1Click(Sender: TObject);
var ThreadId: DWORD;
begin
CreateThread(nil, 0, @MyThread, nil, 0, ThreadId);
end;

end.


эксплорер запустишь на нём и делов


 
Ajax   (2008-06-16 18:10) [7]

Спасибо всем откликнувшимся. Кажется я нашел готовое решение - Multimon Taskbar.


 
X9 ©   (2008-06-16 20:17) [8]

Ещё, насколько я помню, в драйверах nVIDIA был менеджер виртуальных рабочих столов.


 
tesseract ©   (2008-06-16 20:18) [9]


> Ещё, насколько я помню, в драйверах nVIDIA был менеджер
> виртуальных рабочих столов.


Лучше бы он "был". Яркая недоработка.



Страницы: 1 вся ветка

Текущий архив: 2008.08.03;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.017 c
15-1213891081
stas
2008-06-19 19:58
2008.08.03
Снять информацию с неразбтого диска


15-1213771277
Ega23
2008-06-18 10:41
2008.08.03
Организация пула соединений


15-1213775073
Darvin
2008-06-18 11:44
2008.08.03
Вызов подпрограмм из DLL, написанных на C# из Delphi


15-1213864282
Сатир
2008-06-19 12:31
2008.08.03
Загрузка пакета в рантайме


4-1188322257
Shamansky_ne
2007-08-28 21:30
2008.08.03
Вывод окна программы на экран телевизора