δεν δινεις πολλες πληροφοριες, οπως απο που θελεις να κλεινεις το παραθυρο...
αν θελεις να το κλεισεις μεσα απο μια windows form κανεις τα εξης
1) αρχιζεις στο Visual studio ενα windows application (ή στο visual basic 2005 express)
2) Βαλε ενα button και κανε διπλο κλικ στο button
3) στο code window σβησε τα παντα
4) κανε Paste το παρακατω
5) εδω με window APIS(προσοχη!!!τα declarations εχουν αλλαξει απο το windows 32 API στα .net languages, οπως c#,vb.net(πρεπει καποιος να κανεις αλλαγες στα API Declaration και στα Types-εδω εγω εχω βαλει τα σωστα) ) και vb.net κλεινω ενα calculator-Αριθμομηχανη παραθυρο
βρισκω το handle του παραθυρου(με την findwindow) και μετα με το postmessage στελνω ενα close messgae
το μονο που εχεις να κανεις ειναι να βρεις το Handle του παραθυρου που θελεις να κλεισεις...
για να το βρεις, το handle καθε παραθυρου, καλο ειναι να κατεβασεις το winspector http://www.windows-spy.com/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
Public Class Form1 ' Get a handle to an application window.
Declare Auto Function FindWindow Lib "USER32.DLL" ( _ ByVal lpClassName As String, _ ByVal lpWindowName As String) As IntPtr
Private Declare Auto Function PostMessage Lib "user32" ( _ ByVal hWnd As IntPtr, _ ByVal Msg As Integer, _ ByVal wParam As Integer, _ ByVal lParam As IntPtr) As Boolean Private Const WM_CLOSE As System.Int32 = &H10
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' Get a handle to the Calculator application. The window class Dim calculatorHandle As IntPtr = FindWindow("SciCalc", "Αριθμομηχανή")
' just check that th window is open
If calculatorHandle = IntPtr.Zero Then MsgBox("Calculator is not running.") Return End If
PostMessage(calculatorHandle, WM_CLOSE, IntPtr.Zero, IntPtr.Zero) End Sub End Class |
Νικόλαος Καντζέλης
BSc, MSc, MCAS, MCPD, MCITP, MCTS,MCP, MCT