<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>MCU大虾网</title><link>http://mcuem.xyz/</link><description>技术学习积累成长</description><item><title>阿里云的xrdp.ini文件  alibabalinux gnome桌面 windows远程 可以xorg登陆</title><link>http://mcuem.xyz/?id=117</link><description>&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;[Globals]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; xrdp.ini file version number&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;ini_version=1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; fork a new process for each incoming connection&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;fork=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; ports to listen on, number alone means listen on all interfaces&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; 0.0.0.0 or :: if ipv6 is configured&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; space between multiple occurrences&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; ALL specified interfaces must be UP when xrdp starts, otherwise xrdp will fail to start&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; Examples:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&amp;nbsp; &amp;nbsp;port=3389&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&amp;nbsp; &amp;nbsp;port=unix://./tmp/xrdp.socket&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&amp;nbsp; &amp;nbsp;port=tcp://.:3389&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;127.0.0.1:3389&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&amp;nbsp; &amp;nbsp;port=tcp://:3389&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *:3389&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&amp;nbsp; &amp;nbsp;port=tcp://&amp;lt;any ipv4 format addr&amp;gt;:3389&amp;nbsp; &amp;nbsp; &amp;nbsp; 192.168.1.1:3389&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&amp;nbsp; &amp;nbsp;port=tcp6://.:3389&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ::1:3389&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&amp;nbsp; &amp;nbsp;port=tcp6://:3389&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*:3389&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&amp;nbsp; &amp;nbsp;port=tcp6://{&amp;lt;any ipv6 format addr&amp;gt;}:3389&amp;nbsp; &amp;nbsp;{FC00:0:0:0:0:0:0:1}:3389&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&amp;nbsp; &amp;nbsp;port=vsock://&amp;lt;cid&amp;gt;:&amp;lt;port&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;port=3389&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; if used inside a Hyper-V VM through vmconnect and bound on vsock,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; turn this on to enable wider security protocol support.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#vmconnect=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; Unprivileged User name and group to run the xrdp daemon.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; It is HIGHLY RECOMMENDED you set these values. See the xrdp.ini(5)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; manpage for more information on setting and checking these.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;runtime_user=xrdp&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;runtime_group=xrdp&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; regulate if the listening socket use socket option tcp_nodelay&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; no buffering will be performed in the TCP stack&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;tcp_nodelay=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; regulate if the listening socket use socket option keepalive&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; if the network connection disappear without close messages the connection will be closed&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;tcp_keepalive=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; set tcp send/recv buffer&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; These parameters are largely historic. On systems with dynamic TCP&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; buffer sizes, setting them manually will either impact performance or&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; waste memory&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#tcp_send_buffer_bytes=32768&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#tcp_recv_buffer_bytes=32768&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; security layer can be &amp;#39;tls&amp;#39;, &amp;#39;rdp&amp;#39; or &amp;#39;negotiate&amp;#39;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; for client compatible layer&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;security_layer=negotiate&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; minimum security level allowed for client for classic RDP encryption&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; use tls_ciphers to configure TLS encryption&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; can be &amp;#39;none&amp;#39;, &amp;#39;low&amp;#39;, &amp;#39;medium&amp;#39;, &amp;#39;high&amp;#39;, &amp;#39;fips&amp;#39;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;crypt_level=high&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; X.509 certificate and private key&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 365&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;certificate=&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;key_file=&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; [Debug] Log file for TLS pre-master secrets - see xrdp.ini(5)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#tls_pms_log_file=/tmp/xrdp-pms/premaster.log&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; set SSL protocols&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; can be comma separated list of &amp;#39;SSLv3&amp;#39;, &amp;#39;TLSv1&amp;#39;, &amp;#39;TLSv1.1&amp;#39;, &amp;#39;TLSv1.2&amp;#39;, &amp;#39;TLSv1.3&amp;#39;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;ssl_protocols=TLSv1.2, TLSv1.3&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; set TLS cipher suites&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#tls_ciphers=HIGH&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; concats the domain name to the user if set for authentication with the separator&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; for example when the server is multi homed with SSSd&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#domain_user_separator=@&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; The following options will override the keyboard layout settings.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; These options are for DEBUG and are not recommended for regular use.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#xrdp.override_keyboard_type=0x04&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#xrdp.override_keyboard_subtype=0x01&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#xrdp.override_keylayout=0x00000409&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; Section name to use for automatic login if the client sends username&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; and password. If empty, the domain name sent by the client is used.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; If empty and no domain name is given, the first suitable section in&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; this file will be used.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;autorun=&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;allow_channels=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;allow_multimon=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;bitmap_cache=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;bitmap_compression=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;bulk_compression=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#hidelogwindow=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;max_bpp=32&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;new_cursors=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; fastpath - can be &amp;#39;input&amp;#39;, &amp;#39;output&amp;#39;, &amp;#39;both&amp;#39;, &amp;#39;none&amp;#39;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;use_fastpath=both&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; when true, userid/password *must* be passed on cmd line. If the password&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; is incorrect, the login will fail&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#require_credentials=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; when true, the userid will be used to try to authenticate&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#enable_token_login=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; You can set the PAM error text in a gateway setup (MAX 256 chars)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#pamerrortxt=change your password according to policy at http://url&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; colors used by windows in RGB format&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#black=000000&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;grey=e1e1e1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;dark_grey=b4b4b4&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;blue=0078d7&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;dark_blue=0078d7&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#white=ffffff&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#red=ff0000&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#green=00ff00&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#background=626c72&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; Select a default fv1 font&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; This parameter is a comma-separated list of DPI:name pairs.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; The list is scanned from left-to-right. The font used is the first&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; font whose DPI value is less-than-or-equal to the vertical DPI of&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; the monitor used for the login screen.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#fv1_select=130:sans-18.fv1,0:sans-10.fv1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; Default DPI used for a monitor when that information is unknown&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#default_dpi=96&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; configure login screen&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; Login Screen Window Title&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#ls_title=My Login Title&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; top level window background color in RGB format&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;ls_top_window_bg_color=003057&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; width and height of login screen&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; When the sans-10.fv1 font is selected, these values are in pixels.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; For other fonts, these values (and other size values) will be scaled&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; appropriately to preserve the proportions of the login screen.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; The default height allows for about 5 fields to be comfortably displayed&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; above the buttons at the bottom. To display more fields, make &amp;lt;ls_height&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; larger, and also increase &amp;lt;ls_btn_ok_y_pos&amp;gt; and &amp;lt;ls_btn_cancel_y_pos&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; below&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;ls_width=350&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;ls_height=360&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; login screen background color in RGB format&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;ls_bg_color=f0f0f0&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; optional background image filename. BMP format is always supported,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; but other formats will be supported if xrdp is build with imlib2&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; The transform can be one of the following:-&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&amp;nbsp; &amp;nbsp; &amp;nbsp;none&amp;nbsp; : No transformation. Image is placed in bottom-right corner&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;of the screen.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&amp;nbsp; &amp;nbsp; &amp;nbsp;scale : Image is scaled to the screen size. The image aspect&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ratio is not preserved.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&amp;nbsp; &amp;nbsp; &amp;nbsp;zoom&amp;nbsp; : Image is scaled to the screen size. The image aspect&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ratio is preserved by clipping the image.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#ls_background_image=&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#ls_background_transform=none&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; logo&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; full path to file or file in shared folder. BMP format is always supported,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; but other formats will be supported if xrdp is build with imlib2&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; For transform values, see &amp;#39;ls_background_transform&amp;#39;. The logo width and&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; logo height are ignored for a transform of &amp;#39;none&amp;#39;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;ls_logo_filename=&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;ls_logo_transform=scale&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;ls_logo_width=250&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;ls_logo_height=110&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;ls_logo_x_pos=55&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;ls_logo_y_pos=35&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; for positioning labels such as username, password etc&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;ls_label_x_pos=30&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;ls_label_width=68&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; for positioning text and combo boxes next to above labels&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;ls_input_x_pos=110&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;ls_input_width=210&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; y pos for first label and combo box&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;ls_input_y_pos=158&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; OK button&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;ls_btn_ok_x_pos=142&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;ls_btn_ok_y_pos=308&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;ls_btn_ok_width=85&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;ls_btn_ok_height=30&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; Cancel button&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;ls_btn_cancel_x_pos=237&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;ls_btn_cancel_y_pos=308&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;ls_btn_cancel_width=85&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;ls_btn_cancel_height=30&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;[Logging]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; Note: Log levels can be any of: core, error, warning, info, debug, or trace&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;LogFile=xrdp.log&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;LogLevel=INFO&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;EnableSyslog=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#SyslogLevel=INFO&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#EnableConsole=false&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#ConsoleLevel=INFO&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#EnableProcessId=false&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;[LoggingPerLogger]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; Note: per logger configuration is only used if xrdp is built with&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; --enable-devel-logging&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#xrdp.c=INFO&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#main()=INFO&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;[Channels]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; Channel names not listed here will be blocked by XRDP.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; You can block any channel by setting its value to false.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; IMPORTANT! All channels are not supported in all use&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; cases even if you set all values to true.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; You can override these settings on each session type&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; These settings are only used if allow_channels=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;rdpdr=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;rdpsnd=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;drdynvc=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;cliprdr=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;rail=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;xrdpvr=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; for debugging xrdp, in section xrdp1, change port=-1 to this:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#port=/tmp/.xrdp/xrdp_display_10&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; Session types&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; Some session types such as Xorg and Xvnc start a display server.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; Startup command-line parameters for the display server are configured&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; in sesman.ini. See and configure also sesman.ini.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;[Xorg]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;name=Xorg&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;lib=libxup.so&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;username=ask&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;password=ask&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;port=-1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;code=20&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; Frame capture interval (milliseconds)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;h264_frame_interval=16&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;rfx_frame_interval=32&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;normal_frame_interval=40&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;[Xvnc]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;name=Xvnc&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;lib=libvnc.so&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;username=ask&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;password=ask&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#ip=127.0.0.1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; port is -1 (sesman controlled), numeric (TCP connection) or an&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; absolute path (UDS connection).&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;port=-1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; For sesman-controlled Xvnc, the &amp;#39;code&amp;#39; parameter can be used to switch&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; the connection protocol:-&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; 0 - Use a TCP connection&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; 1 - Use a Unix Domain Sockets (UDS) connection&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&amp;nbsp; &amp;nbsp; &amp;nbsp;UDS connections are not supported by older VNC servers, but are&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&amp;nbsp; &amp;nbsp; &amp;nbsp;supported by TigerVNC. If you select this option, comment out&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&amp;nbsp; &amp;nbsp; &amp;nbsp;(or remove) the &amp;#39;ip=&amp;#39; setting.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; UDS connections are recommended, if your X server supports them. They are&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; more secure, and untroubled by firewalls.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; On FIPS-based systems, TCP CANNOT be used, as the classic algorithm used for&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; VNC password files is no longer considered secure by FIPS&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; The default value is 0 on non-FIPS systems, and 1 on FIPS-based systems.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;code=1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#xserverbpp=24&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#delay_ms=2000&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; Disable requested encodings to support buggy VNC servers&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; (1 = ExtendedDesktopSize)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#disabled_encodings_mask=0&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; Generic VNC Proxy&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; Tailor this to specific hosts and VNC instances by specifying an ip&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; and port and setting a suitable name.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#[vnc-any]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#name=vnc-any&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#lib=libvnc.so&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#ip=ask&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#port=ask5900&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#username=na&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#password=ask&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#pamusername=asksame&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#pampassword=asksame&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#delay_ms=2000&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; Use one of these to connect to a chansrv instance created outside of sesman&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; (e.g. as part of an x11vnc console session). Replace &amp;#39;n&amp;#39; with the&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; display number of the session, and (if applicable) &amp;#39;u&amp;#39; with the numeric&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; UID of the session.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; If &amp;#39;username&amp;#39; or &amp;#39;pamusername&amp;#39; is set, you probably don&amp;#39;t need to use&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; the two parameter variant with &amp;#39;u&amp;#39;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#chansrvport=DISPLAY(n)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#chansrvport=DISPLAY(n,u)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; Generic RDP proxy using NeutrinoRDP&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; Tailor this to specific hosts by specifying an ip and port and setting&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; a suitable name.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#[neutrinordp-any]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#name=neutrinordp-any&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; To use this section, you should build xrdp with configure option&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; --enable-neutrinordp.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#lib=libxrdpneutrinordp.so&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#ip=ask&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#port=ask3389&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#username=ask&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#password=ask&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; Uncomment the following lines to enable PAM authentication for proxy&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; connections.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#pamusername=ask&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#pampassword=ask&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; Currently NeutrinoRDP doesn&amp;#39;t support dynamic resizing. Uncomment&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; this line if you&amp;#39;re using a client which does.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#enable_dynamic_resizing=false&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; By default, performance settings requested by the RDP client are ignored&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; and chosen by NeutrinoRDP. Uncomment this line to allow the user to&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; select performance settings in the RDP client.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#perf.allow_client_experiencesettings=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; Override any experience setting by uncommenting one or more of the&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; following lines.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#perf.wallpaper=false&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#perf.font_smoothing=false&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#perf.desktop_composition=false&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#perf.full_window_drag=false&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#perf.menu_anims=false&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#perf.themes=false&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#perf.cursor_blink=false&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; By default NeutrinoRDP supports cursor shadows. If this is giving&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; you problems (e.g. cursor is a black rectangle) try disabling cursor&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; shadows by uncommenting the following line.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#perf.cursor_shadow=false&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; By default, NeutrinoRDP uses the keyboard layout of the remote RDP Server.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; If you want to tell the remote the keyboard layout of the RDP Client,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; by uncommenting the following line.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#neutrinordp.allow_client_keyboardLayout=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; The following options will override the remote keyboard layout settings.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; These options are for DEBUG and are not recommended for regular use.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#neutrinordp.override_keyboardLayout_mask=0x0000FFFF&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#neutrinordp.override_kbd_type=0x04&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#neutrinordp.override_kbd_subtype=0x01&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#neutrinordp.override_kbd_fn_keys=12&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#neutrinordp.override_kbd_layout=0x00000409&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; You can override the common channel settings for each session type&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#channel.rdpdr=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#channel.rdpsnd=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#channel.drdynvc=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#channel.cliprdr=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#channel.rail=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#channel.xrdpvr=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;[xrdp1]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;name=sesman-X11&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;lib=libxup.so&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;username=ask&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;password=ask&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;ip=127.0.0.1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;port=-1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;code=20&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;[channels]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;; for sound&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;audio=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;rdpsnd=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;尤其是最后xrdp1和channels的添加&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Fri, 15 May 2026 21:38:55 +0800</pubDate></item><item><title>阿里云 alibabalinux  安装gnome桌面，然后xrdp，然后有xorg,然后安装音频</title><link>http://mcuem.xyz/?id=116</link><description>&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;阿里云 ECS (Alibaba Cloud Linux + GNOME) RDP 远程声音配置指南&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;适用场景&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;•&lt;span style=&quot;white-space:pre&quot;&gt;&lt;/span&gt;云服务器：阿里云 ECS（或其他云服务器）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;•&lt;span style=&quot;white-space:pre&quot;&gt;&lt;/span&gt;操作系统：Alibaba Cloud Linux / CentOS 8 / RHEL 8&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;•&lt;span style=&quot;white-space:pre&quot;&gt;&lt;/span&gt;桌面环境：GNOME&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;•&lt;span style=&quot;white-space:pre&quot;&gt;&lt;/span&gt;远程协议：RDP (xrdp)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;•&lt;span style=&quot;white-space:pre&quot;&gt;&lt;/span&gt;问题：Windows 远程连接后听不到声音&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;________________________________________&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;核心原理&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;云服务器默认没有物理声卡，需要：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;1.&lt;span style=&quot;white-space:pre&quot;&gt;&lt;/span&gt;编译 PulseAudio 源码（生成头文件）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;2.&lt;span style=&quot;white-space:pre&quot;&gt;&lt;/span&gt;编译安装 pulseaudio-module-xrdp（RDP 音频重定向模块）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;3.&lt;span style=&quot;white-space:pre&quot;&gt;&lt;/span&gt;配置 xrdp 和 PulseAudio，让声音通过 RDP 传输到 Windows 客户端&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;________________________________________&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;完整操作步骤&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;第一步：安装基础开发工具和依赖&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;bash&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;复制&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;下载&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;sudo yum install -y epel-release&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;sudo yum install -y git gcc gcc-c++ make autoconf automake libtool \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&amp;nbsp; &amp;nbsp; pulseaudio-libs-devel meson ninja-build \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&amp;nbsp; &amp;nbsp; glib2-devel libcap-devel libsndfile-devel \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&amp;nbsp; &amp;nbsp; speexdsp-devel alsa-lib-devel dbus-devel \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&amp;nbsp; &amp;nbsp; libtdb-devel openssl-devel libudev-devel lirc-devel \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&amp;nbsp; &amp;nbsp; check check-devel doxygen&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;第二步：下载并编译 PulseAudio 源码&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;bash&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;复制&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;下载&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;cd /tmp&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;wget https://freedesktop.org/software/pulseaudio/releases/pulseaudio-15.0.tar.xz&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;tar -xf pulseaudio-15.0.tar.xz&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;cd pulseaudio-15.0&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;# 配置构建（禁用文档以加快编译）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;meson setup build -Ddocumentation=false&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;# 编译&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;ninja -C build&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;第三步：下载并编译 xrdp 音频模块&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;bash&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;复制&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;下载&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;cd /tmp&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;git clone --depth=1 https://github.com/neutrinolabs/pulseaudio-module-xrdp.git&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;cd pulseaudio-module-xrdp&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;# 生成配置&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;./bootstrap&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;# 指向 PulseAudio 源码目录&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;./configure PULSE_DIR=/tmp/pulseaudio-15.0 PULSE_CONFIG_DIR=/tmp/pulseaudio-15.0/build&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;# 编译安装&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;make&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;sudo make install&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;第四步：配置自动加载&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;bash&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;复制&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;下载&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;# 创建 PulseAudio 自动加载配置&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;mkdir -p ~/.config/pulse/default.pa.d/&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;cat &amp;gt; ~/.config/pulse/default.pa.d/xrdp.pa &amp;lt;&amp;lt; &amp;#39;EOF&amp;#39;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;### Load xrdp module for RDP audio redirection&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;.ifexists module-xrdp-sink.so&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;load-module module-xrdp-sink&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;.endif&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;.ifexists module-xrdp-source.so&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;load-module module-xrdp-source&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;.endif&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;EOF&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;# 设置 xrdp-sink 为默认输出设备（登录时自动执行）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;echo &amp;#39;pactl set-default-sink xrdp-sink&amp;#39; &amp;gt;&amp;gt; ~/.profile&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;第五步：配置 xrdp 服务端&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;bash&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;复制&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;下载&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;# 编辑 /etc/xrdp/xrdp.ini，确保 [channels] 部分有：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;# audio=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;# rdpsnd=true&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;sudo sed -i &amp;#39;/\[channels\]/,/^$/ s/^;*audio=true/audio=true/&amp;#39; /etc/xrdp/xrdp.ini&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;sudo sed -i &amp;#39;/\[channels\]/,/^$/ s/^;*rdpsnd=true/rdpsnd=true/&amp;#39; /etc/xrdp/xrdp.ini&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;# 重启 xrdp&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;sudo systemctl restart xrdp&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;第六步：Windows RDP 客户端设置&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;在 Windows 上打开远程桌面连接（mstsc）：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;•&lt;span style=&quot;white-space:pre&quot;&gt;&lt;/span&gt;显示选项 → 本地资源 → 远程音频 → 设置&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;•&lt;span style=&quot;white-space:pre&quot;&gt;&lt;/span&gt;远程音频播放 → 在此计算机上播放&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;•&lt;span style=&quot;white-space:pre&quot;&gt;&lt;/span&gt;点击确定&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;第七步：测试声音&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;重新 RDP 连接后，在服务器终端执行：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;bash&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;复制&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;下载&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;# 检查设备&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;pactl list sinks short&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;# 播放测试音&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;paplay /usr/share/sounds/alsa/Front_Center.wav&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;或者在 GNOME 设置 → 声音 → 输出设备中选择 xrdp-sink，点击测试。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;________________________________________&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;常见问题速查&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;问题&lt;span style=&quot;white-space:pre&quot;&gt;&lt;/span&gt;解决方案&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;pactl list sinks 看不到 xrdp-sink&lt;span style=&quot;white-space:pre&quot;&gt;&lt;/span&gt;执行 pactl load-module module-xrdp-sink&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;编译缺依赖&lt;span style=&quot;white-space:pre&quot;&gt;&lt;/span&gt;根据报错用 yum search 找到对应 devel 包安装&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;PulseAudio 启动失败&lt;span style=&quot;white-space:pre&quot;&gt;&lt;/span&gt;检查 XDG_RUNTIME_DIR 环境变量，应为 /run/user/1000&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;声音卡顿/延迟&lt;span style=&quot;white-space:pre&quot;&gt;&lt;/span&gt;Windows RDP 客户端降低音频质量为&amp;quot;动态&amp;quot;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;重启后声音消失&lt;span style=&quot;white-space:pre&quot;&gt;&lt;/span&gt;确认 ~/.config/pulse/default.pa.d/xrdp.pa 存在&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;________________________________________&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;关键文件路径&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;文件/目录&lt;span style=&quot;white-space:pre&quot;&gt;&lt;/span&gt;作用&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;/usr/lib64/pulse-15.0/modules/module-xrdp-sink.so&lt;span style=&quot;white-space:pre&quot;&gt;&lt;/span&gt;xrdp 音频模块&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;~/.config/pulse/default.pa.d/xrdp.pa&lt;span style=&quot;white-space:pre&quot;&gt;&lt;/span&gt;用户级 PulseAudio 自动加载配置&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;/etc/xrdp/xrdp.ini&lt;span style=&quot;white-space:pre&quot;&gt;&lt;/span&gt;xrdp 服务配置&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;/tmp/pulseaudio-15.0/&lt;span style=&quot;white-space:pre&quot;&gt;&lt;/span&gt;PulseAudio 源码目录（编译用）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;________________________________________&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;这套流程的核心是：让 PulseAudio 识别到 RDP 虚拟出来的音频通道。关键是编译 pulseaudio-module-xrdp 时需要正确的 PulseAudio 源码头文件路径。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;以后如果换服务器或重装系统，按这个文档一步步来就行&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Fri, 15 May 2026 21:36:45 +0800</pubDate></item><item><title>CentOS8 Stream安装chrome</title><link>http://mcuem.xyz/?id=115</link><description>&lt;p&gt;先换源：&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h4 style=&quot;font-size: 16px; font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; margin: 16px 0px; color: rgb(15, 17, 21); text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;1. 备份原有配置（重要安全步骤）&lt;/h4&gt;&lt;pre style=&quot;font-family: var(--ds-font-family-code); overflow: auto; text-wrap: wrap; word-break: break-all; padding: 16px; color: rgb(15, 17, 21); margin-top: 0px !important; margin-bottom: 0px !important;&quot;&gt;#&amp;nbsp;创建备份目录并移动所有原有的&amp;nbsp;.repo&amp;nbsp;文件
sudo&amp;nbsp;mkdir&amp;nbsp;-p&amp;nbsp;/etc/yum.repos.d/backupsudo&amp;nbsp;mv&amp;nbsp;/etc/yum.repos.d/*.repo&amp;nbsp;/etc/yum.repos.d/backup/&lt;/pre&gt;&lt;h4 style=&quot;font-size: 16px; font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; margin: 16px 0px; color: rgb(15, 17, 21); text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;2. 创建并编辑新的源配置文件&lt;/h4&gt;&lt;p&gt;&lt;span style=&quot;color: #0F1115; font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 16px; text-wrap: wrap; background-color: #FFFFFF;&quot;&gt;使用文本编辑器（如&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; font-family: var(--ds-font-family-code); border-radius: 6px; align-items: center; padding: 0px 5px; display: inline-flex; color: rgb(15, 17, 21); text-wrap: wrap; font-size: 0.875em !important;&quot;&gt;vim&lt;/code&gt;&lt;span style=&quot;color: #0F1115; font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 16px; text-wrap: wrap; background-color: #FFFFFF;&quot;&gt;&amp;nbsp;或&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; font-family: var(--ds-font-family-code); border-radius: 6px; align-items: center; padding: 0px 5px; display: inline-flex; color: rgb(15, 17, 21); text-wrap: wrap; font-size: 0.875em !important;&quot;&gt;nano&lt;/code&gt;&lt;span style=&quot;color: #0F1115; font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 16px; text-wrap: wrap; background-color: #FFFFFF;&quot;&gt;）创建&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; font-family: var(--ds-font-family-code); border-radius: 6px; align-items: center; padding: 0px 5px; display: inline-flex; color: rgb(15, 17, 21); text-wrap: wrap; font-size: 0.875em !important;&quot;&gt;/etc/yum.repos.d/CentOS-Stream.repo&lt;/code&gt;&lt;span style=&quot;color: #0F1115; font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 16px; text-wrap: wrap; background-color: #FFFFFF;&quot;&gt;&amp;nbsp;文件：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre style=&quot;font-family: var(--ds-font-family-code); overflow: auto; text-wrap: wrap; word-break: break-all; padding: 16px; color: rgb(15, 17, 21); margin-top: 0px !important; margin-bottom: 0px !important;&quot;&gt;sudo&amp;nbsp;vim&amp;nbsp;/etc/yum.repos.d/CentOS-Stream.repo&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;color: #0F1115; font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 16px; text-wrap: wrap; background-color: #FFFFFF;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #0F1115; font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 16px; text-wrap: wrap; background-color: #FFFFFF;&quot;&gt;然后，将以下内容&lt;/span&gt;&lt;span style=&quot;font-weight: 600; color: #0F1115; font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 16px; text-wrap: wrap; background-color: #FFFFFF;&quot;&gt;完整复制&lt;/span&gt;&lt;span style=&quot;color: #0F1115; font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 16px; text-wrap: wrap; background-color: #FFFFFF;&quot;&gt;并粘贴到文件中：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre style=&quot;font-family: var(--ds-font-family-code); overflow: auto; text-wrap: wrap; word-break: break-all; padding: 16px; color: rgb(15, 17, 21); margin-top: 0px !important; margin-bottom: 0px !important;&quot;&gt;[BaseOS]
name=CentOS-Stream-8&amp;nbsp;-&amp;nbsp;Base
baseurl=https://mirrors.aliyun.com/centos/8-stream/BaseOS/x86_64/os/
pgcheck=1
enabled=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
[AppStream]
name=CentOS-Stream-8&amp;nbsp;-&amp;nbsp;AppStream
baseurl=https://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os/
gpgcheck=1
enabled=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
[extras]
name=CentOS-Stream-8&amp;nbsp;-&amp;nbsp;Extras
baseurl=https://mirrors.aliyun.com/centos/8-stream/extras/x86_64/os/
gpgcheck=1
enabled=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;color: #0F1115; font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 16px; text-wrap: wrap; background-color: #FFFFFF;&quot;&gt;&lt;/span&gt;&lt;em style=&quot;color: rgb(15, 17, 21); font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;注意：&lt;code style=&quot;box-sizing: border-box; font-style: ; font-variant-ligatures: ; font-variant-caps: ; font-variant-numeric: ; font-variant-east-asian: ; font-variant-alternates: ; font-variant-position: ; font-weight: ; font-stretch: ; line-height: ; font-optical-sizing: ; font-kerning: ; font-feature-settings: ; font-variation-settings: ; font-family: var(--ds-font-family-code); background-color: var(--dsw-alias-markdown-inline-code); border-radius: 6px; align-items: center; padding: 0px 5px; display: inline-flex; font-size: 0.875em !important;&quot;&gt;baseurl&lt;/code&gt;&amp;nbsp;中的&amp;nbsp;&lt;code style=&quot;box-sizing: border-box; font-style: ; font-variant-ligatures: ; font-variant-caps: ; font-variant-numeric: ; font-variant-east-asian: ; font-variant-alternates: ; font-variant-position: ; font-weight: ; font-stretch: ; line-height: ; font-optical-sizing: ; font-kerning: ; font-feature-settings: ; font-variation-settings: ; font-family: var(--ds-font-family-code); background-color: var(--dsw-alias-markdown-inline-code); border-radius: 6px; align-items: center; padding: 0px 5px; display: inline-flex; font-size: 0.875em !important;&quot;&gt;/8-stream/&lt;/code&gt;&amp;nbsp;路径是专门为 CentOS Stream 8 设计的&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h4 style=&quot;font-size: 16px; font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; margin: 16px 0px; color: rgb(15, 17, 21); text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;3. 清理并重建缓存&lt;/h4&gt;&lt;p class=&quot;ds-markdown-paragraph&quot; style=&quot;margin-top: 16px; margin-bottom: 16px; color: rgb(15, 17, 21); font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;配置完成后，执行以下命令使新源生效&lt;/p&gt;&lt;pre style=&quot;font-family: var(--ds-font-family-code); overflow: auto; text-wrap: wrap; word-break: break-all; padding: 16px; color: rgb(15, 17, 21); margin-top: 0px !important; margin-bottom: 0px !important;&quot;&gt;sudo&amp;nbsp;dnf&amp;nbsp;clean&amp;nbsp;all
sudo&amp;nbsp;dnf&amp;nbsp;makecache&lt;/pre&gt;&lt;p&gt;&lt;em style=&quot;color: rgb(15, 17, 21); font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;/em&gt;&lt;/p&gt;&lt;p class=&quot;ds-markdown-paragraph&quot; style=&quot;margin-top: 16px; margin-bottom: 16px; color: rgb(15, 17, 21); font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;font-weight: 600;&quot;&gt;1. 添加 Google Chrome 软件源&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;ds-markdown-paragraph&quot; style=&quot;margin-top: 16px; margin-bottom: 16px; color: rgb(15, 17, 21); font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;创建一个新的仓库文件，让系统知道去哪里下载 Chrom&lt;/p&gt;&lt;pre style=&quot;font-family: var(--ds-font-family-code); overflow: auto; text-wrap: wrap; word-break: break-all; padding: 16px; color: rgb(15, 17, 21); margin-top: 0px !important; margin-bottom: 0px !important;&quot;&gt;sudo&amp;nbsp;tee&amp;nbsp;/etc/yum.repos.d/google-chrome.repo&amp;nbsp;&amp;lt;&amp;lt;EOF
[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/\$basearch&amp;nbsp;
enabled=1
gpgcheck=1
gpgkey=https://dl.google.com/linux/linux_signing_key.pub
EOF&lt;/pre&gt;&lt;p&gt;&lt;em style=&quot;color: rgb(15, 17, 21); font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;br/&gt;&lt;/em&gt;&lt;/p&gt;&lt;p class=&quot;ds-markdown-paragraph&quot; style=&quot;margin-top: 16px; margin-bottom: 16px; color: rgb(15, 17, 21); font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;font-weight: 600;&quot;&gt;2. 导入 Google 的 GPG 签名密钥&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;ds-markdown-paragraph&quot; style=&quot;margin-top: 16px; margin-bottom: 16px; color: rgb(15, 17, 21); font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;这一步是必要的安全验证，确保下载的软件包来自 Google 且未被篡改&lt;/p&gt;&lt;pre style=&quot;font-family: var(--ds-font-family-code); overflow: auto; text-wrap: wrap; word-break: break-all; padding: 16px; color: rgb(15, 17, 21); margin-top: 0px !important; margin-bottom: 0px !important;&quot;&gt;sudo&amp;nbsp;rpm&amp;nbsp;--import&amp;nbsp;https://dl.google.com/linux/linux_signing_key.pub&lt;/pre&gt;&lt;p class=&quot;ds-markdown-paragraph&quot; style=&quot;margin-top: 16px; margin-bottom: 16px; color: rgb(15, 17, 21); font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;font-weight: 600;&quot;&gt;3. 更新软件包缓存&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;ds-markdown-paragraph&quot; style=&quot;margin-top: 16px; margin-bottom: 16px; color: rgb(15, 17, 21); font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;让系统识别刚刚添加的 Chrome 仓库。&lt;/p&gt;&lt;pre style=&quot;font-family: var(--ds-font-family-code); overflow: auto; text-wrap: wrap; word-break: break-all; padding: 16px; color: rgb(15, 17, 21); margin-top: 0px !important; margin-bottom: 0px !important;&quot;&gt;sudo&amp;nbsp;dnf&amp;nbsp;update&lt;/pre&gt;&lt;p class=&quot;ds-markdown-paragraph&quot; style=&quot;margin-top: 16px; margin-bottom: 16px; color: rgb(15, 17, 21); font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;font-weight: 600;&quot;&gt;4. 安装 Chrome&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;ds-markdown-paragraph&quot; style=&quot;margin-top: 16px; margin-bottom: 16px; color: rgb(15, 17, 21); font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;最后，执行安装命令&lt;/p&gt;&lt;pre style=&quot;font-family: var(--ds-font-family-code); overflow: auto; text-wrap: wrap; word-break: break-all; padding: 16px; color: rgb(15, 17, 21); margin-top: 0px !important; margin-bottom: 0px !important;&quot;&gt;sudo&amp;nbsp;dnf&amp;nbsp;install&amp;nbsp;google-chrome-stable&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;color: #0F1115; font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 16px; text-wrap: wrap; background-color: #FFFFFF;&quot;&gt;安装过程中，系统可能会询问是否导入密钥或确认安装，输入&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; font-family: var(--ds-font-family-code); border-radius: 6px; align-items: center; padding: 0px 5px; display: inline-flex; color: rgb(15, 17, 21); text-wrap: wrap; font-size: 0.875em !important;&quot;&gt;y&lt;/code&gt;&lt;span style=&quot;color: #0F1115; font-family: quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Open Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 16px; text-wrap: wrap; background-color: #FFFFFF;&quot;&gt;&amp;nbsp;并按回车即可。&lt;/span&gt;&lt;/p&gt;</description><pubDate>Tue, 07 Apr 2026 10:01:35 +0800</pubDate></item><item><title>ubuntu24.04修改密码长度低于8位规则</title><link>http://mcuem.xyz/?id=114</link><description>&lt;p class=&quot;marklang-paragraph&quot; style=&quot;margin-top: 6px; margin-bottom: 6px; padding: 0px; list-style: none; -webkit-font-smoothing: antialiased; font-size: 16px; line-height: 28px; color: rgb(51, 51, 51); -webkit-text-stroke-color: initial; font-family: &amp;quot;PingFang SC&amp;quot;, Arial, sans-serif; text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;Ubuntu系统中，修改密码长度规则通常是依赖于PAM（Pluggable Authentication Modules）模块的配置。默认情况下，Ubuntu使用了&lt;code style=&quot;background: none 0% 0% / auto repeat scroll padding-box border-box rgb(237, 238, 240); border-radius: 6px; margin: 0px 4px; padding: 1px 4px; -webkit-font-smoothing: antialiased;&quot;&gt;pam_pwquality&lt;/code&gt;模块来管理密码策略，其中包括密码长度要求。&lt;/p&gt;&lt;h3 style=&quot;margin: 6px 0px; padding: 0px; list-style: none; line-height: 30px; font-size: 18px; -webkit-font-smoothing: antialiased; font-weight: 500; -webkit-text-stroke-color: rgb(51, 51, 51); font-family: &amp;quot;PingFang SC&amp;quot;, Arial, sans-serif; color: rgb(51, 51, 51); text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;修改密码长度规则&lt;/h3&gt;&lt;p class=&quot;marklang-paragraph&quot; style=&quot;margin-top: 6px; margin-bottom: 6px; padding: 0px; list-style: none; -webkit-font-smoothing: antialiased; font-size: 16px; line-height: 28px; color: rgb(51, 51, 51); -webkit-text-stroke-color: initial; font-family: &amp;quot;PingFang SC&amp;quot;, Arial, sans-serif; text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;要修改密码长度规则，你需要编辑&lt;code style=&quot;background: none 0% 0% / auto repeat scroll padding-box border-box rgb(237, 238, 240); border-radius: 6px; margin: 0px 4px; padding: 1px 4px; -webkit-font-smoothing: antialiased;&quot;&gt;/etc/security/pwquality.conf&lt;/code&gt;文件。你可以使用文本编辑器来修改这个文件，例如使用&lt;code style=&quot;background: none 0% 0% / auto repeat scroll padding-box border-box rgb(237, 238, 240); border-radius: 6px; margin: 0px 4px; padding: 1px 4px; -webkit-font-smoothing: antialiased;&quot;&gt;nano&lt;/code&gt;或&lt;code style=&quot;background: none 0% 0% / auto repeat scroll padding-box border-box rgb(237, 238, 240); border-radius: 6px; margin: 0px 4px; padding: 1px 4px; -webkit-font-smoothing: antialiased;&quot;&gt;vim&lt;/code&gt;。&lt;/p&gt;&lt;ol style=&quot;list-style-type: none;&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p class=&quot;marklang-paragraph&quot; style=&quot;margin-top: 6px; margin-bottom: 6px; padding: 0px; list-style: none; -webkit-font-smoothing: antialiased; line-height: 28px; -webkit-text-stroke-color: initial;&quot;&gt;打开终端。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class=&quot;marklang-paragraph&quot; style=&quot;margin-top: 6px; margin-bottom: 6px; padding: 0px; list-style: none; -webkit-font-smoothing: antialiased; line-height: 28px; -webkit-text-stroke-color: initial;&quot;&gt;使用以下命令编辑&lt;code style=&quot;background: none 0% 0% / auto repeat scroll padding-box border-box rgb(237, 238, 240); border-radius: 6px; margin: 0px 4px; padding: 1px 4px; -webkit-font-smoothing: antialiased;&quot;&gt;pwquality.conf&lt;/code&gt;文件：&lt;/p&gt;&lt;pre style=&quot;background-color: rgba(245, 246, 249, 0.5); line-height: 24px; margin-top: 12px; margin-bottom: 12px; -webkit-font-smoothing: antialiased; border-radius: 9px;&quot;&gt;sudo&amp;nbsp;nano&amp;nbsp;/etc/security/pwquality.conf&lt;/pre&gt;&lt;p class=&quot;marklang-paragraph&quot; style=&quot;margin-top: 6px; margin-bottom: 6px; padding: 0px; list-style: none; -webkit-font-smoothing: antialiased; line-height: 28px; -webkit-text-stroke-color: initial;&quot;&gt;或者使用&lt;code style=&quot;background: none 0% 0% / auto repeat scroll padding-box border-box rgb(237, 238, 240); border-radius: 6px; margin: 0px 4px; padding: 1px 4px; -webkit-font-smoothing: antialiased;&quot;&gt;vim&lt;/code&gt;:&lt;/p&gt;&lt;pre style=&quot;background-color: rgba(245, 246, 249, 0.5); line-height: 24px; margin-top: 12px; margin-bottom: 12px; -webkit-font-smoothing: antialiased; border-radius: 9px;&quot;&gt;sudo&amp;nbsp;vim&amp;nbsp;/etc/security/pwquality.conf&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;p class=&quot;marklang-paragraph&quot; style=&quot;margin-top: 6px; margin-bottom: 6px; padding: 0px; list-style: none; -webkit-font-smoothing: antialiased; line-height: 28px; -webkit-text-stroke-color: initial;&quot;&gt;在文件中找到或添加以下行来设置密码最小长度：&lt;/p&gt;&lt;pre style=&quot;background-color: rgba(245, 246, 249, 0.5); line-height: 24px; margin-top: 12px; margin-bottom: 12px; -webkit-font-smoothing: antialiased; border-radius: 9px;&quot;&gt;minlen&amp;nbsp;=&amp;nbsp;6&lt;/pre&gt;&lt;p class=&quot;marklang-paragraph&quot; style=&quot;margin-top: 6px; margin-bottom: 6px; padding: 0px; list-style: none; -webkit-font-smoothing: antialiased; line-height: 28px; -webkit-text-stroke-color: initial;&quot;&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;前面的#去掉&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class=&quot;marklang-paragraph&quot; style=&quot;margin-top: 6px; margin-bottom: 6px; padding: 0px; list-style: none; -webkit-font-smoothing: antialiased; line-height: 28px; -webkit-text-stroke-color: initial;&quot;&gt;这里&lt;font face=&quot;monospace&quot;&gt;&lt;span style=&quot;background-color: #EDEEF0;&quot;&gt;6&lt;/span&gt;&lt;/font&gt;是你希望设置的密码最小长度。你可以根据需要调整这个数字。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class=&quot;marklang-paragraph&quot; style=&quot;margin-top: 6px; margin-bottom: 6px; padding: 0px; list-style: none; -webkit-font-smoothing: antialiased; line-height: 28px; -webkit-text-stroke-color: initial;&quot;&gt;保存并关闭文件。如果你使用的是&lt;code style=&quot;background: none 0% 0% / auto repeat scroll padding-box border-box rgb(237, 238, 240); border-radius: 6px; margin: 0px 4px; padding: 1px 4px; -webkit-font-smoothing: antialiased;&quot;&gt;nano&lt;/code&gt;，可以通过按&lt;code style=&quot;background: none 0% 0% / auto repeat scroll padding-box border-box rgb(237, 238, 240); border-radius: 6px; margin: 0px 4px; padding: 1px 4px; -webkit-font-smoothing: antialiased;&quot;&gt;Ctrl + O&lt;/code&gt;保存更改，然后按&lt;code style=&quot;background: none 0% 0% / auto repeat scroll padding-box border-box rgb(237, 238, 240); border-radius: 6px; margin: 0px 4px; padding: 1px 4px; -webkit-font-smoothing: antialiased;&quot;&gt;Ctrl + X&lt;/code&gt;退出；如果你使用的是&lt;code style=&quot;background: none 0% 0% / auto repeat scroll padding-box border-box rgb(237, 238, 240); border-radius: 6px; margin: 0px 4px; padding: 1px 4px; -webkit-font-smoothing: antialiased;&quot;&gt;vim&lt;/code&gt;，则可以通过输入&lt;code style=&quot;background: none 0% 0% / auto repeat scroll padding-box border-box rgb(237, 238, 240); border-radius: 6px; margin: 0px 4px; padding: 1px 4px; -webkit-font-smoothing: antialiased;&quot;&gt;:wq&lt;/code&gt;然后按&lt;code style=&quot;background: none 0% 0% / auto repeat scroll padding-box border-box rgb(237, 238, 240); border-radius: 6px; margin: 0px 4px; padding: 1px 4px; -webkit-font-smoothing: antialiased;&quot;&gt;Enter&lt;/code&gt;来保存并退出。&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3 style=&quot;margin: 6px 0px; padding: 0px; list-style: none; line-height: 30px; font-size: 18px; -webkit-font-smoothing: antialiased; font-weight: 500; -webkit-text-stroke-color: rgb(51, 51, 51); font-family: &amp;quot;PingFang SC&amp;quot;, Arial, sans-serif; color: rgb(51, 51, 51); text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;重启PAM服务&lt;/h3&gt;&lt;p class=&quot;marklang-paragraph&quot; style=&quot;margin-top: 6px; margin-bottom: 6px; padding: 0px; list-style: none; -webkit-font-smoothing: antialiased; font-size: 16px; line-height: 28px; color: rgb(51, 51, 51); -webkit-text-stroke-color: initial; font-family: &amp;quot;PingFang SC&amp;quot;, Arial, sans-serif; text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;修改完配置文件后，为了使更改生效，你可能需要重启PAM服务或整个系统。通常，重启PAM服务就足够了。可以使用以下命令来重启PAM服务：&lt;/p&gt;&lt;pre style=&quot;background-color: rgba(245, 246, 249, 0.5); line-height: 24px; margin-top: 12px; margin-bottom: 12px; -webkit-font-smoothing: antialiased; border-radius: 9px; color: rgb(51, 51, 51); font-size: 16px;&quot;&gt;sudo&amp;nbsp;systemctl&amp;nbsp;restart&amp;nbsp;pam-auth-update.service&lt;/pre&gt;&lt;p class=&quot;marklang-paragraph&quot; style=&quot;margin-top: 6px; margin-bottom: 6px; padding: 0px; list-style: none; -webkit-font-smoothing: antialiased; font-size: 16px; line-height: 28px; color: rgb(51, 51, 51); -webkit-text-stroke-color: initial; font-family: &amp;quot;PingFang SC&amp;quot;, Arial, sans-serif; text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;或者简单地重启系统：&lt;/p&gt;&lt;pre style=&quot;background-color: rgba(245, 246, 249, 0.5); line-height: 24px; margin-top: 12px; margin-bottom: 12px; -webkit-font-smoothing: antialiased; border-radius: 9px; color: rgb(51, 51, 51); font-size: 16px;&quot;&gt;sudo&amp;nbsp;reboot&lt;/pre&gt;&lt;h3 style=&quot;margin: 6px 0px; padding: 0px; list-style: none; line-height: 30px; font-size: 18px; -webkit-font-smoothing: antialiased; font-weight: 500; -webkit-text-stroke-color: rgb(51, 51, 51); font-family: &amp;quot;PingFang SC&amp;quot;, Arial, sans-serif; color: rgb(51, 51, 51); text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;验证更改&lt;/h3&gt;&lt;p class=&quot;marklang-paragraph&quot; style=&quot;margin-top: 6px; margin-bottom: 6px; padding: 0px; list-style: none; -webkit-font-smoothing: antialiased; font-size: 16px; line-height: 28px; color: rgb(51, 51, 51); -webkit-text-stroke-color: initial; font-family: &amp;quot;PingFang SC&amp;quot;, Arial, sans-serif; text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;重启后，你可以通过创建一个新用户或更改现有用户的密码来验证密码长度规则是否生效：&lt;/p&gt;&lt;pre style=&quot;background-color: rgba(245, 246, 249, 0.5); line-height: 24px; margin-top: 12px; margin-bottom: 12px; -webkit-font-smoothing: antialiased; border-radius: 9px; color: rgb(51, 51, 51); font-size: 16px;&quot;&gt;sudo&amp;nbsp;adduser&amp;nbsp;newuser#&amp;nbsp;或者更改现有用户的密码：sudo&amp;nbsp;passwd&amp;nbsp;username&lt;/pre&gt;&lt;p class=&quot;marklang-paragraph&quot; style=&quot;margin-top: 6px; margin-bottom: 6px; padding: 0px; list-style: none; -webkit-font-smoothing: antialiased; font-size: 16px; line-height: 28px; color: rgb(51, 51, 51); -webkit-text-stroke-color: initial; font-family: &amp;quot;PingFang SC&amp;quot;, Arial, sans-serif; text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;在设置密码时，系统会强制应用新的密码长度策略。&lt;/p&gt;&lt;h3 style=&quot;margin: 6px 0px; padding: 0px; list-style: none; line-height: 30px; font-size: 18px; -webkit-font-smoothing: antialiased; font-weight: 500; -webkit-text-stroke-color: rgb(51, 51, 51); font-family: &amp;quot;PingFang SC&amp;quot;, Arial, sans-serif; color: rgb(51, 51, 51); text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;注意事项&lt;/h3&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;确保设置的密码长度符合组织的安全政策。过短的密码容易被猜测或破解。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;如果你在修改配置文件时遇到权限问题，确保你使用了&lt;code style=&quot;background: none 0% 0% / auto repeat scroll padding-box border-box rgb(237, 238, 240); border-radius: 6px; margin: 0px 4px; padding: 1px 4px; -webkit-font-smoothing: antialiased;&quot;&gt;sudo&lt;/code&gt;来编辑文件。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;在生产环境中，更改密码策略前最好先通知所有用户，并确保他们了解新的安全要求。这有助于避免混乱和可能的用户不满。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class=&quot;marklang-paragraph&quot; style=&quot;margin-top: 6px; margin-bottom: 6px; padding: 0px; list-style: none; -webkit-font-smoothing: antialiased; font-size: 16px; line-height: 28px; color: rgb(51, 51, 51); -webkit-text-stroke-color: initial; font-family: &amp;quot;PingFang SC&amp;quot;, Arial, sans-serif; text-wrap-mode: wrap; background-color: rgb(255, 255, 255);&quot;&gt;通过上述步骤，你应该能够成功修改Ubuntu系统中的密码长度规则。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Thu, 19 Mar 2026 09:39:24 +0800</pubDate></item><item><title>科技图片</title><link>http://mcuem.xyz/?id=113</link><description>&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;http://mcuem.xyz/zb_users/upload/2025/12/202512291766996848319216.png&quot; style=&quot;&quot; title=&quot;1301.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;http://mcuem.xyz/zb_users/upload/2025/12/202512291766996849909861.jpg&quot; style=&quot;&quot; title=&quot;1302.jpg&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Mon, 29 Dec 2025 16:26:43 +0800</pubDate></item><item><title>Emlog php网站后台编辑器等图标无法正常展示，都是小方块怎么解决？</title><link>http://mcuem.xyz/?id=112</link><description>&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; text-wrap: nowrap;&quot;&gt;&lt;img class=&quot;ue-image&quot; src=&quot;http://mcuem.xyz/zb_users/upload/2025/12/202512281766901270358734.png&quot; title=&quot;1205.png&quot; alt=&quot;1205.png&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; text-wrap: nowrap;&quot;&gt;如果是 Windows 操作系统IIS服务器部署emlog，可能会遇到浏览器找不到字体文件（woff/woff2）&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; text-wrap: nowrap;&quot;&gt;产生的错误。这样会导致浏览器无法加载字体图标，&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; text-wrap: nowrap;&quot;&gt;这是因为服务器IIS不认woff/woff2 文件类型的&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; text-wrap: nowrap;&quot;&gt;原因。以下是解决方案（也可以自己搜索：&amp;quot;IIS 字体不显示&amp;quot; ，网上也有很多解决该问题的文章）：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; text-wrap: nowrap;&quot;&gt;&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; text-wrap: nowrap;&quot;&gt;1.打开IIS，在主界面中点击MIME类型：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; text-wrap: nowrap;&quot;&gt;2.手动添加MIME类型：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; text-wrap: nowrap;&quot;&gt;扩展名&amp;nbsp; MIME类型&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; text-wrap: nowrap;&quot;&gt;.woff application/x-font-woff&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; text-wrap: nowrap;&quot;&gt;.woff2 application/x-font-woff&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; text-wrap: nowrap;&quot;&gt;3.添加完成后，刷新页面就行了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; text-wrap: nowrap;&quot;&gt;如果上面方法未能解决，检查是否开启了静态 CDN，emlog 是动态系统并不支持静态CDN，开启&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; text-wrap: nowrap;&quot;&gt;可能会导致字体加载出现跨域问题，无法加载，&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; text-wrap: nowrap;&quot;&gt;出现图标无法展示的问题，请关闭CDN。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; text-wrap: nowrap;&quot;&gt;IIS管理器在 windows控制面板&amp;nbsp; 管理工具&amp;nbsp; internet信息服务器管理器中 设置中 选择网站，对应的&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; text-wrap: nowrap;&quot;&gt;网站才能看到MINE设置&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Sun, 28 Dec 2025 13:53:23 +0800</pubDate></item><item><title>Mscomm控件安装问题 License information for TMSComm not found(bcb6) win10</title><link>http://mcuem.xyz/?id=111</link><description>&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255); border: 0px none currentcolor; box-sizing: border-box; color: rgb(50, 62, 50); font-family: simsun; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; list-style: outside none none; outline-style: none; outline-width: 0px; overflow-wrap: break-word; overflow-x: auto;&quot;&gt;操作步骤：&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255); border: 0px none currentcolor; box-sizing: border-box; color: rgb(50, 62, 50); font-family: simsun; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; list-style: outside none none; outline-style: none; outline-width: 0px; overflow-wrap: break-word; overflow-x: auto;&quot;&gt;&amp;nbsp;1.打开delphi,菜单选择compoents-&amp;gt;import Activex control，然后选择那个mscomm32.ocx安装即可。&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #333333; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-variant-numeric: normal; font-variant-east-asian: normal; overflow-wrap: break-word;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255); border: 0px none currentcolor; box-sizing: border-box; color: rgb(50, 62, 50); font-family: simsun; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; list-style: outside none none; outline-style: none; outline-width: 0px; overflow-wrap: break-word; overflow-x: auto;&quot;&gt;&lt;br style=&quot;padding: 0px; margin: 0px; box-sizing: border-box; outline-style: none; outline-width: 0px; overflow-wrap: break-word;&quot;/&gt;&amp;nbsp;2.注册MScomm控件&lt;br style=&quot;padding: 0px; margin: 0px; box-sizing: border-box; outline-style: none; outline-width: 0px; overflow-wrap: break-word;&quot;/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;开始-》运行-》 regsvr32 MScomm32.ocx&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #333333; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-variant-numeric: normal; font-variant-east-asian: normal; overflow-wrap: break-word;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255); border: 0px none currentcolor; box-sizing: border-box; color: rgb(50, 62, 50); font-family: simsun; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; list-style: outside none none; outline-style: none; outline-width: 0px; overflow-wrap: break-word; overflow-x: auto;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;如果在delphi中使用Mscomm控件出现如下错误提示：&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #333333; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-variant-numeric: normal; font-variant-east-asian: normal; overflow-wrap: break-word;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255); border: 0px none currentcolor; box-sizing: border-box; color: rgb(50, 62, 50); font-family: simsun; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; list-style: outside none none; outline-style: none; outline-width: 0px; overflow-wrap: break-word; overflow-x: auto;&quot;&gt;&amp;nbsp;&amp;nbsp;“License information for TMSComm not found.You cannot&amp;nbsp;&amp;nbsp;use this&amp;nbsp;&amp;nbsp;control in design mode.”&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #333333; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-variant-numeric: normal; font-variant-east-asian: normal; overflow-wrap: break-word;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255); border: 0px none currentcolor; box-sizing: border-box; color: rgb(50, 62, 50); font-family: simsun; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; list-style: outside none none; outline-style: none; outline-width: 0px; overflow-wrap: break-word; overflow-x: auto;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;则运行如下操作步骤：&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #333333; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-variant-numeric: normal; font-variant-east-asian: normal; overflow-wrap: break-word;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255); border: 0px none currentcolor; box-sizing: border-box; color: rgb(50, 62, 50); font-family: simsun; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; list-style: outside none none; outline-style: none; outline-width: 0px; overflow-wrap: break-word; overflow-x: auto;&quot;&gt;&amp;nbsp;&amp;nbsp;{&lt;br style=&quot;padding: 0px; margin: 0px; box-sizing: border-box; outline-style: none; outline-width: 0px; overflow-wrap: break-word;&quot;/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;在程序，运行中运行：regedit，进入注册表，在HEKEY_CLASS_ROOT下的LICENSES下新建项目，&lt;br style=&quot;padding: 0px; margin: 0px; box-sizing: border-box; outline-style: none; outline-width: 0px; overflow-wrap: break-word;&quot;/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;项目名是：4250E830-6AC2-11cf-8ADB-00AA00C00905&lt;br style=&quot;padding: 0px; margin: 0px; box-sizing: border-box; outline-style: none; outline-width: 0px; overflow-wrap: break-word;&quot;/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;选中此新建项目的对应的右边的默认右击鼠标，选择修改在数值数据中输入：&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #333333; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-variant-numeric: normal; font-variant-east-asian: normal; overflow-wrap: break-word;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255); border: 0px none currentcolor; box-sizing: border-box; color: rgb(50, 62, 50); font-family: simsun; font-variant-numeric: normal; font-variant-east-asian: normal; line-height: 21px; list-style: outside none none; outline-style: none; outline-width: 0px; overflow-wrap: break-word; overflow-x: auto;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Sun, 28 Dec 2025 13:52:52 +0800</pubDate></item><item><title>关于AD18中Board information的位置更改</title><link>http://mcuem.xyz/?id=110</link><description>&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #4F4F4F; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;AD18出来也有将近小半个月了，论坛里也看到有人在问以前report里的board information到哪里去了？&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #4F4F4F; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;如果你没用过pads啥的，可能看界面会懵比了&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #4F4F4F; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #4F4F4F; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;仔细看右边！！！！&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;img class=&quot;ue-image&quot; src=&quot;http://mcuem.xyz/zb_users/upload/2025/12/202512281766901120250735.png&quot; title=&quot;1201.png&quot; style=&quot;text-wrap: wrap;&quot;/&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #4F4F4F; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;没错！就是它，点开以后下拉，看到没？！大大的report~&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;img class=&quot;ue-image&quot; src=&quot;http://mcuem.xyz/zb_users/upload/2025/12/202512281766901120688487.png&quot; title=&quot;1202.png&quot; style=&quot;text-wrap: wrap;&quot;/&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;img class=&quot;ue-image&quot; src=&quot;http://mcuem.xyz/zb_users/upload/2025/12/202512281766901120190537.png&quot; title=&quot;1203.png&quot; style=&quot;text-wrap: wrap;&quot;/&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #4F4F4F; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;点击它就是我们以前熟悉的东东了~&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #4F4F4F; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;ＰＳ：不得不说ＡＤ确实进步的很快。而老牌的ｃａｄｅｎｃｅ这些功能很强大，但交互应用始终是个头疼的问题，画一般的板子我已经抛弃它了。&lt;/span&gt;&lt;/p&gt;</description><pubDate>Sun, 28 Dec 2025 13:50:26 +0800</pubDate></item><item><title>win7电脑时间每次开机后总是自己快8小时</title><link>http://mcuem.xyz/?id=109</link><description>&lt;div class=&quot;post_content&quot; style=&quot;padding: 0px; margin: 0px; min-height: 30px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap;&quot;&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px;&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #333333; font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Lantinghei SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, arial, 宋体, sans-serif, tahoma; font-size: 16px; background-color: #FFFFFF;&quot;&gt;正确答案是打开注册表编辑器，regedit。找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation。把其中名为RealTimeIsUniversal的的值，设置为0&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #333333; font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Lantinghei SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, arial, 宋体, sans-serif, tahoma; font-size: 16px; background-color: #FFFFFF;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Sun, 28 Dec 2025 13:49:56 +0800</pubDate></item><item><title>防止程序启动两次的方法CreateMutex()</title><link>http://mcuem.xyz/?id=108</link><description>&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;&lt;span style=&quot;padding: 0px; margin: 0px; color: #4B4B4B; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px;&quot;&gt;在工程文件中, WinMain函数里加上以下代码(此代码在BCB6.0下运行):&lt;/span&gt;&lt;br style=&quot;padding: 0px; margin: 0px; color: rgb(75, 75, 75); font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px;&quot;/&gt;&lt;/p&gt;&lt;div style=&quot;padding: 4px 5px 4px 4px; margin: 0px; text-wrap: wrap; border: 1px solid rgb(204, 204, 204); width: 966.26px; color: rgb(75, 75, 75); font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; word-break: break-all; background-color: rgb(238, 238, 238);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;HANDLE&amp;nbsp;hMutex&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;&amp;nbsp;CreateMutex(NULL,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #0000FF;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;Process&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;);&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #0000FF;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;&amp;nbsp;(GetLastError()&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;&amp;nbsp;ERROR_ALREADY_EXISTS)&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span id=&quot;Codehighlighter1_115_313_Open_Text&quot; style=&quot;padding: 0px; margin: 0px;&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;{&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CloseHandle(hMutex);&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MessageBox(Application&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;Handle,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;程序已经在运行中，不能重复启动！&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;提示&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;,&amp;nbsp;MB_OK&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;MB_ICONWARNING);&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Application&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;Terminate();&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #0000FF;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;;&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Application&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;CreateForm(__classid(TForm1),&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;Form1);&lt;/span&gt;&lt;/div&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; color: rgb(0, 51, 0); font-family: 微软雅黑, 宋体, &amp;quot;Trebuchet MS&amp;quot;, Tahoma, Arial, sans-serif; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;br style=&quot;padding: 0px; margin: 0px; color: rgb(75, 75, 75); font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px;&quot;/&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #4B4B4B; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px;&quot;&gt;主要使用到CreateMutex()函数和GetLastError()以及一个常量ERROR_ALREADY_EXISTS.&lt;/span&gt;&lt;br style=&quot;padding: 0px; margin: 0px; color: rgb(75, 75, 75); font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px;&quot;/&gt;&lt;br style=&quot;padding: 0px; margin: 0px; color: rgb(75, 75, 75); font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px;&quot;/&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #4B4B4B; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px;&quot;&gt;当然, 你的程序有窗体的话, 还可以使用FindWindow().&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;padding: 0px; margin: 0px; color: rgb(75, 75, 75); font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px;&quot;/&gt;&lt;br style=&quot;padding: 0px; margin: 0px; color: rgb(75, 75, 75); font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px;&quot;/&gt;&lt;/p&gt;&lt;div style=&quot;padding: 4px 5px 4px 4px; margin: 0px; text-wrap: wrap; border: 1px solid rgb(204, 204, 204); width: 966.26px; color: rgb(75, 75, 75); font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; word-break: break-all; background-color: rgb(238, 238, 238);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #0000FF;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;handle&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;&amp;nbsp;FindWindow(NULL,&amp;nbsp;WindowName.c_str());&amp;nbsp;&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #0000FF;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;&amp;nbsp;(handle&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;NULL)&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #0000FF;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;;&amp;nbsp;&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;&lt;/span&gt;&lt;/div&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; text-wrap: wrap; background-color: rgb(255, 255, 255); color: rgb(75, 75, 75); font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px;&quot;&gt;&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;进程的互斥运行&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; text-wrap: wrap; background-color: rgb(255, 255, 255); color: rgb(75, 75, 75); font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px;&quot;&gt;　　正常情况下，一个进程的运行一般是不会影响到其他正在运行的进程的。但是对于某些有特殊要求的如以独占方式使用串行口等硬件设备的程序就要求在其进程运行期间不允许其他试图使用此端口设备的程序运行的，而且此类程序通常也不允许运行同一个程序的多个实例。这就引出了进程互斥的问题。&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; text-wrap: wrap; background-color: rgb(255, 255, 255); color: rgb(75, 75, 75); font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px;&quot;&gt;　　实现进程互斥的核心思想比较简单：进程在启动时首先检查当前系统是否已经存在有此进程的实例，如果没有，进程将成功创建并设置标识实例已经存在的标记。此后再创建进程时将会通过该标记而知晓其实例已经存在，从而保证进程在系统中只能存在一个实例。具体可以采取内存映射文件、有名事件量、有名互斥量以及全局共享变量等多种方法来实现。下面就分别对其中具有代表性的有名互斥量和全局共享变量这两种方法进行介绍：&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;&lt;/p&gt;&lt;div style=&quot;padding: 4px 5px 4px 4px; margin: 0px; text-wrap: wrap; border: 1px solid rgb(204, 204, 204); width: 966.26px; color: rgb(75, 75, 75); font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; word-break: break-all; background-color: rgb(238, 238, 238);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #008000;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #008000;&quot;&gt;&amp;nbsp;创建互斥量&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #008000;&quot;&gt;&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;HANDLE&amp;nbsp;m_hMutex&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;&amp;nbsp;CreateMutex(NULL,&amp;nbsp;FALSE,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;Sample07&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;);&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #008000;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #008000;&quot;&gt;&amp;nbsp;检查错误代码&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #008000;&quot;&gt;&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #0000FF;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;&amp;nbsp;(GetLastError()&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;&amp;nbsp;ERROR_ALREADY_EXISTS)&amp;nbsp;&lt;/span&gt;&lt;span id=&quot;Codehighlighter1_119_212_Open_Text&quot; style=&quot;padding: 0px; margin: 0px;&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;{&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;　&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #008000;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #008000;&quot;&gt;&amp;nbsp;如果已有互斥量存在则释放句柄并复位互斥量&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #008000;&quot;&gt;&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;　CloseHandle(m_hMutex);&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;　m_hMutex&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;&amp;nbsp;NULL;&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;　&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #008000;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #008000;&quot;&gt;&amp;nbsp;程序退出&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #008000;&quot;&gt;&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;　&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #0000FF;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;&amp;nbsp;FALSE;&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; text-wrap: wrap; background-color: rgb(255, 255, 255); color: rgb(75, 75, 75); font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px;&quot;&gt;&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;上面这段代码演示了有名互斥量在进程互斥中的用法。代码的核心是CreateMutex（）对有名互斥量的创建。CreateMutex（）函数可用来创建一个有名或无名的互斥量对象，其函数原型为：&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;&lt;/p&gt;&lt;div style=&quot;padding: 4px 5px 4px 4px; margin: 0px; text-wrap: wrap; border: 1px solid rgb(204, 204, 204); width: 966.26px; color: rgb(75, 75, 75); font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; word-break: break-all; background-color: rgb(238, 238, 238);&quot;&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;HANDLE&amp;nbsp;CreateMutex(&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;　LPSECURITY_ATTRIBUTES&amp;nbsp;lpMutexAttributes,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #008000;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #008000;&quot;&gt;&amp;nbsp;指向安全属性的指针&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #008000;&quot;&gt;&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;　BOOL&amp;nbsp;bInitialOwner,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #008000;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #008000;&quot;&gt;&amp;nbsp;初始化互斥对象的所有者&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #008000;&quot;&gt;&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;　LPCTSTR&amp;nbsp;lpName&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #008000;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #008000;&quot;&gt;&amp;nbsp;指向互斥对象名的指针&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #008000;&quot;&gt;&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;padding: 0px; margin: 0px; color: #000000;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; text-wrap: wrap; background-color: rgb(255, 255, 255); color: rgb(75, 75, 75); font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px;&quot;&gt;&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;如果函数成功执行，将返回一个互斥量对象的句柄。如果在CreateMutex（）执行前已经存在有相同名字的互斥量，函数将返回这个已经存在互斥量的句柄，并且可以通过GetLastError（）得到错误代码ERROR_ALREADY_EXIST。可见，通过对错误代码ERROR_ALREADY_EXIST的检测可以实现CreateMutex（）对进程的互斥。&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; text-wrap: wrap; background-color: rgb(255, 255, 255); color: rgb(75, 75, 75); font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 建立互斥体，用来同步。如果一个线程获取了互斥体，则要获取该互斥体的第二个线程将被挂起，直到第一个线程释放该互斥体。&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; text-wrap: wrap; background-color: rgb(255, 255, 255); color: rgb(75, 75, 75); font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px;&quot;&gt;参数&amp;nbsp;&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;lpMutexAttributes&amp;nbsp;&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;指向一个SECURITY_ATTRIBUTES结构的指针，这个结构决定互斥体句柄是否被子进程继承。&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;bInitialOwner&amp;nbsp;&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;布尔类型，决定互斥体的创建者是否为拥有者&amp;nbsp;&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;lpName&amp;nbsp;&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;指向互斥体名字字符串的指针。互斥体可以有名字。&amp;nbsp;&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;互斥体的好处是可以在进程间共享&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; text-wrap: wrap; background-color: rgb(255, 255, 255); color: rgb(75, 75, 75); font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px;&quot;&gt;心得体会：&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CreateMutex() 用于有独占要求的程序 (在其进程运行期间不允许其他使用此端口设备的程序运行，或不允许同名程序运行)。如有同名程序运行，则通过 GetLastError（）得到错误代码 ERROR_ALREADY_EXIST。&lt;/p&gt;&lt;p style=&quot;padding: 0px; margin-top: 0px; margin-bottom: 10px; text-wrap: wrap; background-color: rgb(255, 255, 255); color: rgb(75, 75, 75); font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px;&quot;&gt;刚才又执行了下得出的结果（程序名samp）&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 一般情况下：一进入调试阶段，进程管理器中就出现了samp进程，执行到CreateMutex时返回进程句柄，执行到if(GetLastError() == ERROR_ALREADY_EXISTS ) 进行判断时，跳过不执行if中的内容，所以表示没有互斥。&lt;br style=&quot;padding: 0px; margin: 0px;&quot;/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 调试之前先运行debug中的samp.exe再调试：一进入调试阶段，进程管理器中就出现了两个samp进程，执行到CreateMutex时返回进程句柄，执行到if(GetLastError() == ERROR_ALREADY_EXISTS ) 进行判断时，执行if中的内容，表示有互斥。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Sun, 28 Dec 2025 13:49:06 +0800</pubDate></item></channel></rss>