2012-04-17 22 views

回答

1

是的,这是可能的。这里是一个例子(对不起,在JavaScript中,使用node-x11),您可以在一个进程中创建gc,并将其作为命令行参数传递给另一个进程。所有对gc的更改(在本例中为前景色)在另一个进程中都可见。请注意,当第一个进程退出时,GC将在服务器上销毁,如果您尝试继续使用它,则会在第二个进程中看到“错误的GContext”错误。

var x11 = require('x11'); 

var gc; 
x11.createClient(function(display) { 
    var X = display.client; 
    var root = display.screen[0].root; 

    var wid = X.AllocID(); 
    X.CreateWindow(wid, root, 0, 0, 400, 300); 

    var _gc = parseInt(process.argv[2]); 
    if (_gc != 0) 
     gc = _gc; 
    else { 
     gc = X.AllocID(); 
     X.CreateGC(gc, root); 
     console.log('GC created: ' + gc); 
     setInterval(function() { 
      X.ChangeGC(gc, { foreground: parseInt(Math.random()*0xffffff) }); 
      console.log('gc updated!'); 
     }, 500); 
    } 
    X.MapWindow(wid); 
    setInterval(function() { 
     X.PolyText8(wid, gc, 50, 50, ['Hello, Node.JS!', ' Hello, world!']); 
     console.log(gc); 
    }, 100); 
    X.on('error', function(err) { 
     console.log(err); 
    }); 
}); 
+0

感谢分享!我是X11的新手,想知道这样的操作是否有效。 – 2012-04-18 12:56:43

相关问题