• 资源管理器的路径寻找


    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
      "), 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.
    

     

    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
    "), str);
    	return 0;
    }
     
    

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

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

    测试:

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

    #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
    ", L"error");
    		return -1;
    	}
    	
    	SendMessage(hwnd, WM_GETTEXT, 1024, (LPARAM)str);
    	
    	MessageBox(NULL, str, TEXT("Caption"), 0);
    	return 0;
    }
     
    

    利用好wmic命令

    E:MyDocumentDesktop>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
    Copyright @WinkJie
  • 相关阅读:
    php笔记之数组
    php笔记之函数
    vue笔记之路由
    <QT>:使用QUdpSocket进行UDP通信
    Linux下用ssh在远程Xserver上显示图形界面
    <学习QT>在QListWidget中实现每个单元项显示文字在上图片在下
    const限定符以及顶层const和底层const的理解
    了解X window以及相关知识
    Linux下使用Eclipse C/C++生成创建并调用动态库(.so)
    Linux下搭载Xwindow(Xlib)开发环境
  • 原文地址:https://www.cnblogs.com/WinkJie/p/10917392.html
Copyright © 2020-2023  润新知