【VB】任意窗口置顶

合集下载

vb setwindowlong 用法-概述说明以及解释

vb setwindowlong 用法-概述说明以及解释

vb setwindowlong 用法-概述说明以及解释1.引言1.1 概述在编写VB(Visual Basic)程序时,经常需要与窗口进行交互,获取或修改窗口的属性。

其中一个常用的方法是使用SetWindowLong 函数来获取或修改窗口的扩展样式(extended styles)和用户数据(user data)。

SetWindowLong 函数允许程序员在运行时动态地修改窗口类的属性,比如更改窗口的风格、设置用户数据等。

这为程序的界面设计和功能实现提供了更多的灵活性和扩展性。

本文将详细介绍VB 中SetWindowLong 函数的用法,包括概述、用法示例和实际应用,帮助读者更好地理解和应用该函数。

1.2 文章结构本文主要分为三部分,即引言、正文和结论。

在引言部分,将介绍该文章的概述、结构和目的,为读者提供全面的了解。

在正文部分,将详细介绍vb setwindowlong的概述、用法示例和实际应用。

通过实例展示vb setwindowlong在实际操作中的具体用法,帮助读者更好地理解和掌握该功能。

在结论部分,将对vb setwindowlong的用法进行总结,分析其优缺点,并展望其未来发展方向,为读者提供更深入的思考和参考。

1.3 目的本文旨在介绍vb setwindowlong的用法,帮助读者更好地理解该函数的功能和操作方式。

通过详细讲解vb setwindowlong的概述、用法示例和实际应用,读者可以掌握如何在vb编程中正确地使用该函数,并了解其在实际项目中的应用场景。

同时,本文还将对vb setwindowlong的优缺点进行分析,为读者提供更全面的认识。

最后,展望vb setwindowlong的未来发展,为读者提供一些关于该函数可能的发展方向和趋势的思考。

通过本文的阅读,读者可以加深对vb编程技术的理解,提高自己在项目开发中的实际能力。

2.正文2.1 vb setwindowlong 概述在VB(Visual Basic)编程中,SetWindowLong函数是一种用于设置窗口长整型值的函数。

VB调用系统函数将窗体置前

VB调用系统函数将窗体置前

SetWindowPos函数原型BOOL SetWindowPos(HWND hWnd,HWND hWndlnsertAfter,int X,int Y,int cx,int cy,UNIT.Flags);函数功能该函数改变一个子窗口,弹出式窗口式顶层窗口的尺寸,位置和Z序。

子窗口,弹出式窗口,及顶层窗口根据它们在屏幕上出现的顺序排序、顶层窗口设置的级别最高,并且被设置为Z序的第一个窗口。

参数hWnd:窗口句柄。

hWndlnsertAfter:在z序中的位于被置位的窗口前的窗口句柄。

该参数必须为一个窗口句柄,或下列值之一:HWND_BOTTOM:将窗口置于Z序的底部。

如果参数hWnd标识了一个顶层窗口,则窗口失去顶级位置,并且被置在其他窗口的底部。

HWND_NOTOPMOST:将窗口置于所有非顶层窗口之上(即在所有顶层窗口之后)。

如果窗口已经是非顶层窗口则该标志不起作用。

HWND_TOP:将窗口置于Z序的顶部。

HWND_TOPMOST:将窗口置于所有非顶层窗口之上。

即使窗口未被激活窗口也将保持顶级位置。

查看该参数的使用方法,请看说明部分。

x:以客户坐标指定窗口新位置的左边界。

Y:以客户坐标指定窗口新位置的顶边界。

cx:以像素指定窗口的新的宽度。

cy:以像素指定窗口的新的高度。

uFlags:窗口尺寸和定位的标志。

该参数可以是下列值的组合:SWP_ASNCWINDOWPOS:如果调用进程不拥有窗口,系统会向拥有窗口的线程发出需求。

这就防止调用线程在其他线程处理需求的时候发生死锁。

SWP_DEFERERASE:防止产生WM_SYNCPAINT消息。

SWP_DRAWFRAME:在窗口周围画一个边框(定义在窗口类描述中)。

SWP_FRAMECHANGED:给窗口发送WM_NCCALCSIZE消息,即使窗口尺寸没有改变也会发送该消息。

如果未指定这个标志,只有在改变了窗口尺寸时才发送WM_NCCALCSIZE。

【VB】任意窗口置顶

【VB】任意窗口置顶

运行程序后,按下 Ctrl + Alt + Shift + T 使当前窗口置顶按下 Ctrl + Alt + Shift + C 使当前窗口[color=Blue]取消[/color]置顶按下 Ctrl + Alt + Shift + E 退出程序图片中的计算器被置顶。

'窗体代码Option ExplicitPrivate Const MOD_CONTROL = &H2Private Const MOD_ALT = &H1Private Const MOD_SHIFT = &H4Private Declare Function RegisterHotKey Lib "user32" (ByVal hwnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As LongPrivate Declare Function UnregisterHotKey Lib "user32" (ByVal hwnd As Long, ByVal id As Long) As LongPrivate Sub Form_Load()Me.Visible = FalseSetWndProc Me.hwnd, TrueRegisterHotKey Me.hwnd, 2222, MOD_CONTROL Or MOD_ALT Or MOD_SHIFT, vbKeyTRegisterHotKey Me.hwnd, 2223, MOD_CONTROL Or MOD_ALT Or MOD_SHIFT, vbKeyCRegisterHotKey Me.hwnd, 2224, MOD_CONTROL Or MOD_ALT Or MOD_SHIFT, vbKeyE End SubPrivate Sub Form_Unload(Cancel As Integer)UnregisterHotKey Me.hwnd, 2224UnregisterHotKey Me.hwnd, 2223UnregisterHotKey Me.hwnd, 2222SetWndProc Me.hwnd, FalseEnd Sub'模块代码Option ExplicitPrivate Const WM_HOTKEY = &H312Private Const GWL_WNDPROC = (-4)Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As LongPrivate Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPrivate Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As LongPrivate prevWndProc As LongPrivate Declare Function GetForegroundWindow Lib "user32" () As LongPrivate Const HWND_TOPMOST = -1Private Const HWND_NOTOPMOST = -2Private Const SWP_NOMOVE = &H2Private Const SWP_NOSIZE = &H1Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As LongPublic Function SetWndProc(ByVal hwnd As Long, ByVal NewWndProc As Boolean) As Long If NewWndProc ThenprevWndProc = GetWindowLong(hwnd, GWL_WNDPROC)SetWndProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WndProc)ElseSetWndProc = SetWindowLong(hwnd, GWL_WNDPROC, prevWndProc)End IfEnd FunctionPrivate Function WndProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As LongIf Msg = WM_HOTKEY ThenSelect Case wParamCase 2222SetWindowPos GetForegroundWindow, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZECase 2223SetWindowPos GetForegroundWindow, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZECase 2224Unload Form1End SelectExit FunctionEnd IfWndProc = CallWindowProc(prevWndProc, hwnd, Msg, wParam, lParam)End Function'另类窗口置顶方法'用APIDeclare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As LongPublic Const HWND_TOPMOST = -1Public Const SWP_NOMOVE = &H2Public Const SWP_NOSIZE = &H1Public Const SWP_NOZORDER = &H8'将下面的子程序放到模块中Public Sub SetFormTopmost(TheForm As Form)SetWindowPos TheForm.hwnd, HWND_TOPMOST, 0, 0, 0, 0, _SWP_NOZORDER + SWP_NOMOVE + SWP_NOSIZEEnd Sub'最后,通过调用该子程序设置你想要放置的窗体。

【VB】任意窗口置顶

【VB】任意窗口置顶

运行程序后,按下 Ctrl + Alt + Shift + T 使当前窗口置顶按下 Ctrl + Alt + Shift + C 使当前窗口[color=Blue]取消[/color]置顶按下 Ctrl + Alt + Shift + E 退出程序图片中的计算器被置顶。

'窗体代码Option ExplicitPrivate Const MOD_CONTROL = &H2Private Const MOD_ALT = &H1Private Const MOD_SHIFT = &H4Private Declare Function RegisterHotKey Lib "user32" (ByVal hwnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As LongPrivate Declare Function UnregisterHotKey Lib "user32" (ByVal hwnd As Long, ByVal id As Long) As LongPrivate Sub Form_Load()Me.Visible = FalseSetWndProc Me.hwnd, TrueRegisterHotKey Me.hwnd, 2222, MOD_CONTROL Or MOD_ALT Or MOD_SHIFT, vbKeyTRegisterHotKey Me.hwnd, 2223, MOD_CONTROL Or MOD_ALT Or MOD_SHIFT, vbKeyCRegisterHotKey Me.hwnd, 2224, MOD_CONTROL Or MOD_ALT Or MOD_SHIFT, vbKeyE End SubPrivate Sub Form_Unload(Cancel As Integer)UnregisterHotKey Me.hwnd, 2224UnregisterHotKey Me.hwnd, 2223UnregisterHotKey Me.hwnd, 2222SetWndProc Me.hwnd, FalseEnd Sub'模块代码Option ExplicitPrivate Const WM_HOTKEY = &H312Private Const GWL_WNDPROC = (-4)Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As LongPrivate Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPrivate Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As LongPrivate prevWndProc As LongPrivate Declare Function GetForegroundWindow Lib "user32" () As LongPrivate Const HWND_TOPMOST = -1Private Const HWND_NOTOPMOST = -2Private Const SWP_NOMOVE = &H2Private Const SWP_NOSIZE = &H1Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As LongPublic Function SetWndProc(ByVal hwnd As Long, ByVal NewWndProc As Boolean) As Long If NewWndProc ThenprevWndProc = GetWindowLong(hwnd, GWL_WNDPROC)SetWndProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WndProc)ElseSetWndProc = SetWindowLong(hwnd, GWL_WNDPROC, prevWndProc)End IfEnd FunctionPrivate Function WndProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As LongIf Msg = WM_HOTKEY ThenSelect Case wParamCase 2222SetWindowPos GetForegroundWindow, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZECase 2223SetWindowPos GetForegroundWindow, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZECase 2224Unload Form1End SelectExit FunctionEnd IfWndProc = CallWindowProc(prevWndProc, hwnd, Msg, wParam, lParam)End Function'另类窗口置顶方法'用APIDeclare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As LongPublic Const HWND_TOPMOST = -1Public Const SWP_NOMOVE = &H2Public Const SWP_NOSIZE = &H1Public Const SWP_NOZORDER = &H8'将下面的子程序放到模块中Public Sub SetFormTopmost(TheForm As Form)SetWindowPos TheForm.hwnd, HWND_TOPMOST, 0, 0, 0, 0, _SWP_NOZORDER + SWP_NOMOVE + SWP_NOSIZEEnd Sub'最后,通过调用该子程序设置你想要放置的窗体。

vb api函数使用手册

vb api函数使用手册

vb api函数使用手册一、简介VB(Visual Basic)是一种基于事件驱动的编程语言,广泛应用于Windows操作系统上的应用程序开发。

VB提供了强大的API (Application Programming Interface)函数库,可以用于访问操作系统的各种功能和资源。

本文将介绍一些常用的VB API函数及其使用方法。

二、API函数分类VB API函数可以分为以下几类:1.窗口和控件操作这类API函数可以用于创建、操纵和管理窗口和控件,以及处理窗口消息和事件。

- CreateWindowEx:创建一个具有扩展样式的窗口。

- SetWindowText:设置窗口标题文字。

- ShowWindow:显示或隐藏一个窗口。

- SendMessage:向窗口发送消息。

- GetWindowRect:获取窗口的客户区矩形。

2.文件和目录操作这类API函数可以用于访问、读写和管理文件和目录。

- CreateFile:创建或打开一个文件。

- ReadFile:从文件读取数据。

- WriteFile:将数据写入到文件。

- FindFirstFile/FindNextFile:查找文件。

- CreateDirectory:创建一个目录。

3.系统和进程操作这类API函数可以用于访问和管理操作系统和进程的信息。

- GetTickCount:获取系统启动后的毫秒数。

- GetSystemInfo:获取系统的硬件和配置信息。

- CreateProcess:创建一个新的进程。

- TerminateProcess:终止一个进程。

- EnumProcesses:枚举所有正在运行的进程。

4.网络通信这类API函数可以用于实现网络通信功能,如创建、连接和通信等。

- socket:创建一个套接字用于网络通信。

- bind:将套接字与一个本地地址绑定。

- connect:连接到一个远程地址。

- send/recv:发送和接收数据。

怎么让窗口置顶

怎么让窗口置顶

怎么让窗口置顶
在浏览网页的时候又要聊天,网页是全屏的,缩小看网页有不舒服,回复消息也不方便,想让聊天窗口置顶,免得来回切换,怎么让窗口置顶呢?下边简单教一下。

打开浏览器,在搜索框中输入【窗口置顶】。

选择下载的位置,然后点击【下载】即可。

下载完后打开软件,界面是这样的,点击右边的【设定】。

然后设定窗口置顶的快捷键,任何按键都是可以的,也能设定组合快捷键。

设定完成后,按一下刚刚设定的快捷键,然后用鼠标点住【鼠标置顶】位置拖到需要置顶窗口的边框上面即可。

然后试着打开别的窗口试一下,要是没把设定置顶的窗口挡住,就说明窗口置顶成功了。

VB中把窗体置顶和取消置顶代码

VB中把窗体置顶和取消置顶代码
Dim bTopMost As Boolean
Private Sub Command1_Click()
If bTopMost = False Then
SetWindowPos Me.hWnd, HWND_TOPMOST, Me.Left, Me.Top, Me.Width, Me.Height, FLAGS
If fUnsubclassing Then
WinPropBag_ProcAddress hWndTarget, True, SetWindowLong(hWndTarget, GWL_WNDPROC, AddressOf MyWindowProc)
End Function
/article.asp?id=57
cy As Long
flags As Long
End Type
Public Const HWND_BOTTOM = &H1&
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
'删除属性
RemoveProp hwnd, "MY_WINPROP_PROCADDRESS"
End If
End If
End If
End Sub
Public Function MyWindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

【VB】任意窗口置顶

【VB】任意窗口置顶
Private Const GWL_WNDPROC = (-4)
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
SetWndProc Me.hwnd, True
RegisterHotKey Me.hwnd, 2222, MOD_CONTROL Or MOD_ALT Or MOD_SHIFT, vbKeyT
RegisterHotKey Me.hwnd, 2223, MOD_CONTROL Or MOD_ALT Or MOD_SHIFT, vbKeyC
Select Case wParam
Case 2222
SetWindowPos GetForegroundWindow, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Case 2223
SetWindowPos GetForegroundWindow, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
Case 2224

大材小用——高中信息技术会考复习中应用VB置顶窗口简析

大材小用——高中信息技术会考复习中应用VB置顶窗口简析

〇信息技术教学与研究大材小用高中信息技术会考复习中应用V B置顶窗口简析侯志秀(南京市栖霞中学,江苏南京210046)摘要:在高中信息技术复习过程中,用什么样的方式呈现复习任务非常重要,在我的复习教学过程中多采用V B置顶窗口 是呈现复习任务。

V B置顶窗口是用V B语言编写的一个小小应用程序,具有简单易实现,针对性强的自然优势。

本文从应用V B置顶窗口呈现任务出发,对其在高中信息技术复习中所起的作用和意义进行分析,这也是我个人教学过程中的一个小经验,容易使用而且能解决高中信息技术复习课中的一些问题。

关键词:V B置顶窗口;高中信息技术会考复习信息技术教学是一门实践性、操作性极强的学科,在新课的教学过程中教师一般会采用先演示后操作或者边演示边操作的方式,以确保大部分学生能跟上。

但在复习课过程中,因为是学过的内容,也根据会考测试要求,设置的任务都是需要综合操作能力的。

这样学生学习的任务和操作步骤提示就有比较长的表述。

如果只是教师口头表述这些任务和提示,学生在很短的时间内难以有效地理解任务要求和需要操作的环节,因为存在不明白的地方,导致学生在操作过程中会不断地问老师要做什么。

这样的课堂教学效率就会很低,教师也非常累,而且教师的精力没有花在有效的教学上,还有可能影响教学进度等。

有的老师可能用纸质稿把问题打印出来,这样浪费资源,还不方便后期的重复修改利用;也有老师把任务用W o r d或网页等形式的电子稿呈现出来,但会出现学生在操作过程中不停地切换界面来回顾任务,这 给学生的操作带来不便,而且会给学生造成混乱的感觉,经 常会不小心把窗口关闭等。

V B置顶窗口设置任务和提示可以很好解决这些问题。

例如W O R D内容的复习。

s织文化p组织文化是组织管理中最梭心和最本质的,通常,是指一种特殊的文化倾向。

它在组织的成长■■变革和发展的整个过程中形成,并随着组织的发展而不断丰富。

它在组织的长期发展过程中形成,是能把组织内吾啲全体成员紧密地结合在一起的价值观念、道德规級行为方式的总和。

置顶或居中快速定位重要窗口

置顶或居中快速定位重要窗口

置顶或居中快速定位重要窗口作者:金牛来源:《电脑爱好者》2020年第21期WindowTop(下载地址:https:///)是一款共享軟件,该软件提供30天全功能免费试用。

软件运行后,右击托盘图标,可以看到其所有控制命令(图1)。

软件最快速的用法是利用热键来控制。

开启多个窗口之后,只需按下A l t+Z组合键即可将当前窗口置顶。

我们还可以选择不设限的免费软件OnTopper(下载地址:https:///ontopper)。

软件运行后,当前所有运行中的窗口均显示在软件列表窗口中,当我们需要将其中的某个窗口置顶时,只需先选中该窗口条目,然后点击“Settop”按钮即可置顶。

若需解除置顶,点击“Unsettop”按钮即可(图2)。

如果需要指定置顶窗口的尺寸和位置,可在列表中选中要设定的窗口并点击Properties按钮,然后对窗口的尺寸(Size)和位置(Position)进行指定,最后点击Apply按钮完成设置(图3)。

通常情况下,程序窗口的位置并不固定。

如果希望程序启动时窗口总是位于屏幕中央,可使用WindowCenteringHelper软件(下载地址:https://kamilszymborski.github.io/)。

运行该软件后,默认打开的窗口将自动居中显示。

通过托盘图标菜单可打开软件设置面板,在其中用上部的滑块设置居中窗口的宽、高百分比。

除了自动居中外,软件默认在手动连按3次Shift键后,可让活动窗口居中。

我们还可以通过软件的设置窗口,自定义按下Shift键的次数及延时长短(图4)。

如果希望软件随系统启动,可以为其创建一个快捷方式,然后按下Win+R组合键打开“运行”对话框,执行“shell:startup”命令,打开Windows自启动目录,将快捷方式放入此目录中即可。

Excel在excel的vba中如何使userform窗口总在最前面?

Excel在excel的vba中如何使userform窗口总在最前面?
参数表
参数
类型及说明
lpClassName
String,指向包含了窗口类名的空中止(C语言)字串的指针;或设为零,表示接收任何类
lpWindowName
String,指向包含了窗口文本(或标签)的空中止(C语言)字串的指针;或设为零,表示接收任何窗口标题
用这个API函数来取得窗体的句柄在excel的vba中
UserForm1.Show 0'工作表可操作
UserForm1.Show 1'或UserForm1.Show 工作表不可操作.UserForm1.Show 0
说明
寻找窗口列表中第一个符合指定条件的顶级窗口(在vb里使用:FindWindow最常见的一个用途是获得ThunderRTMain类的隐藏窗口的句柄;该类是所有运行中vb执行程序的一部分。获得句柄后,可用api函数GetWindowText取得这个窗口的名称;该名也是应用程序的标题)
返回值
Long,找到窗口的句柄。如未找到相符窗口,则返回零。会设置GetLastError
寻找窗口列表中第一个符合指定条件的a中如何使userform窗口总在最前面?
FindWindow
VB声明
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

vb-窗口控制

vb-窗口控制

vb-窗⼝控制定义模块Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long'在窗⼝中建⽴⼀timer(时间控制器),然后在代码窗⼝输⼊如下代码:Private Sub Form_Load()Timer1.Interval = 500End Sub时间控制器的代码如下:Private Sub Timer1_Timer()Dim hwnd As Longhwnd = FindWindow(vbNullString, "计算器") '抓取"计算器"这个窗⼝名称.If (hwnd = 0) ThenIf MsgBox("你没有打开[计算器]程序!点击“确定”退出。

点“取消”继续。

", 49, "错误!") = 1 Then EndElseIf (hwnd <> 0) ThenMsgBox "你已经打开了[计算器]程序.点“确定”退出本程序", , "退出"EndEnd IfEnd Sub模拟键盘事件2.以下为模拟键盘事件.⽐如模拟"r"键.----------------------------------------------------------------------------------------------------------------------------'在模块中定义Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal Scan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)在窗⼝中建⽴⼀timer.时间间隔随意.只要不是0就可以了哦.呵呵.Private Sub Timer1_Timer()Call keybd_event(82, 0, 0, 0) '模拟按下"R"键End Sub快捷键例⼦3.以下为快捷键例⼦.⽐如按下"ctrl+A"就退出!'可以设置Form的KeyPreview属性为True,然后在Form_KeyDown事件中添加代码:Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = Asc("A") And Shift = vbCtrlMask Then unload me '如果ctrl+A键被按下就退出End Sub例⼆:在Form中加⼊Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vkey As Long) As IntegerPrivate Function MyHotKey(vKeyCode) As BooleanMyHotKey = (GetAsyncKeyState(vKeyCode) < 0)End Function'然后在循环中或Timer的Timer事件中检测:Private Sub Timer1_Timer()If MyHotKey(vbKeyA) And vbKeyControl Then 'ctrl+AEnd '关闭End If'其中vbkeyA是键盘″A″的常数,其他键可按F1查得。

VB中让窗体始终处于最前面

VB中让窗体始终处于最前面

我们先来看看SetWindowPos函数的定义和参数:使用API函数之前必须先在程序中声明如下:Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long其中各参数的意义如下:参数意义hwnd Long 欲定位的窗口hWndInsertAfter Long 窗口句柄。

在窗口列表中,窗口hwnd会置于这个窗口句柄的后面x,y Long 窗口新的x,y坐标cx,cy Long 指定新的窗口宽度和高度wFlags Long 包含了旗标的一个整数,是下列之一返回值Long 非零表示成功,零表示失败下面是部分wFlags参数和它们的意义:参数意义和使用方法SWP_DRAWFRAME 围绕窗口画一个框SWP_HIDEWINDOW 隐藏窗口SWP_NOACTIVATE 不激活窗口SWP_NOMOVE 保持当前位置(x和y设定将被忽略) amp;H2SWP_NOREDRAW 窗口不自动重画SWP_NOSIZE 保持当前大小(cx和cy会被忽略) amp;H1SWP_NOZORDER 保持窗口在列表的当前位置(hWndInsertAfter将被忽略)SWP_SHOWWINDOW 显示窗口amp;H40SWP_FRAMECHANGED 强迫一条WM_NCCALCSIZE消息进入窗口,即使窗口的大小没有改变函数的使用很简单,我们只须在Form_Load中加入如下语句即可:retValue = SetWindowPos(Me.hwnd, HWND_TOPMOST, Me.CurrentX, Me.CurrentY, 300, 300, SWP_SHOWWINDOW)这样窗体就能保持在所有窗体的前面了。

win10如何将某个应用程序的窗口置顶

win10如何将某个应用程序的窗口置顶

win10如何将某个应用程序的窗口置顶
导语:在Windows1015063版本中,部分“通用应用平台”(UniversalWindowsPlatform,简写为UWP)类型的应用,已经有了“置顶”的功能。

比如Win10自带的“电影和电视”应用,就可以“置顶”了。

以下是小编整理的有关电脑*作系统的知识,希望对您有所帮助。

1、按下Win+s组合键,搜索“电影”关键词,完美匹配“电影和电视”Windows应用,回车启动该应用。

2、在打开的“电影和电视”应用窗口中,点击打开一个保存视频的文件夹。

3、单击文件夹中的一个视频节目,启动播放该视频。

4、在视频播放窗口中,移动鼠标,窗口下方将会出现半透明的播放控制工具条,其中有一个按钮,移动鼠标到它上面,它会显示“以最小模式播放”的提示。

5、单击“以最小模式播放”按钮,“电影和电视”应用窗口将变成一种精简模式。

这时,再打开其他应用窗口,“电影和电视”应用窗口仍然在桌面的最顶层保持可见,也就是所谓的“置顶”。

6、移动鼠标到视频窗口上,窗口右下角会出现“退出最小模式”按钮,点击它,该窗口会退出“最小模式”状态,其“置顶”状态也随之消失。

在VB中利用API函数实现Always on Top

在VB中利用API函数实现Always on Top

在VB中利用API函数实现Always on Top
葛浩
【期刊名称】《滁州学院学报》
【年(卷),期】2002(004)004
【摘要】软件系统的某个窗体始终停留在屏幕的最上方,直到给予响应后才消失,是软件实现某种功能的必要的手段.本文讨论在Visual Basic(简称VB)编程环境下,API函数的使用方法,以及如何利用API中的SetWindowPos函数实现窗体始终处于屏幕最上层(Always on Top).
【总页数】3页(P97-99)
【作者】葛浩
【作者单位】滁州师范专科学校,物理系,安徽,滁州,239012
【正文语种】中文
【中图分类】TP3
【相关文献】
1.VB6.0中应用API函数实现PoWerpoint2000的链接 [J], 吴霞
2.利用API函数实现VB程序的抓屏功能 [J], 韩立
3.巧用Windows API函数实现特殊功能——API在VB中的应用 [J], 丛迎九
4.VB中利用API函数实现字型窗体 [J], 廖治凯
5.在VB中利用API函数实现媒体音频的播放 [J], 宁德琼; 胡天文
因版权原因,仅展示原文概要,查看原文内容请购买。

wps表格怎样将窗口置顶挺图文教程

wps表格怎样将窗口置顶挺图文教程

wps表格怎样将窗口置顶挺图文教程
wps是金山软件公司的一种办公软件,对日常办公起到了重要作用,那么大家对它的一些功能又有多少了解呢?对于新手来说还是有一定难度,怎么办?接下来店铺举例简单的例子告诉大家可以让wps(任何windows窗口)置顶,也就是显示在其它窗口前面的方法
wps表格窗口置顶的方法
先下载WinT op小工具,如果百度上不好找,可以在以下地址中下载
打开wintop和wps,最好并列,这样方便测试
方法一:把Wintop中的手型图标拖动到wps窗口区域,松开手后Wps就处于置顶状态了,当然第二次把手型图标拖过去时将取消置顶
方法二:保持Wintop处于打开状态
将焦点切换到wps窗口,或者任何您想让它置顶的窗口,然后按Ctrl+F8,该窗口就会置顶,当再次按Ctrl+F8时置顶状态会取消经测试,对于其它窗口,如浏览器,资源管理器,只要是win窗口都可以用这个方法实现,这就是wintop的强大之处
需要注意的是,当Wintop退出时,已经被置顶的窗口还会处理置顶状态。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SetWndProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WndProc)
Else
SetWndProc = SetWindowLong(hwnd, GWL_WNDPROC, prevWndProc)
End If
SetWindowPos TheForm.hwnd, HWND_TOPMOST, 0, 0, 0, 0, _
SWP_NOZORDER + SWP_NOMOVE + SWP_NOSIZE
End Sub
'最后,通过调用该子程序设置你想要放置的窗体。例如,你想将窗体frmMyForm放在最前面,代码如下:
'窗体代码
Option Explicit
Private Const MOD_CONTROMOD_ALT = &H1
Private Const MOD_SHIFT = &H4
Private Declare Function RegisterHotKey Lib "user32" (ByVal hwnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Public Function SetWndProc(ByVal hwnd As Long, ByVal NewWndProc As Boolean) As Long
If NewWndProc Then
prevWndProc = GetWindowLong(hwnd, GWL_WNDPROC)
Private prevWndProc As Long
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2
UnregisterHotKey Me.hwnd, 2223
UnregisterHotKey Me.hwnd, 2222
SetWndProc Me.hwnd, False
End Sub
'模块代码
Option Explicit
Private Const WM_HOTKEY = &H312
RegisterHotKey Me.hwnd, 2224, MOD_CONTROL Or MOD_ALT Or MOD_SHIFT, vbKeyE
End Sub
Private Sub Form_Unload(Cancel As Integer)
UnregisterHotKey Me.hwnd, 2224
End Function
Private Function WndProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If Msg = WM_HOTKEY Then
End Select
Exit Function
End If
WndProc = CallWindowProc(prevWndProc, hwnd, Msg, wParam, lParam)
End Function
'另类窗口置顶方法
ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)
Private Sub Command1_Click()
' 窗口置前
Dim myval
myval = SetWindowPos(form1.hwnd, -1, 0, 0, 0, 0, 3)
Case 2223
SetWindowPos GetForegroundWindow, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
Case 2224
Unload Form1
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Select Case wParam
Case 2222
SetWindowPos GetForegroundWindow, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
End Sub
Private Sub Command2_Click()
'窗口正常
Dim myval
myval = SetWindowPos(form1.hwnd, -2, 0, 0, 0, 0, 3)
End Sub
Private Sub Command3_Click()
'窗口置后
Private Const GWL_WNDPROC = (-4)
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Const HWND_TOPMOST = -1
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
Public Const SWP_NOZORDER = &H8
'将下面的子程序放到模块中
Public Sub SetFormTopmost(TheForm As Form)
Private Declare Function UnregisterHotKey Lib "user32" (ByVal hwnd As Long, ByVal id As Long) As Long
Private Sub Form_Load()
Me.Visible = False
【VB】任意窗口置顶.txt
运行程序后,
按下 Ctrl + Alt + Shift + T 使当前窗口置顶
按下 Ctrl + Alt + Shift + C 使当前窗口[color=Blue]取消[/color]置顶
按下 Ctrl + Alt + Shift + E 退出程序
图片中的计算器被置顶。
'用API
Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
SetFormTopmost frmMyForm
'具体介绍
完整代码如下:
'声明部分
Private Declare Function SetWindowPos& Lib "user32" (ByVal hwnd As Long, _
ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, _
Dim myval
myval = SetWindowPos(form1.hwnd, 1, 0, 0, 0, 0, 3)
End Sub
Private Sub Command4_Click()
End
End Sub
SetWndProc Me.hwnd, True
RegisterHotKey Me.hwnd, 2222, MOD_CONTROL Or MOD_ALT Or MOD_SHIFT, vbKeyT
相关文档
最新文档