资源管理器的路径寻找

  1. xp
    #include <windows.h>
    #include <stdio.h>
     
    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;
    }
    

     

关于GetWindowText为什么不可以用:

https://my.oschina.net/WinkJie/blog/3053583

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.

 Center

 

2.windows 7

#include <windows.h>
#include <stdio.h>
 
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;
}
 

Center

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

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

SouthEast

测试:

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

#include <windows.h>
#include <stdio.h>
#include <locale.h>
 
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;
}
 

Center

利用好wmic命令

E:\MyDocument\Desktop>wmic process /?

PROCESS - Process management.

HINT: BNF for Alias usage.
(<alias> [WMIObject] | <alias> [<path where>] | [<alias>] <path where>) [<verb c
lause>].

USAGE:

PROCESS ASSOC [<format specifier>]
PROCESS CALL <method name> [<actual param list>]
PROCESS CREATE <assign list>
PROCESS DELETE
PROCESS GET [<property list>] [<get switches>]
PROCESS LIST [<list format>] [<list switches>]

wmic process where caption="notepad.exe" get commandline /value
wmic process where name="notepad.exe" get executablepath

 

转载于:https://my.oschina.net/WinkJie/blog/3053580

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值