PDA

View Full Version : سوال: نمایش پنجره ای که قبلا هایدن شده است



Saman_12
شنبه 26 تیر 1389, 21:25 عصر
سلام.
یک سوال کوچیک داشتم که اگه لطف کنید و جواب منو بدهید خیلی ممنون میشم.
نگید جستوجو کن بعد تایپیک جدید بزن که هر کلمه ای در این باره به ذهنم رسید جستجوکردم ولی نتیجه ای که کارم را ره بیندازد در بر نداشت.


من یه برنامه دارم (کدشم خدمتتون میدهم) که وقتی شما کلید <Ctrl> را فشار می دهید هندل پنجره ای که موس روی اون قرار دارد را بدست آورده وسپس آن پنجره را هایدن می کند و با زدن کلید <Shift> باید پنجره را نشان دهد که مشکل من هم همین جا هست که نشان نمی دهد!

کد:


Public Class Form1

Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Integer, ByVal yPoint As Integer) As Integer
Private Declare Function GetCursorPos Lib "user32" (ByRef lpPoint As POINTAPI) As Integer

Private Structure POINTAPI
Dim x As Integer
Dim y As Integer
End Structure

Const SW_HIDE = 0
Const SW_MAXIMIZE = 3
Const SW_MINIMIZE = 6
Const SW_NORMAL = 1
Const SW_RESTORE = 9
Const SW_SHOW = 5

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

Dim iKey As Integer
Dim A
For iKey = 0 To 255
If GetAsyncKeyState(iKey) Then
A = Chr(iKey)
If A = Chr(162) Then
Dim b
Dim MP As POINTAPI
GetCursorPos(MP)
b = WindowFromPoint(MP.x, MP.y)
SaveSetting("My Info", "Info", "T_T_B", b)
ShowWindow(b, SW_HIDE)
End If
If A = Chr(160) Then
ShowWindow(GetSetting("My Info", "Info", "T_T_B"), SW_SHOW)
End If
End If
Next
End Sub

End Class


اگه لطف کنید بگید کجای این کد مشکل داره ممنون میشم!

vbworm
یک شنبه 27 تیر 1389, 02:29 صبح
چند خط از برنامت مشکل داشت دوست عزیز - تصحیحش کردم براتون :


Public Declare Function ShowWindow Lib "user32.dll" Alias "ShowWindow" (ByVal hwnd As Integer, ByVal nCmdShow As Integer) As Integer




If A = Chr(17) Then
Dim b
Dim MP As POINTAPI
GetCursorPos(MP)
b = WindowFromPoint(MP.x, MP.y)
SaveSetting("My Info", "Info", "T_T_B", b)
ShowWindow(b, SW_HIDE)
EndIf

If A = Chr(16) Then
ShowWindow(GetSetting("My Info", "Info", "T_T_B"), SW_RESTORE)
EndIf

Saman_12
یک شنبه 27 تیر 1389, 09:10 صبح
دوست عزیز vbworm دستت درد نکنه یک هفته ای بود که نمیدونستم چی کار باید بکنم به هر حال خیلی ممنونم.:تشویق: