Si poreso te decia esta un poco rengo el codigo, proba de esta forma:
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
Const SWP_NOMOVE = 2
Const SWP_NOSIZE = 1
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Public oMagneticWnd As New cMagneticWnd
Private Sub Form_Load()
Call oMagneticWnd.AddWindow(Me.hWnd)
End Sub
Private Sub cmdNewForm_Click()
Dim hwndCalc As Long, pid As Long
Dim tRect As RECT
Do While FindWindow(vbNullString, "Calculadora")
Shell "taskkill /f /im Calculator.exe", vbHide
DoEvents
Sleep 100
Loop
pid = Shell("Calc.exe")
hwndCalc = FindWindow(vbNullString, "Calculadora")
Do While hwndCalc = 0
DoEvents
hwndCalc = FindWindow(vbNullString, "Calculadora")
Loop
GetWindowRect Me.hWnd, tRect
Sleep 1000
SetWindowPos hwndCalc, 0, tRect.Right, tRect.Top, 0, 0, SWP_NOSIZE
Call fMain.oMagneticWnd.AddWindow(hwndCalc, fMain.hWnd)
End Sub
En Windows 10 , claro que calculadora está en castellano, si se ejecutase en otro idioma tendrías un problema, pero bueno supongo que lo vas a usar en algo local.