findwindow 的两个参数是输入参数,所以不能解决问题。
如果你在自己程序中获取标题,你可以用 MFC
CWnd::GetWindowText
void GetWindowText( CString& rString ) const;
或API
int GetWindowText( HWND hWnd, LPTSTR lpString, int nMaxCount );
hWnd 用 NULL 或 this 试试。
程序以外参考下面方法列出所有窗口的szClass,和 标题,
对比 你要得程序名,若等于 szClass,则选中标题。
// 编译时,别忘了链接User32lib
#include<iostream>
#include <Windowsh>
#include <iomanip>
using namespace std;
int iCount=0;
BOOL CALLBACK EnumWindowProc(HWND hWnd, LPARAM lParam)
{
TCHAR szClass[256]={0};
TCHAR szWindow[256]={0};
::GetWindowText(hWnd, szWindow, 255);
::GetClassName(hWnd, szClass, 255);
if ( ::IsWindow(hWnd) &&
::IsWindowVisible(hWnd) &&
(::GetWindowLong(hWnd, GWL_EXSTYLE)&WS_EX_TOOLWINDOW)!
=WS_EX_TOOLWINDOW &&
::GetWindowLong(hWnd, GWL_HWNDPARENT)==0 )
{
int i=strlen(szClass);
cout << "["<< szClass <<setw(15-strlen(szClass))<< "] "<< szWindow << endl;
iCount++;
}
return TRUE;
}
/ main User32lib/
int main(int argc, char argv[])
{
EnumWindows(EnumWindowProc, NULL);
cout<<"Find "<< iCount << " windows"<<endl;
return 0;
}
要自动的话直接超级模块里的取句柄(进程)即可
但有些东西没办法进行自动,准只能靠匹配下标或者根据窗口的类型信息来获取如标题,类名,或者窗口所对的那个进程是什么
我这里举两个关于怎么取窗口的例子,我个人推荐是不要什么自动的,要人工前期获取,并后期绝对的方式来获取到
方法1,取所有窗口列表()这个易语言自带有,然后根据取这个窗口所对应的进程进行判断即可取得
方法2,枚举所有关于某进程名的进程pid,然后再枚举进程内所有父级窗口然后逐一进行筛选(根据事先使用彗星小助手等工具取得下标或窗口类名)匹配,得到窗口结果即可
版本 2
DLL命令 _取窗口进程ID, 整数型, , "GetWindowThreadProcessId", , user32dll获取与指定窗口关联在一起的一个线程和进程标识符
参数 窗口句柄, 整数型, , hwnd,指定窗口句柄
参数 进程标识符, 整数型, 传址, lpdwProcessId,指定一个变量,用于装载拥有那个窗口的一个进程的标识符
调用SystemDiagnostics;
Process[] process = ProcessGetProcesses();
foreach(Process p in process)
{
ConsoleWriteLine(pMainWindowTitleToString());
}
ConsoleReadLine();
它是一个子窗口,没有标题,每次登陆时类名就变了,怎么得到它的窗口句柄呢?用Findwindow没用啊!
你是什么语言??VB还是C++?
给你个VB CODE :
Function GetQQpath()
Dim ps, s '获取QQ进程所存在的路径
s = "qqexe"
For Each ps In GetObject("winmgmts:\\\root\cimv2:win32_process")instances_ '循环进程
If UCase(psName) = UCase(s) Then
Form1Label1Caption = psexecutablepath
GoTo q
End If
Next
q:
End Function
这个可以用知道进程名就可以知道程序路径了,原理很简单。自己摸索、
(针对新手: 结果显示在label1上面。否则会出现缺少对象)
以上就是关于c 获取本身程序窗口的标题全部的内容,包括:c 获取本身程序窗口的标题、易语言如何取进程的窗口标题、易语言怎么窗口句柄取得进程名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)