
你是想把消息发给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 进程信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)