博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
获取资源管理器路径
阅读量:3526 次
发布时间:2019-05-20

本文共 3372 字,大约阅读时间需要 11 分钟。

XP

#include 
#include
int main(){ TCHAR str[100] = TEXT("Hello World"); HWND hwnd = NULL; hwnd = FindWindowEx(NULL, NULL, TEXT("CabinetWClass"), NULL); hwnd = FindWindowEx(hwnd, NULL, TEXT("WorkerW"), NULL); hwnd = FindWindowEx(hwnd, NULL, TEXT("ReBarWindow32"), NULL); hwnd = FindWindowEx(hwnd, NULL, TEXT("ComboBoxEx32"), NULL); hwnd = FindWindowEx(hwnd, NULL, TEXT("ComboBox"), NULL); hwnd = FindWindowEx(hwnd, NULL, TEXT("Edit"), NULL); SendMessage(hwnd, WM_GETTEXT, 100, (LPARAM)str); //SendMessage(hwnd, WM_SETTEXT, 0, (LPARAM)str); //GetWindowText(hwnd, str, 100); //MessageBox(NULL, str, TEXT("Cap"), 0); wprintf(TEXT("%s\n"), str); return 0;}

关于为什么不可以用:

Copies the text of the specified window's title bar (if it has one) into a buffer. If the specified window is a control, the text of the control is copied. However, GetWindowText cannot retrieve the text of a control in another application.

WIN7

#include 
#include
int main(){ TCHAR str[100] = TEXT("Hello World"); HWND hwnd = NULL; hwnd = FindWindowEx(NULL, NULL, TEXT("CabinetWClass"), NULL); hwnd = FindWindowEx(hwnd, NULL, TEXT("WorkerW"), NULL); hwnd = FindWindowEx(hwnd, NULL, TEXT("ReBarWindow32"), NULL); hwnd = FindWindowEx(hwnd, NULL, TEXT("Address Band Root"), NULL); hwnd = FindWindowEx(hwnd, NULL, TEXT("msctls_progress32"), NULL); hwnd = FindWindowEx(hwnd, NULL, TEXT("ComboBoxEx32"), NULL); hwnd = FindWindowEx(hwnd, NULL, TEXT("ComboBox"), NULL); hwnd = FindWindowEx(hwnd, NULL, TEXT("Edit"), NULL); SendMessage(hwnd, WM_GETTEXT, 100, (LPARAM)str); //SendMessage(hwnd, WM_SETTEXT, 0, (LPARAM)str); MessageBox(NULL, str, TEXT("Cap"), 0); //wprintf(TEXT("%s\n"), str); return 0;}

上面这个还是比较鸡肋的:

需要点击下地址栏才会出现ComboBoxEx32->ComboBox->Edit

测试:

通过点击向下箭头,刷新路径显示

#include 
#include
#include
int main(){ TCHAR str[1024] = TEXT("Hello World"); HWND hwnd = NULL; HWND hToolbat; hwnd = FindWindowEx(NULL, NULL, TEXT("CabinetWClass"), NULL); hwnd = FindWindowEx(hwnd, NULL, TEXT("WorkerW"), NULL); hwnd = FindWindowEx(hwnd, NULL, TEXT("ReBarWindow32"), NULL); hwnd = FindWindowEx(hwnd, NULL, TEXT("Address Band Root"), NULL); hwnd = FindWindowEx(hwnd, NULL, TEXT("msctls_progress32"), NULL); hToolbat = FindWindowEx(hwnd, NULL, TEXT("ToolbarWindow32"), NULL); SendMessage(hToolbat, WM_LBUTTONDOWN, MK_LBUTTON, MAKELONG(0, 0)); SendMessage(hToolbat, WM_LBUTTONUP, MK_LBUTTON, MAKELONG(0, 0)); SendMessage(hToolbat, WM_LBUTTONDOWN, MK_LBUTTON, MAKELONG(0, 0)); SendMessage(hToolbat, WM_LBUTTONUP, MK_LBUTTON, MAKELONG(0, 0)); hwnd = FindWindowEx(hwnd, NULL, TEXT("ComboBoxEx32"), NULL); hwnd = FindWindowEx(hwnd, NULL, TEXT("ComboBox"), NULL); hwnd = FindWindowEx(hwnd, NULL, TEXT("Edit"), NULL); if(hwnd == NULL) { wprintf(L"%s\n", L"error"); return -1; } SendMessage(hwnd, WM_GETTEXT, 1024, (LPARAM)str); MessageBox(NULL, str, TEXT("Caption"), 0); return 0;}

利用好wmic命令

E:\MyDocument\Desktop>wmic process /?PROCESS - Process management.HINT: BNF for Alias usage.(
[WMIObject] |
[
] | [
]
) [
].USAGE:PROCESS ASSOC [
]PROCESS CALL
[
]PROCESS CREATE
PROCESS DELETEPROCESS GET [
] [
]PROCESS LIST [
] [
]
wmic process where caption="notepad.exe" get commandline /value
wmic process where name="notepad.exe" get executablepath

你可能感兴趣的文章