smsm20062009 |
27-02-2014 06:37 AM |
كود مني ليك عشان انت اللي بشرتني بإن القسم اتعمل
حط ده في Class قديم او اعمل واحد جديد اسمه ControlWindow وغير كل اللي فيه بده
كود:
Imports System.Runtime.InteropServices
Public Class ControlWindow
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function ShowWindow(ByVal hwnd As IntPtr, ByVal nCmdShow As Integer) As Boolean
End Function
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function FindWindow( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As IntPtr
End Function
<DllImport("user32.dll", CharSet:=CharSet.Unicode, SetLastError:=True)> _
Private Shared Function DestroyWindow(hwnd As IntPtr) As Boolean
End Function
Public Shared Function ShowWindow(ByVal WindowName As String) As Boolean
Dim Handle As IntPtr
Handle = FindWindow(vbNullString, WindowName)
If Handle = IntPtr.Zero Then
Return False
End If
ShowWindow(Handle, 1)
Return Marshal.GetLastWin32Error().Equals(0)
End Function
Public Shared Function HideWindow(ByVal WindowName As String) As Boolean
Dim Handle As IntPtr
Handle = FindWindow(vbNullString, WindowName)
If Handle = IntPtr.Zero Then
Return False
End If
ShowWindow(Handle, 0)
Return Marshal.GetLastWin32Error().Equals(0)
End Function
Public Shared Function CloseWindow(ByVal WindowName As String) As Boolean
Dim Handle As IntPtr
Handle = FindWindow(vbNullString, WindowName)
If Handle = IntPtr.Zero Then
Return False
End If
DestroyWindow(Handle)
Return Marshal.GetLastWin32Error().Equals(0)
End Function
End Class
كل الأوامر بترجع Bool لو كان True يبقى الأمر نجح ولو كان False يبقى فشل ( الفشل مش من الكود لكن من الويندوز او ان البرنامج اللي انت بتعمل الأمر عليه محمي)
ولما تعوز مثلا تخفي الاله الحاسبة تعمل
كود:
Dim Result = ControlWindow.HideWindow("Calculator")
If Result Then
MessageBox.Show("تم بنجاح")
Else
MessageBox.Show("هناك خطأ")
End If
ونصيحة مني استعمل الـ#C
احسن ومريح ( أنا اساسا مبرمج #C مش VB.Net لكن اهو كله برمجة )
|