2011-10-17 72 views
0

我正在把一個小程序放在Visual Basic Express 2010中,其中一部分就是延遲屏幕截圖。我已經得到了主要的代碼工作,我已經得到Visual Basic延遲採取與System.Threading.Thread.CurrentThread.Sleep(5000)的屏幕截圖,但我正在尋找的是一種繪製方式直接在屏幕上剩餘的秒數。直接在屏幕上繪製數字/圖形?

當您點擊識別您在每臺顯示器上顯示一個巨大的數字時,您知道如何在Windows中的設置下的顯示屬性中?

我試圖重新創建一個數字,直到屏幕截圖爲止,給用戶提供足夠的通知來獲取他們所需的應用程序,以便爲屏幕截圖聚焦。

可以做到這一點嗎?或者是否會需要大量編碼?

任何幫助,您可以提供

回答

1

非常感謝在Form創建Label控制,並使用類似以下內容,使其透明:

Me.TransparencyKey = Color.Gray ' or any other color. 
Me.BackColor = TransparencyKey 
Me.FormBorderStyle = FormBorderStyle.None 

會讓這樣的事情:

Screenshot


爲了讓你的窗口透明的鼠標,PInvoke的GetWindowLongSetWindowLong

<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 
+0

威爾說允許用戶移動「在」表單下的應用程序?或者表單會採取積極的焦點? – JordanW

+1

啓用Aero後,移動窗體下的窗口將不起作用。 –