ZBLOG

注册表怎么设置usb只能接入存储设备和打印机

在Windows中通过注册表设置USB只能接入存储设备和打印机,可以通过以下Qt代码实现:

完整的注册表配置方案

”`cpp #include #include #include

class USBController { public:

// 设置USB只能使用存储设备和打印机
static bool setUSBStorageAndPrintOnly() {
    bool success = true;

    // 1. 启用USB存储设备驱动
    success &= enableUSBStorage();

    // 2. 启用打印机设备
    success &= enablePrinters();

    // 3. 禁用其他USB设备类
    success &= disableOtherDeviceClasses();

    // 4. 设置设备安装策略
    success &= setInstallationPolicy();

    return success;
}

private:

// 启用USB存储设备
static bool enableUSBStorage() {
    QSettings usbstor("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\USBSTOR", 
                     QSettings::NativeFormat);
    usbstor.setValue("Start", 3); // SERVICE_SYSTEM_START
    usbstor.sync();

    return (usbstor.status() == QSettings::NoError);
}

// 启用打印机支持
static bool enablePrinters() {
    QSettings spooler("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Spooler", 
                     QSettings::NativeFormat);
    spooler.setValue("Start", 2); // SERVICE_AUTO_START
    spooler.sync();

    // USB打印机支持
    QProcess::execute("reg", QStringList() << "add" 
                     << "HKLM\\SYSTEM\\CurrentControlSet\\Control\\Print\\Environments\\Windows x64\\Drivers"
                     << "/v" << "Version" << "/t" << "REG_DWORD" << "/d" << "3" << "/f");

    return true;
}

// 禁用其他USB设备类
static bool disableOtherDeviceClasses() {
    QStringList disabledClasses = {
        "{745a17a0-74d3-11d0-b6fe-00a0c90f57da}", // HID (键盘、鼠标等)
        "{4d36e96c-e325-11ce-bfc1-08002be10318}", // 智能卡读卡器
        "{eec5ad98-8080-425f-922a-dabf3de3f69a}", // WPD (便携设备)
        "{4d36e978-e325-11ce-bfc1-08002be10318}", // PCMCIA适配器
        "{4d36e97d-e325-11ce-bfc1-08002be10318}", // 系统设备
        "{50dd5230-ba8a-11d1-bf5d-0000f805f530}"  // 智能电话
    };

    for (const QString& classGuid : disabledClasses) {
        QProcess::execute("reg", QStringList() << "add" 
                        << QString("HKLM\\SYSTEM\\CurrentControlSet\\Services\\UsbStor\\%1").arg(classGuid)
                        << "/v" << "Start" << "/t" << "REG_DWORD" << "/d" << "4" << "/f"); // SERVICE_DISABLED

        QProcess::execute("reg", QStringList() << "add" 
                        << QString("HKLM\\SOFTWARE\\Policies\\Microsoft\\Windows\\DeviceInstallation\\Restrictions\\DenyDeviceIDs")
                        << "/v" << classGuid << "/t" << "REG_SZ" << "/d" << "1" << "/f");
    }

    return true;
}

// 设置设备安装策略(组策略)
static bool setInstallationPolicy() {
    QSettings policy("HKEY_LOCAL_MACHINE\\SOFTWARE\\Policies\\Microsoft\<br/><br/><br/><font size=1 color=#CCCCCC>内容由零声教学AI助手提供,问题来源于学员提问</font>

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=24426

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?