1定义一个模块, 内容为:
Option Explicit
Public Declare Function GetNextWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wFlag As Long) As Long
Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Public Declare Function FindWindowa Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function GetForegroundWindow Lib "user32" () As Long
2 给窗口加一个按钮, 在按钮的click事件里写以下内容:
Option Explicit
Private Sub Command1_Click()
Dim hwnd As Long
hwnd = GetForegroundWindow ' FindWindowa("Notepad", "新建 文本文档txt - 记事本")
Dim str1 As String, len1 As Long
str1 = Space(255) '定义接收字串
GetWindowText hwnd, str1, 1024
Do While hwnd <> 0
hwnd = GetNextWindow(hwnd, 2) '只有2才表示找下一个窗口
len1 = GetWindowText(hwnd, str1, Len(str1))
If (InStr(1, str1, "记事", 1) > 0) Then
MsgBox "你要的窗口找到了, 它是:" + str1
Exit Sub '这一句看情况修改
End If
Loop
MsgBox "很遣憾, 没有你要找的窗口"
End Sub
3 测试, 一定会通过
每个问题只有对、错2种情况的话,每个问题相当于1个bit。
10个问题就是10个bit
循环从0到0b11111 11111,逐个打印数字
即从0到1023循环
for(int i=0;i<1024;i++){
Systemoutprintln(i); //每个i保留10个bit,这10个bit的每个bit就代表每个问题的对错
}
比如
1000这个值,二进制为1111101000
可以理解成“对对对对对错对错错错”
0理解成00000 00000,代表全错
1023理解成11111 11111代表全对
从0到1023就是所有的可能
这是最高效节省的表示法。
声明一个方向的枚举,包含四个枚举值: 东/西/南/北
Swift 的枚举成员在被创建时本身就是完备的值,这些值的类型是已经明确定义好的 Direction 类型 不会像 Objective-C 一样被赋予一个默认的整型值。在上面的 Direction 例子中,east、west 、north、south不会被隐式地赋值为 0,1,2 和 3。
Swift 中的枚举更加灵活,不必给每一个枚举成员提供一个值。如果给枚举成员提供一个值(称为原始值),则该值的类型可以是:字符串、字符、任意的整数值或浮点类型。
Swift的枚举类型提供了一个叫原始值(RawValues)的实现,它为枚举项提供了一个默认值,这个默认值在编译期间就是确定的。
通过原值值获取的枚举项是可选类型的,所以需要用if let 做一下判断。
未指定枚举值类型
隐式原始值
隐式原始值下枚举项使用系统的分配值:
显式原始值
隐式 + 显式原始值
这里使用了属性观察者,Swift里面的枚举更像一个对象,因此可以很方便的使用属性观察者对枚举值进行监听。
在 Swift 中,还可以定义这样的枚举类型,它的每一个枚举项都有一个附加信息,来扩充这个枚举项的信息表示,这又叫做关联值。
一定要学会使用关联值,这一点很重要。具体的使用后面的第九节会细说
通常情况下枚举是很容易进行相等判断的。一旦为枚举增加了关联值,Swift就没法正确的比较了,需要自己对该枚举实现 == 运算符。
借助 Comparable 协议,来实现枚举的比较。
遵守 CaseIterable 协议的swift枚举是可以遍历的,通过allCases获取所有的枚举成员
app里面的接口地址,如果都放一起,命名或者寻找都不方便,可以用枚举的嵌套来设计。可以分散在多个文件中,方便维护和管理。
用枚举来管理系统里面的常量是一个不错的选择。
枚举中不能使用存储属性,但是可以使用计算属性,计算属性的内容是在枚举值或者枚举关联值中得到的。
在这里,可以认为枚举是一个类,introduced是一个成员方法,AppleDeivceiPhone 就是一个AppleDeivce的实例,case们是它的属性。introduced里面的switch self,其实就是遍历这个匿名属性的所有场景,如iPad,iPhone等,然后根据不同的场景返回不同的值。
可以做枚举的自定义构造方法。
系统的打印协议
让枚举遵守这个协议
枚举可以进行扩展。可以将枚举中的case与method/protocol分隔开,阅读者可以快速消化枚举的内容。
设计一个网络类下的错误信息的处理功能。
在项目中经常使用 UserDefaults 来存储一下简单的用户信息。但是对 Key 的维护不会很方便。而且会想不起来。用枚举+结构体就能很好的解决这个问题。
这么设计APP的存储模块,是不是更有层级感,更加方便使用呢?
递归枚举是拥有另一个枚举作为枚举成员关联值的枚举。当编译器 *** 作递归枚举时必须插入间接寻址层。可以在声明枚举成员之前使用 indirect关键字来明确它是递归的。 也可以声明在整个枚举前,让所有的枚举成员都是递归的。
在SQL中,枚举值是指一组有限的值,它们可以用来查询数据库中的特定数据。例如,如果您想要查询某个国家的所有城市,您可以使用枚举值来查询该国家的所有城市。您可以使用SELECT语句来查询枚举值,该语句的语法如下:SELECT FROM table_name WHERE column_name IN (value1, value2, value3, );其中,table_name是您要查询的表名,column_name是您要查询的列名,value1、value2、value3等是您要查询的枚举值。例如,如果您想要查询某个国家的所有城市,您可以使用以下SELECT语句:SELECT FROM cities WHERE country IN ('China', 'India', 'USA');这样,您就可以查询到指定国家的所有城市。
以上就是关于VB中如何使用GetNextWindow函数枚举所有窗口全部的内容,包括:VB中如何使用GetNextWindow函数枚举所有窗口、java怎么遍历一个枚举数组的所有集合、Swift-细说枚举(Enum)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)