Win杂记

  • 启用和禁用任务管理器

    QString reg = "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System";
    QSettings pSetRegEdit (reg,QSettings::Format::Registry32Format);
    int val = 0;
    if(checked){
        val = 1;
        ui->pushButton_7->setText(u8"启用任务管理器");
    }else{
        ui->pushButton_7->setText(u8"禁用任务管理器");
    }
    pSetRegEdit.setValue("DisableTaskMgr",val);
    pSetRegEdit.sync();
  • hook使用

#include <Windows.h>
#include <iostream>
using namespace  std;
LRESULT CALLBACK mykeyboard(int nCode, WPARAM wParam, LPARAM lParam)
{
    KBDLLHOOKSTRUCT *p = (KBDLLHOOKSTRUCT*)lParam;

    std::cout<<nCode<<" "<<wParam<<" "<<p->vkCode<<" "<<p->flags<<std::endl;

    if (p->vkCode>=0x30&&p->vkCode<=0x39){
        // 数字0~9
    }
    else if(p->vkCode>=0x41&&p->vkCode<=0x5A){
        // 字母a~z
    }
    if (p->vkCode>=0x61&&p->vkCode<=0x7A){
        // 字母A~Z
    }
    //屏蔽
    else if ((p->vkCode == VK_TAB) && ((p->flags & LLKHF_ALTDOWN) != 0)){
        // ALT+TAB
    }
    //屏蔽
    else if ((p->vkCode == VK_ESCAPE) && ((p->flags & LLKHF_ALTDOWN) != 0)){
        // ALT+ESC
    }
    //屏蔽
    else if ((p->vkCode == VK_ESCAPE) && ((GetKeyState(VK_CONTROL) & 0x8000) != 0)){
        // CTRL+ESC
    }
    else if ((p->vkCode == VK_ESCAPE) &&
             ((GetKeyState(VK_CONTROL) & 0x8000) != 0) &&
             ((GetKeyState(VK_SHIFT) & 0x8000) != 0)){
        // CTRL + SHIFT + ESC
    }
    else if (p->vkCode == VK_LWIN || p->vkCode == VK_RWIN){
        // 左右WIN键
    }
    //此处无法屏蔽CTRL+ALT+DEL,已在SAS window中屏蔽
    else if ((p->vkCode == VK_DELETE) &&
             ((GetKeyState(VK_CONTROL) & 0x8000) != 0) &&
             ((GetKeyState(VK_MENU) & 0x8000) != 0 )){
        // CTRL+ALT+DEL

    }else{
        CallNextHookEx(NULL, nCode, wParam, lParam);
    }
    return 1;
}
HHOOK mouseHook;
void MainWindow::on_pushButton_4_clicked()
{
    return ;
    mouseHook = SetWindowsHookEx(WH_KEYBOARD_LL, mykeyboard, 0, 0);
    std::cout<<mouseHook<<endl;
}

C++与emoji

Unicode – The World Standard for Text and Emoji

https://unicode.org/emoji/charts/emoji-list.html

Qt下显示emoji表情

    int pEj[2][2]={{0x1F602,0x1F64F},{0x1F910,0x1F979}};
    for(int i = 0 ; i < 2 ; i++){
        for(int j = pEj[i][0] ; j < pEj[i][1] ; j++){
            char32_t* pr = (char32_t*) &j;          
            cursor.insertText(QString::fromStdU32String(pr));
        }
    }

cmd-连续执行多条命令用&& 连接多条命令

D:\hi>mkdir ccc && cd ccc
D:\hi\ccc>

命令    作用    举例
&    无条件执行&后的命令    cmd1 & cmd2 即cmd1,cmd2都会执行
&&    成功后执行    cmd1 && cmd2 即若cmd1执行成功则执行cmd2
||    失败后执行    cmd1 || cmd2 即若cmd1执行失败则执行cmd2
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值