在delphi如何获得当前活动窗口在名称,最后36分了,在线等。 ( 积分: 36 )

  • 主题发起人 主题发起人 darlingpeng
  • 开始时间 开始时间
D

darlingpeng

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在DELPHI 中获得当前活动窗口的名称,例如:ie正在打开google,获得http://www.google.com/intl/zh-CN/
电脑中一个文件正在打开操作,D:/重庆水泵厂/Data
 
IE打开google的窗口标题是
Google - Microsoft Internet Explorer

你要得到 http://www.google.com/intl/zh-CN/

则是IE的一个子窗口标题
 
//获得窗口文本
//hWnd是你想要获得窗口的句柄,可用GetForegroundWindow来获得
//子窗口就要传子窗口的句柄
function GetWndText(hWnd: HWND): String;
Var
Ret:LongInt;
mText:PChar;
Buf:Integer;
begin
Ret:=SendMessage(hWnd,WM_GETTEXTLENGTH,0,0)+1;
GetMem(mText,Ret);
try
Buf:=LongInt(mText);
SendMessage(hWnd,WM_GETTEXT,Ret,Buf);
Result:=StrPas(mText);
finally
FreeMem(mText,Ret);
end;
end;
 
to 暗夜中独舞,
我按照你的方法只获得了当前活动窗口的capiton ,不能获得当前活动窗口的路径名称啊,该怎么获得当前活动窗口的路径名称
 
路徑名?窗口有路徑名嗎?只有窗體文件或工程文件吧!
 
窗体没有路径名吧 我想这是你要的GetModuleFileName
var
m_sProcessName:array[0..255] of char;
GetModuleFileName(h, m_sProcessName, Sizeof(m_sProcessName));
 
好的,我看一下
 
The GetModuleFileName function retrieves the full path and filename for the executable file containing the specified module.

注意:If a module is loaded in two processes, its module filename in one process may differ in case from its module filename in the other process.
 
to 暗夜中独舞
我用了你的方法不行啊,我确实是要路径名,任何一个在运行的程序都是在电脑上的,必定会有一个路径名啊
 
应该是应用程序的路径名吧
窗口所属的那个应用程序的路径名
 
to lisongmagic,
你有什么好的方法吗
 
1)得到进程的PID
/ / 枚举正在运行的用户进程(API 函数不能
枚举系统进程)
BOOL EnumProcesses(DWORD * lpidProcess,
DWORD cb,DWORD * cbNeeded );
/ / 打开进程
HANDLE OpenProcess(DWORD dwDesiredAccess,
BOOL bInheritHandle,DWORD dwProcessId);
/ / 枚举进程的模块
BOOL EnumProcessModules( HANDLE hProcess,
HMODULE * lphModule,DWORD cb,LPDWORD
lpcbNeeded);
/ / 得到模块的执行路径
DWORD GetModuleBaseName(HANDLE hProcess,
HMODULE hModule,LPTSTR lpBaseName,
DWORD nSize );
 
to暗夜中独舞,
对,是这个意思
to VasonChen,
我看下,谢谢了
 
欢迎大家讨论这个问题
 
不知道哪位大哥有没有好的办法
 
BHO可以获得资源管理器和IE的浏览的路径或者URL
 
有没有具体的代码或者例子啊
 
顶下,别沉了
 
不知道哪位大侠有具体实现的代码,帮帮哥们了
 
to 暗夜中独舞,
我用了你的方法,hWnd是想要获得窗口的句柄,可用GetForegroundWindow来获得后,能不能由 hWnd获得当前活动窗口的地址栏信息,你那个函数的获得当前活动窗口的文本信息
 
后退
顶部