Форум: "Прочее";
Текущий архив: 2008.08.03;
Скачать: [xml.tar.bz2];
ВнизВиртуальные рабочие столы на 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c