Premetto che uso Visual Basic 2005,o comunque .Net
Allora io ho un semplice form con un bottone,al click del bottone voglio che mi mostri una finestra di messaggio msgbox e muova il mouse sul pulsante ok del msgbox,un po' come succede in windows quando in 'pannello di controllo>mouse'si seleziona la casella di spunta "posiziona automaticamente sul pulsante predefinito in una finestra di dialogo".Posto il codice seguente,con cui ho tentato di farlo ma che mi ritorna errore
codice:Public Structure RECT Dim Left As Long Dim Top As Long Dim Right As Long Dim Bottom As Long End Structure Private Declare Function GetClientRect Lib "user32" Alias "GetClientRect" (ByVal hwnd As Integer, ByVal lpRect As RECT) As Integer Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Integer, ByVal hWnd2 As Integer, ByVal lpsz1 As String, ByVal lpsz2 As String) As Integer Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click MsgBox("ciao", MsgBoxStyle.OkOnly, "ciccio") Dim twnd, bwnd As Integer Dim pt As RECT twnd = FindWindow(vbNullString, "ciccio") bwnd = FindWindowEx(twnd, 0&, "BUTTON", "OK") GetClientRect(bwnd, pt) Windows.Forms.Cursor.Position = New Point(pt.Left + ((pt.Right - pt.Left) / 2), pt.Top + ((pt.Bottom - pt.Top) / 2)) End Sub
Perché non mi funzia?![]()
Mi da un errore sull'API GetClientRect,dicendo che sbilancia lo stack
Naturalmente sono aperto anche ad altre soluzioni,del tipo un modo alternativo di far posizionare il mouse sul pulsante predefinito.

Rispondi quotando