simple X11

#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xos.h>
#include <X11/Xatom.h>
int main(int argc, char** argv)
{
    sleep(3);
        XSetWindowAttributes winattrs;
    int swidth;
    int sheight;
    int winmask;
    Display *display;
    int screen;
    Window window;

    display = XOpenDisplay(getenv("DISPLAY"));
    screen = DefaultScreen(display);
    swidth = DisplayWidth(display, screen) ;
    sheight = DisplayHeight(display, screen);

    window = XCreateSimpleWindow(display, XDefaultRootWindow(display),
            0, 0, swidth, sheight, 0, 0, 0);
    winattrs.override_redirect = True;
    winmask = CWOverrideRedirect;
    XChangeWindowAttributes(display, window, winmask, &winattrs);

    //
    XSelectInput(display, window, ExposureMask/*|KeyPressMask*/|ButtonPressMask
            |StructureNotifyMask);
    GC gc;
    unsigned long valuemask = 0;
    XGCValues values;
    gc = XCreateGC(display, window, valuemask, &values);

  

    XMapWindow(display, window);

 

    const char *strdraw = "Hello, World";
    while(1)
    {
        XEvent event;
        XNextEvent(display, &event);
        switch(event.type)
        {
            case Expose:
                if(event.xexpose.count != 0) break;
                XDrawString(display, window, gc, 10, 10, strdraw, strlen(strdraw));
                break;
            case ButtonPress:
            case KeyPress:
                XFreeGC(display, gc);
                XCloseDisplay(display);
                return 0;
            default:
                break;
        }
    }

    return (EXIT_SUCCESS);
}

内容概要:本文探讨了在MATLAB/SimuLink环境中进行三相STATCOM(静态同步补偿器)无功补偿的技术方法及其仿真过程。首先介绍了STATCOM作为无功功率补偿装置的工作原理,即通过调节交流电压的幅值和相位来实现对无功功率的有效管理。接着详细描述了在MATLAB/SimuLink平台下构建三相STATCOM仿真模型的具体步骤,包括创建新模型、添加电源和负载、搭建主电路、加入控制模块以及完成整个电路的连接。然后阐述了如何通过对STATCOM输出电压和电流的精确调控达到无功补偿的目的,并展示了具体的仿真结果分析方法,如读取仿真数据、提取关键参数、绘制无功功率变化曲线等。最后指出,这种技术可以显著提升电力系统的稳定性与电能质量,展望了STATCOM在未来的发展潜力。 适合人群:电气工程专业学生、从事电力系统相关工作的技术人员、希望深入了解无功补偿技术的研究人员。 使用场景及目标:适用于想要掌握MATLAB/SimuLink软件操作技能的人群,特别是那些专注于电力电子领域的从业者;旨在帮助他们学会建立复杂的电力系统仿真模型,以便更好地理解STATCOM的工作机制,进而优化实际项目中的无功补偿方案。 其他说明:文中提供的实例代码可以帮助读者直观地了解如何从零开始构建一个完整的三相STATCOM仿真环境,并通过图形化的方式展示无功补偿的效果,便于进一步的学习与研究。
<think>好的,用户想了解X11vnc的使用方法,包括配置和运行的教程。我需要根据提供的引用内容来整理回答。 首先,看看引用里提到的安装步骤。引用1和2都提到了安装x11vnc及其依赖包,使用apt-get命令。但两个引用的安装命令有些不同,引用1是单独安装x11vnc,而引用2还安装了net-tools、xvfb和fluxbox。可能需要说明这两种情况,或者合并成更全面的安装步骤。 然后配置部分,引用3提到了创建systemd服务文件,内容比较详细。应该需要分步骤说明如何创建和启用服务。同时,引用3还提到设置密码,可能涉及使用x11vnc的-passwd选项或者单独存储密码文件,比如使用x11vnc -storepasswd命令。 另外,运行X11vnc的基本命令可能需要说明不同的参数,比如-auth guess、-rfbport指定端口、-shared允许多用户连接等。这些参数在引用3的示例服务文件中出现,需要解释清楚。 用户可能还需要知道如何设置开机启动,引用3中的服务单元文件配置是一个方法,应该详细说明如何创建服务文件并启用。 安全方面的注意事项可能也需要提及,比如使用密码保护、防火墙设置等,但引用里没有详细提到,可能需要补充一般性建议。 最后,生成相关问题,根据常见问题,可能涉及优化配置、防火墙设置、不同桌面环境的适配、密码管理和与VNC4server的区别等。 需要确保回答结构清晰,步骤明确,符合用户的要求,同时正确引用提供的资料。可能还需要检查是否有遗漏的步骤,比如密码生成命令是否在引用中提到,如果没有,可能需要补充,但根据引用3的示例,服务文件中用了-rfbauth参数,所以需要说明如何生成密码文件。</think>### X11vnc 配置与使用教程 #### **1. 安装X11vnc及依赖** - **Ubuntu/Debian系统**: 基础安装命令: ```bash sudo apt-get install x11vnc ``` 若需要额外依赖(如虚拟桌面支持): ```bash sudo apt-get install x11vnc net-tools xvfb fluxbox ``` 引用[^1][^2] --- #### **2. 配置X11vnc密码** - 生成密码文件(默认路径为`~/.vnc/passwd`): ```bash x11vnc -storepasswd ``` 输入两次密码后,文件将自动保存。 --- #### **3. 运行X11vnc** - **临时运行**(手动启动): ```bash x11vnc -auth guess -once -noxdamage -repeat -rfbauth ~/.vnc/passwd -rfbport 5900 -shared ``` - `-auth guess`:自动识别X11认证文件 - `-rfbport 5900`:指定VNC端口 - `-shared`:允许多用户连接 - `-rfbauth`:指定密码文件路径 - **后台运行**(守护进程模式): ```bash x11vnc -forever -bg -rfbauth ~/.vnc/passwd ``` --- #### **4. 设置系统服务(开机自启)** 1. 创建服务文件`x11vnc.service`: ```bash sudo nano /etc/systemd/system/x11vnc.service ``` 2. 写入以下内容(按需修改参数): ```ini [Unit] Description=Start x11vnc at startup After=multi-user.target [Service] Type=simple ExecStart=/usr/bin/x11vnc -auth guess -loop -noxdamage -repeat -rfbauth /home/USERNAME/.vnc/passwd -rfbport 5900 -shared [Install] WantedBy=multi-user.target ``` - 替换`USERNAME`为实际用户名 引用[^3] 3. 启用服务: ```bash sudo systemctl daemon-reload sudo systemctl enable x11vnc sudo systemctl start x11vnc ``` --- #### **5. 连接远程桌面** 使用VNC客户端(如TigerVNC、RealVNC)输入服务器IP和端口(格式:`IP:5900`),输入密码后即可连接。 --- ### **注意事项** 1. **防火墙**:确保端口5900开放(`sudo ufw allow 5900`)。 2. **安全性**:建议通过SSH隧道加密传输(`ssh -L 5900:localhost:5900 user@host`)。 3. **多用户支持**:`-shared`参数允许多用户同时连接。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值