下面的代码可能是用C写的,我没学过C,看不懂。谁能帮我解释下或者翻译成c#,谢谢!
- C/C++ code
typedef struct tagWNDINFO ...{ DWORD dwProcessId; HWND hWnd; } WNDINFO, *LPWNDINFO; BOOL CALLBACK YourEnumProc(HWND hWnd,LPARAM lParam) ...{ DWORD dwProcessId; GetWindowThreadProcessId(hWnd, &dwProcessId); LPWNDINFO pInfo = (LPWNDINFO)lParam; if(dwProcessId == pInfo->dwProcessId) ...{ pInfo->hWnd = hWnd; return FALSE; } return TRUE; } HWND GetProcessMainWnd(DWORD dwProcessId) ...{ WNDINFO wi; wi.dwProcessId = dwProcessId; wi.hWnd = NULL; EnumWindows(YourEnumProc,(LPARAM)&wi); return wi.hWnd; }
------解决方案--------------------
这是根据进程ID查找该进程主窗口的程序,用c#实现很容易,.Net都封装好了。
------解决方案--------------------
c是编译性,效率要高,自己写struct,调用api可以实现