我正在整理Visual Basic Express 2010中的一个小程序,其中一部分是延迟截屏。
我已经有了主要的代码工作,我已经使用System.Threading.Thread.CurrentThread.Sleep(5000)进行了屏幕截图的Visual Basic延迟,但我正在寻找的是一种直接绘制的方法到屏幕剩余的秒数。
您知道如何在Windows中,在“设置”下的“显示属性”中,当您单击“识别”时,每台显示器上都会显示一个巨大的数字?
我正在尝试重新创建,数字倒计时直到拍摄屏幕截图,为用户提供充足的通知,让他们所需的应用程序成为焦点进行屏幕截图。
有可能这样做吗?或者它是否需要大量的编码?
非常感谢您提供的任何帮助
答案 0 :(得分:1)
在Label
中创建Form
控件并使用以下内容使其透明:
Me.TransparencyKey = Color.Gray ' or any other color.
Me.BackColor = TransparencyKey
Me.FormBorderStyle = FormBorderStyle.None
会做出这样的事情:
为了让您的窗口对鼠标透明,PInvoke GetWindowLong
和SetWindowLong
:
<DllImport("user32.dll", SetLastError:=True)> _
Private Shared Function GetWindowLong( _
ByVal hWnd As IntPtr, _
ByVal nIndex As Integer) As Integer
End Function
<DllImport("user32.dll")> _
Private Shared Function SetWindowLong( _
ByVal hWnd As IntPtr, _
ByVal nIndex As Integer, _
ByVal dwNewLong As IntPtr) As Integer
End Function
然后在Form_Load()
添加以下内容:
Dim hwnd As IntPtr = Me.Handle
Dim extendedStyle As Integer = GetWindowLong(hwnd, GWL_EXSTYLE)
SetWindowLong(hwnd, GWL_EXSTYLE, extendedStyle Or WS_EX_TRANSPARENT)
常量:
Const WS_EX_TRANSPARENT As Integer = &H20
Const GWL_EXSTYLE As Integer = -20