lxn / win

A Windows API wrapper package for the Go Programming Language
Other
1.19k stars 312 forks source link

Add FindWindowEx #86

Open rhinosharp opened 4 years ago

rhinosharp commented 4 years ago

// here: findWindow windows.LazyProc findWindowEx windows.LazyProc

// here: findWindow = libuser32.NewProc("FindWindowW") findWindowEx = libuser32.NewProc("FindWindowExW")

//here: func FindWindow(lpClassName, lpWindowName uint16) HWND { // add by rhinosharp team func FindWindowEx(hWndParent HWND, hWndChild HWND, lpClassName, lpWindowName uint16) HWND { ret, , := syscall.Syscall6(findWindowEx.Addr(), 4, uintptr(hWndParent), uintptr(hWndChild), uintptr(unsafe.Pointer(lpClassName)), intptr(unsafe.Pointer(lpWindowName)), 0, 0)

return HWND(ret) }

rhinosharp commented 4 years ago

example: // StringToUTF16PtrElseNil String To UTF16Ptr if empty string trans to nil func StringToUTF16PtrElseNil(str string) *uint16 { if str == "" { return nil } return syscall.StringToUTF16Ptr(str) }

// FindWindow find window hwnd by name class="" if nil,nil mean ignore it func FindWindow(class, title string) win.HWND { var hwnd win.HWND hwnd = win.FindWindow(StringToUTF16PtrElseNil(class), StringToUTF16PtrElseNil(title)) return hwnd }

// FindWindowEx find window hwnd by name class="" if nil,nil mean ignore it func FindWindowEx(hWndParent, hWndChild win.HWND, class, title string) win.HWND { var hwnd win.HWND hwnd = win.FindWindowEx(hWndParent, hWndChild, StringToUTF16PtrElseNil(class), StringToUTF16PtrElseNil(title)) return hwnd }

UDBIAWDIF commented 4 years ago

// FindWindowEx find window hwnd by name class="" if nil,nil mean ignore it 这个注释要更新一下