在windows API应用程序中(一个进程)获取一个MFC对话框(另一个进程)的句柄 诸大神请帮忙

在windows API应用程序中(一个进程)获取一个MFC对话框(另一个进程)的句柄 诸大神请帮忙,第1张

你是想把消息发给MFC 对话框主窗口,还是主窗口中的一个控件(比如该窗口中的一个按钮或都编辑框)?

首先,要确保你已经用findwindow,找到了该对话框的HWND;

然后用GetDlgItem得到你要控制的控件的HWND,然后再把消息发给这个控件。

The GetProcessHandleFromHwnd function retrieves a process handle from a window handle HANDLE WINAPI GetProcessHandleFromHwnd( HWND hwnd, ); 这个函数通过窗口句柄获得进程句柄。有了进程句柄,PID是不是就知道怎么获得了?什么?不知道?那我告诉你,GetProcessId可以通过进程句柄获得进程ID: DWORD WINAPI GetProcessId( __in HANDLE Process );

如何获取android 进程信息,有需要的朋友可以参考下。

有时候为了完成某些功能比如监测某些程序的运行情况,我们可以通过动态的获取android 进程信息:

1)首先我们定义下进程信息的model:

public class ProcessInfo {

private int pid; // 进程id

private int uid; // 进程所在的用户id

private int memSize; //进程占用的内存,kb

private String processName; // 进程名

public String pkgnameList[] ;//运行在进程里的对应的所有程序的包名

public int getPid() {

return thispid;

}

public void setPid(int pid) {

thispid = pid;

}

public int getUid() {

return thisuid;

}

public void setUid(int uid) {

thisuid = uid;

}

public int getMemSize() {

return thismemSize;

}

public void setMemSize(int memSize) {

thismemSize = memSize;

}

public String getProcessName() {

return thisprocessName;

}

public void setPocessName(String processName) {

thisprocessName = processName;

}

}

其次,我们通过android API 获取进程信息:

// 获得系统进程信息

private ArrayList<ProcessInfo> getRunningAppProcessInfo(){

ActivityManager mActivityManager = (ActivityManager) getSystemService(ContextACTIVITY_SERVICE);

ArrayList<ProcessInfo> processInfoList = new ArrayList<ProcessInfo>();

List<ActivityManagerRunningAppProcessInfo> appProcessList = mActivityManagergetRunningAppProcesses();

for (ActivityManagerRunningAppProcessInfo appProcessInfo : appProcessList) {

int pid = appProcessInfopid;

int uid = appProcessInfouid;

String processName = appProcessInfoprocessName;

int[] myMempid = new int[] { pid };

DebugMemoryInfo[] memoryInfo = mActivityManagergegetProcessMemoryInfo(myMempid);

//kb

int memSize = memoryInfo[0]dalvikPrivateDirty;

ProcessInfo processInfo = new ProcessInfo();

processInfosetPid(pid);

processInfosetUid(uid);

processInfosetMemSize(memSize);

processInfosetPocessName(processName);

processInfopkgnameList = appProcessInfopkgList ;

processInfoListadd(processInfo);

return processInfoList;

}

//判断某进程是否存在

private boolean isProcessExisting(String packageName){

ArrayList<ProcessInfo> processInfoList = getRunningAppProcessInfo();

for(ProcessInfo process : processInfoList){

String[] packageList = processpkgnameList;

for (String pkg : packageList) {

if(pkgequals(packageName)){

return true;

}

}

}

return false;

}

不是。

API调用本身并不是多进程,它是一种进程间通信(IPC)的方式。在使用API调用时,应用程序会向 *** 作系统发送请求。

API调用指的是应用程序接口(Application Programming Interface)调用。API是一组预定义的接口,它允许应用程序与 *** 作系统、数据库、硬件设备或其他应用程序进行交互。

以上就是关于在windows API应用程序中(一个进程)获取一个MFC对话框(另一个进程)的句柄 诸大神请帮忙全部的内容,包括:在windows API应用程序中(一个进程)获取一个MFC对话框(另一个进程)的句柄 诸大神请帮忙、在C#中,如何根据主窗口的句柄,获取该窗口所属进程或者是进程的名字、如何获取android 进程信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9534759.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存