Windows快捷键

Win键相关的快捷键

Win + Home 将所有使用中窗口以外的窗口最小化(和摇动使用中窗口一样意思)

Win + Space空格键 将所有桌面上的窗口透明化(和鼠标移到工作列的最右下角一样意思)

Win + ↑ 上方向键 最大化使用中窗口(和将窗口用鼠标拖到屏幕上缘一样意思)

Shift + Win + ↑ 上方向键 垂直最大化使用中窗口(但水平宽度不变)

Win + ↓ 下方向键 最小化窗口/还原先前最大化的使用中窗口

Win + 左/右方向键 将窗口靠到屏幕的左右两侧(和将窗口用鼠标拖到左右边缘一样意思)

Shift + Win + 左/右方向键 将窗口移到左、右屏幕(如果你有接双屏幕的话)工作列快速列

Win + 1~9 开启工作列上相对应的软件,从左到右依顺序为Win+1到Win+9

Shift + Win + 1~9 开启对应位置软件的一个新「分身」,例如firefox的话会是开新窗口(鼠标是Shift+点软件)

Ctrl + Win + 1~9 在对应位置软件已开的分身中切换

Alt + Win + 1~9 开启对应位置软件的右键选单

Ctrl + Shift + 鼠标点软件 以管理员权限开启该软件

WIN + 点击任务栏快捷方式 在此程序中新建一个实例

Win + (+/-): 打开Windows放大、缩小功能

Win + G 在屏幕上的Gadget 间切换

Win + X 打开移动中心

Win + D 显示桌面,最小化所有窗口

Win + E 打开资源管理器

Win + F 打开资源管理器搜索结果

Win + L 锁定计算机,回到登陆窗口

Win + M 最小化当前窗口

Win + P 投影机输出设定(仅屏幕、同步显示、延伸、仅投影机)

Win + R 打开运行窗口

Win + T 工作列的Alt+Tab

Win + U 打开控制面板轻松访问中心

Win + Break 打开控制面板系统属性

Win + Tab 打开Flip3D任务切换功能


Windows基础快捷键

F1 帮助

Ctrl+C ( Ctrl+Insert) 复制选中项目

Ctrl+X 剪切选中项目

Ctrl+V ( Shift+Insert) 粘贴选中项目

Ctrl+Z 撤销

Ctrl+Y 重做

Delete ( Ctrl+D) 删除选中项目至回收站

Shift+Delete 直接删除选中项目

F2 重命名选中项目

Ctrl+A 全选

F3 搜索

Alt+Enter 显示选中项目属性

Alt+F4 关闭当前项目或退出当前程序

Alt+空格 打开当前窗口的快捷方式菜单

Alt+Tab 在当前运行的窗口中切换

Ctrl+Alt+Tab 使用方向键在当前运行的窗口中切换

Ctrl+滚轮 改变桌面图标大小

Picture of Windows logo key +Tab 开启Aero Flip 3-D

Ctrl+ Picture of Windows logo key +Tab 使用方向键在 Aero Flip 3D程序中切换

Alt+Esc 在当前打开的程序间切换

F4 显示资源管理器的地址栏列表

Shift+F10 显示选中项目的快捷方式菜单

Ctrl+Esc 打开开始菜单

F10 激活当前窗口的菜单栏

F5 ( Ctrl+R) 刷新

Alt+ ↑ 资源管理区中返回文件夹的上一级菜单

Esc 取消当前操作

Ctrl+Shift+Esc 打开任务栏管理器

插入碟片时按住Shift 禁止CD/DVD的自动运行

右边或左边的 Ctrl+Shift 改变阅读顺序


资源管理器相关快捷键

Ctrl + N 打开新窗口

Ctrl + W 关闭当前窗口

Ctrl + Shift + N 新建文件夹

End 显示文件夹底部

Home 显示文件夹顶部

F11 最大/最小化当前文件夹

Ctrl + 句号 (.) 顺时针方向旋转图片

Ctrl + 逗号 (,) 逆时针方向旋转图片

Num Lock + 小键盘星号 (*) 显示选中文件夹下的所有子文件夹

Num Lock + 小键盘加号( + ) 显示选中文件夹的内容

Num Lock + 小键盘减号 (-) 折叠选中文件夹

← 折叠选中文件夹或返回父文件夹

Alt + Enter 打开选中项目的属性对话框

Alt + P 预览面板开关

Alt + ← 打开上一个文件夹

Backspace 打开上一个文件夹

→ 选中第一个子文件夹

Alt + → 打开下一个文件夹

Alt + ↑ 返回上一层文件夹

Ctrl + 滚轮 改变图标大小

Alt + D 选中地址栏

Ctrl + E 选中搜索框

Ctrl + F 选中搜索框

Shift+右键点选文件 出现「附到开始菜单」和「复制为路径」两个额外的右键选项

Shift+右键点选文件夹 出现「在新处理程序开启(另开新窗口)」、「在此处开启命令窗口(DOS!)」和「复制为路径」三个额外的右键选项


任务栏快捷键

Shift + 点击任务栏程序按钮 在新窗口中打开此程序

Ctrl + Shift + 点击任务栏程序按钮 以管理员身份运行此程序

Shift + 右键点击任务栏程序按钮 打开此程序的窗口菜单

Shift + 右键点击任务栏分组按钮 打开本组的窗口菜单

Ctrl + 点击任务栏分组按钮 在本组窗口中循环

深度探索C++对象模型总结

C++对象模型主要解释为:

  • 语言中直接支持面向对象程序设计的部分
  • 对于各种支持的底层实现机制

关于对象

  C语言中,数据和处理数据的操作时分开声明,而C++采用抽象数据类型进行操作。在C++加上封装并未带来布局成本,在布局以及存取时间上主要的额外负担是由virtual引起的:

  • virtual function 机制:用以支持一个有效率的“执行期绑定”。
  • virtual base blass : 用以实现“多次出现在继承体系中的base class, 有一个单一而被共享的实例”。
  • 多重继承下的一些额外负担。

C++对象模型

  • 简单对象模型:members本身不放在objects中,object存储指向member的指针。
  • 表格驱动对象模型:数据与操作分离为两个表格,object存储指向两个表格的指针。
  • C++对象模型:每一个class产生一堆指向virtual functions的指针,放在virtual table(vtbl)中,每一个class object安插一个vptr指向相关的virtual table,每一个class关联的type_info objects信息。vptr的设定和重置都由每一个class的constructor, destructor, copy assignment自动完成。

关键词所带来的差异

当一个人感觉到比较好的时候,使用struct取代class,注意struct在C++中的逻辑意义和如何正确使用。

对象的差异

C++程序设计模型直接支持三种程序设计范式:

  • 程序模型
  • 抽象数据类型模型
  • 面向对象模型
    纯粹以一种范式编写程序,有助于整体行为的良好稳固。

C++以下列方式支持多态:

  • 经由一组隐式的转化操作,例如把derived class指针转化为一个指向其public bass type的指针
  • 经由virtual function
  • 经由dynamic_cast和typeid运算符
    多态的主要用途是经由一个共同的接口来影响类型的封装。

需要多少内存才能够表示一个class object:

  • 其nonstatic data members的总和大小
  • 任何alignment的需要而填补的空间
  • 为了支持virtual 而由内部产生的任何额外负担

构造函数语意学

Default Constructor的构造操作

default constructors在需要的时候被编译器产生出来,但需要注意的是这种需要时编译器方面的而不是程序的需要。一个由于为声明constructor函数而被隐式声明的default constructor将是一个trivial(无用) constructor,在某些情况编译器将会生成nontrivial default constructor.

  • 带有Defulat Constructor 的Member Class Object:
      在constructor真正被调用生成,编译器在包含这样member的constructor中自动扩张,将member的constructor行为先进行

运行,其调用顺序根据member objects在class中的声明顺序决定。

  • 带有Default Constructor 的Base Class
     与上面同理,bass class的constructor先进行调用。
  • 带有一个Virtual Function的Class
      class声明或者继承一个virtual Function / class派生自一个继承链,其中有一个或多个virtual base classes.

一个virtual function table 会被编译器生成,内放virtual function地址。vptr内含vtbl的地址。

  • 带有Virtual Base Class 的 Class

Copy Constructor的构造操作

有三种情况使得一个object的内容作为另一个class object的初值:

  • 对一个object做显示的初始化操作
  • 当object被当做参数交给某个函数时
  • 当函数传回一个class object时

Default Memberwise Initialization:为定义一个explicit copy constructor时,将object使用递归方式拷贝每个成员。

当class不展现Bitwise Copy Semantics时会合成copy constructor:

  • 当class内含一个声明有copy constructorh的member object
  • 继承的base class有一个copy constructor(不论是显示声明还是合成而得)
  • 当class声明一个多多个virtual functions
  • 当class派生于继承链,其中有一个或多个virtual base classes

程序转化语意学

成员们的初始化队伍

  • 初始化一个reference member
  • 初始化一个const member
  • 调用一个base class的constructor,而他拥有一组参数
  • 调用一个member class的constructor, 而它有一组参数
  1. list的初始化会被以适当的顺序在constructor之内安插初始化操作,并且在任何explicit user code之前。

Data 语意学

  • 语言本身所造成的额外负担
  • 编译器对于特殊情况所提供的优化处理
  • Alignment限制

Data Member的绑定

一个inline函数实体,在整个class声明未被完全看见之前,是不会被评估求值得。

Data Member的布局

  static data merbers不会被放进class的布局中,members的顺序根据编译器而定,较晚出现的members有较高的地址。

Data Member的存取

  • Static Data Members
      static 成员只有一个实例,通过一个指针和对象存取member结果一样。若取一个static data member的地址会得到一个指向

其数据类型的指针。name-mangling对其进行独一性的编码。

  • Nonstatic Data Members
      在成员函数内,data members通过隐式的this指针进行访问,不同data数据的访问是通过对class object地址进行偏移进行访问。

Data members的地址在编译期即可获得,当使用继承之类的机制,data members的存取效率会受到影响。

继承与Data Member

  具体继承并不会增加空间或者存取时间的额外负担。但加上多态机制之后情况就会有所不同,vtbl 和vptr的创建,constructor和destructor对
vtbl和vptr的设定和销毁都会带来空间和时间上的负担。
  将vptr放在class object的尾端可以保留base class C struct的对象布局。将vptr放在class object的前端对于在多重继承下,通过指向class
members的指针调用virtual function带来一些帮助。

多重继承

虚继承

对象成员的效率

指向Data Members的指针

  取一个nonstatic data member的地址,将会得到它在class中的offset

Function 语意学

Member的各种调用方式

Nonstatic Member functions

  • 改写函数的signature以安插一个额外参数(this)到member function以提供存取管道,使得class object得以将此函数调用。
  • 将每一个“对nonstatic data member”的存取操作改为经由this指针来存取。
  • 将member function通过mangling重新写成一个独一无二的·外部函数。

Virtual Member functions

通过虚运行机制进行调用。

Static Member functions

  • 没有this指针
  • 不能直接存取class中的nonstatic members
  • 不能够被声明为const, volatile, virtual
  • 不需要经由class object才被调用
  • 取一个这样的地址将获得其内存中的地址吗,是一个nonmember函数指针。

Virtual Member functions

  多态以一个public base class的指针或引用寻址出一个derived class object。每个多态class object增加两个members
一个字符串或数据表示class的类型和一个指向某个表格的指针(vptr),为了找到函数地址,每一个virtual function被指派一个表格
索引值。

多重继承下得Virtual functions

函数的效能

指向Member Function的指针

  取一个nonstatic member function的地址得到的时它在内存中真正的地址,这个值不是完全的,需要被绑定到某个class object上才能
够通过它调用该函数。

Inline Functions

  • 分析函数定义
  • 真正的inline函数扩展操作是在调用的那一点上。

构造,析构,拷贝语意学

纯虚函数的存在:可以定义和静态调用一个pure virtual Function, pure virtual function一定需要进行定义,派生类需要进行相关调用。

“无继承”情况下得对象构造

Plain OI Data :struct
抽象数据类型 :ADT(Class)
带virtual function类 :constructor需要再任何base class construtors调用之后,在任何使用者供应的代码之前进行附加vptr初始化。
这个时候,copy constructor和copy assignment operator不再是trivial,同样需要对vptr进行操作。

继承体系下得对象构造

  • 虚继承:解决virtual base class的共享性问题

vptr初始化语意学

  • 当一个完整的对象被构造起来时
  • 当一个subobject constructor调用了一个virtual function

对象复制语意

对象的效能

析构语意学

  • 如果object内含一个vptrm那么首先重设相关的virtual table
  • destructor的函数本体现在被执行
  • class拥有member class objects,而后者有destructors,那么它们会以声明顺序的相反顺序被调用

执行期语意学

对象的构造和析构

将object尽可能放置在使用它的那个程序区段附近,这样做可以节省非必要的对象产生操作和摧毁操作。

  • 全局对象: 需要静态初始化
  • 局部静态对象: 初始化一次
  • 对象数组:

new和delete运算符

  • 通过设当的new运算符函数实例,配置所需的内存
  • 将配置得来的对象设立初值

Alpha、Beta、RC、GA版本介绍

Alpha:是内部测试版,一般不向外部发布,会有很多Bug.一般只有测试人员使用。

Beta:也是测试版,这个阶段的版本会一直加入新的功能。在Alpha版之后推出。

RC:(Release Candidate) 顾名思义么 ! 用在软件上就是候选版本。系统平台上就是发行候选版本。RC版不会再加入新的功能了,主要着重于除错。

GA:General Availability,正式发布的版本,在国外都是用GA来说明release版本的。

RTM:(Release to Manufacture)是给工厂大量压片的版本,内容跟正式版是一样的,不过RTM版也有出限制、评估版的。但是和正式版本的主要程序代码都是一样的。

OEM:是给计算机厂商随着计算机贩卖的,也就是随机版。只能随机器出货,不能零售。只能全新安装,不能从旧有操作系统升级。包装不像零售版精美,通常只有一面CD和说明书(授权书)。

RVL:号称是正式版,其实RVL根本不是版本的名称。它是中文版/英文版文档破解出来的。

EVAL:而流通在网络上的EVAL版,与“评估版”类似,功能上和零售版没有区别。

RTL:Retail(零售版)是真正的正式版,正式上架零售版。在安装盘的i386文件夹里有一个eula.txt,最后有一行EULAID,就是你的版本。比如简体中文正式版是EULAID:WX.4_PRO_RTL_CN,繁体中文正式版是WX.4_PRO_RTL_TW。
其中:如果是WX.开头是正式版,WB.开头是测试版。PRE,代表家庭版;PRO,代表专业版。

α、β、λ常用来表示软件测试过程中的三个阶段:

  • α是第一阶段,一般只供内部测试使用;
  • β是第二个阶段,已经消除了软件中大部分的不完善之处,但仍有可能还存在缺陷和漏洞,一般只提供给特定的用户群来测试使用;
  • λ是第三个阶段,此时产品已经相当成熟,只需在个别地方再做进一步的优化处理即可上市发行。

BIOS下U盘无法启动

BIOS设置中,无法启动U盘,多出现在WIN8的系统和华硕的品牌机上。

选择“UEFI:u盘”启动项的时候,无法进入U启动, 一般是由于Launch CSM系统兼容支持模块没有启用。
LaunchCSM选项是灰色的,意思就是说我们选择不了它那个选项,也就修改不了它的状态。这是由于BIOS 设置了 Secure Boot Control (安全启动控制)。

我们可以在在主菜单Secure/Security目录下,选择Secure Boot Control 把它设置为Disabled。

然后我们在BOOT 菜单下的Launch CSM设置为Enabled(启用)即可。

重启电脑再次进入BIOS设置,我们便可看见,在启动选项里面,出现多了几个启动选项。

有时选择了“UEFI:u盘”做为第一启动的时候,电脑还是无法进入PE。这是因为选择了接口方式不一样的启动方式。

  这时有两个u盘启动,一个是带着UEFI:格式的,一个是不带任何格式的。UEFI:新型UEFI,全称“统一的可扩展固件接口”(Unified Extensible Firmware Interface),是一种详细描述类型接口的标准。这种接口用于操作系统自动从预启动的操作环境,加载到一种操作系统上。如果我们选择了UEFI这种接口方式是进不了PE的,所以我们选择另一个不指定接口方式的u盘启动作为第一启动即可。

  如果进入PE以后,发现没有硬盘,是因为硬盘传输模式选择错误。硬盘传输模式分两种设置:现在新的笔记本都是用SATA接口硬盘,但硬盘传输方式有两种设置:一种是SATA模式(AHCI、增强模式);另一种是IDE(ATA、兼容模式)。由于我们的u盘没有集成SATA控制器驱动,所以安装过程中会找不到硬盘。而如果我们在BIOS中把硬盘设置为兼容模式(IDE模式)就可以安装了。进到BIOS后,选择Main下的IDE Configuration Menu,在Onboard IDE Operate Mode下面可以选择两种IDE操作模式:兼容模式和增强模式(Compatible Mode和Enhanced Mode)。其中兼容模式Compatible Mode。有些电脑bios设置可能不一样,会在Advanced菜单下的SATA Configuration(硬盘配置)选择菜单中我们选择IDE兼容模式,按F10保存即可。

假冒小马激活(OEM10)导致主页被篡改到2345解决办法

将下面几个文件进行改名,修改之前可以看下文件的时间和签名:

C:\Windows\System32\drivers\UMDF\jihuo.dll
C:\Windows\System32\drivers\LHPLKernel.sys
C:\Windows\System32\LHPLKC.dat
C:\Windows\System32\drivers\surak.sys

修改完后重启电脑即可,假冒小马激活主要是通过生成的这几个文件进行修改你的主页,如果不删除这几个文件,锁定主页或者修改注册表方法都会被修改回2345的。