存档

2019年10月 的存档

C#中接收系统屏幕锁定和解锁的事件

2019年10月22日 没有评论

最近在做一个 demo,需要去监听用户是否有锁屏,或者注销操作。用 C++ 可以去接收特定的消息去处理,但我总觉得 C# 应该有更好的实现。

搜索了一番,果然找到了,还是微软好呀,啥都为我们考虑到了,搞了一点动力都没有。

为了实现这样的效果,需要使用 Microsoft.Win32.SystemEvents 类,他提供了一些事件,我们可以注册这些事件来完成自己的需求。

Microsoft.Win32.SystemEvents.SessionSwitch += new Microsoft.Win32.SessionSwitchEventHandler(SystemEvents_SessionSwitch);  
void SystemEvents_SessionSwitch(object sender, Microsoft.Win32.SessionSwitchEventArgs e)  
{  
  if (e.Reason == Microsoft.Win32.SessionSwitchReason.SessionLock)  
  {   
    // 屏幕锁定  
  }  
  else if (e.Reason == Microsoft.Win32.SessionSwitchReason.SessionUnlock)  
  {   
    // 屏幕解锁  
  }  
}

是不是很简单?都不需要实例化类。但是需要注意的是,因为是静态类,所以在必要的时候,需要显示地去取消事件注册,以避免内存泄露。

分类: 日常 标签:

Ubuntu 安装SSR

2019年10月11日 没有评论

先前在 Vultr上安装的是 SS,貌似状态不好,时好时坏。

后来无意间看到一个免费的 SSR 服务,虽然时不时地更新端口什么的,好在可以及时地感知更新,因为我专门写了一个python脚本实现自动化,斗智斗勇的过程中也学了基本知识。平时就用来搜索下开发相关的文章什么的,一时倒还蛮好的。

唯一的不顺的地方就是,该服务禁止下载大文件,也不知道是如何做到的。导致我从Google Drive里无法下载一些机器学习相关的数据集什么的。

只好回过头来,在服务器上搭建自己的SSR,借此来做文件中转。

我选择了别人提供的最简单的方式:一键安装脚本。

wget -N –no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/ssr.sh && chmod +x ssr.sh && bash ssr.sh

后续的步骤就不用写了,都是中文提示,基本上使用默认配置就可以了。

分类: 一句话 标签: