请告诉我如何用API函数来实现。不要用MFC的类库。请多关照。
解决方案 »
- 如何隐藏EXCEL多余的行与列及屏蔽右键菜单、浮动工具栏
- Debug 版本 CSimpleArray 崩溃,请教为什么?
- 怎样让 ListCtr 有垂直滚动条,去掉水平滚动条
- 在VC里如何获得任意两个日期时间段间的天数?
- 我将BMP文件整个读入内存块中,请问如何将该内存快转换为HBITMAP句柄。急!急!急!!!!!!
- 两种写法那个好啊,为什么
- 求助!关于opengl程序编译出错。
- 怎样实现VC与SQL的连接?怎么操作数据库??
- 在对话框中用TabCtrl做属性表页,每一页中的对话框为何无法得到输入焦点?
- 求助Advise挂接提示E_UNEXPECTED
- 请教各位,软件公司面试、笔试的大概内容;有具体题目最佳
- 有没有获取当前进程可执行文件名的API函数?
#include "windows.h"typedef struct tagWNDINFO
{
DWORD dwProcessId;
HWND hWnd;
} WNDINFO, *LPWNDINFO;BOOL CALLBACK YourEnumProc(HWND hWnd, LPARAM lParam)
{
DWORD dwProcessId;
GetWindowThreadProcessId(hWnd, &dwProcessId);
LPWNDINFO pInfo = (LPWNDINFO)lParam;
if(dwProcessId == pInfo->dwProcessId)
{
pInfo->hWnd = hWnd;
return FALSE;
}
return TRUE;
}HWND GetProcessMainWnd(DWORD dwProcessId)
{
WNDINFO wi;
wi.dwProcessId = dwProcessId;
wi.hWnd = NULL;
EnumWindows(YourEnumProc,(LPARAM)&wi);
return wi.hWnd;
}
得到进程据柄,再调用GetModuleBaseName或GetModuleFileName得到路径和文件名.
#include "afx.h"
#include "Afxwin.h"
int main(int argc, char* argv[])
{
char strFileName[MAX_PATH];
GetModuleFileName(NULL, strFileName, sizeof(strFileName));
return 0;
}
strFileName就是了.
DWORD GetModuleBaseName(
HANDLE hProcess, // handle to process
HMODULE hModule, // handle to module
LPTSTR lpBaseName, // base name buffer
DWORD nSize // maximum characters to retrieve
);
其中,hModule如何获取?
在任何地方加入这句话,试试看。不要说你没有定义_pgmptr,不需要定义,运行期全局变量。MessageBox(0,_pgmptr,0,MB_OK); 或者CString strTemp = _pgmptr;那么strTemp就是你要的东西。更简单的说,_pgmptr就是你要的东西。