首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何通过ShellExecuteEx打开hWnd窗口.. hProcess?

通过ShellExecuteEx函数可以打开一个指定的文件、文件夹、URL或者执行一个指定的操作。其中hWnd参数是一个窗口句柄,hProcess参数是一个指向接收进程标识符的变量的指针。

具体使用方法如下:

  1. 首先,需要包含Windows.h头文件。
代码语言:cpp
复制
#include <Windows.h>
  1. 定义一个SHELLEXECUTEINFO结构体,并初始化其中的成员。
代码语言:cpp
复制
SHELLEXECUTEINFO sei = {0};
sei.cbSize = sizeof(SHELLEXECUTEINFO);
sei.fMask = SEE_MASK_NOCLOSEPROCESS; // 设置该标志位以获取进程标识符
sei.hwnd = hWnd; // 窗口句柄
sei.lpVerb = _T("open"); // 打开操作
sei.lpFile = _T("path_to_file"); // 文件路径
sei.nShow = SW_SHOW; // 显示窗口
  1. 调用ShellExecuteEx函数,传入SHELLEXECUTEINFO结构体。
代码语言:cpp
复制
if (ShellExecuteEx(&sei))
{
    // 打开成功,可以获取进程标识符
    HANDLE hProcess = sei.hProcess;
    // 其他操作...
}
else
{
    // 打开失败,可以通过GetLastError获取错误信息
    DWORD dwError = GetLastError();
    // 错误处理...
}

需要注意的是,ShellExecuteEx函数返回非零值表示成功,可以通过hProcess获取进程标识符。如果返回零,可以通过GetLastError函数获取错误信息。

关于ShellExecuteEx的更多详细信息,可以参考腾讯云文档中的相关介绍:ShellExecuteEx函数

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

windows文件在另一程序打开_windows程序设计第7版

窗口打开风格 参数可选值: SW_HIDE = 0; {隐藏, 并且任务栏也没有最小化图标} SW_SHOWNORMAL = 1; {用最近的大小和位置显示, 激活} SW_NORMAL =...再此进行详细介绍 原型: HINSTANCE ShellExecute( _In_opt_ HWND hwnd,//父窗口句柄或出错时显示错误父窗口的句柄,可以为 NULL _In_opt...类型如下: SW_HIDE 隐藏窗口,活动状态给令一个窗口 SW_MINIMIZE 最小化窗口,活动状态给令一个窗口 SW_RESTORE 用原来的大小和位置显示一个窗口,同时令其进入活动状态 SW_SHOW...最小化一个窗口,同时不改变活动窗口 SW_SHOWNA 用当前的大小和位置显示一个窗口,不改变活动窗口 SW_SHOWNOACTIVATE 用最近的大小和位置显示一个窗口,同时不改变活动窗口 SW_SHOWNORMAL...ShExecInfo.lpDirectory = NULL; ShExecInfo.nShow = SW_SHOW; ShExecInfo.hInstApp = NULL; ShellExecuteEx

66710

C语言游戏外挂:一个简单的内存外挂

通过 C 语言编写一个简单的外挂,通过 API 函数修改游戏数据,从而实现作弊功能 对象分析 要用的 API 函数简单介绍 编写测试效果 总体评价 对象分析 本次游戏对象为 Super Mario...IpWindowName); 通过类名或窗口名查找,返回窗口句柄 DWORD GetWindowThreadProcessId(HWND hWnd,LPDWORD lpdwProcessId); 得到窗口句柄后通过...,DWORD dwProcessId) 打开一个已存在的进程对象,并返回进程的句柄 bool WriteProcessMemory(HANDLE hProcess,LPVOID lpBaseAddress... int main() {    HWND h = ::FindWindow(NULL, "Super Mario XP");  //  寻找并打开进程    DWORD processid..., FALSE, processid);    if (hprocess == 0) {    //  对应处理        printf("打开进程失败!

2.6K40

滴水逆向初级-win32(四)

hWnd, //所有者窗口的句柄 LPCTSTR IpText, //消息框中的文本地址 LPCTSTR IpCaption, //消息框标题的地址 UINT uType //样式的消息框...//2.创建窗口 HWND hwnd = CreateWindow( className, TEXT("我的第一个窗口"), WS_OVERLAPPEDWINDOW, 10..., 10, 600, 300, NULL, NULL, hInstance, NULL ); //如果窗口没有创建成功,打印错误信息 if(hwnd == NULL...hwnd = CreateWindow( className, TEXT("我的第一个窗口"), WS_OVERLAPPEDWINDOW, 10, 10, 600, 300...dllexport) 调用约定 返回类型 函数名(参数列表); 使用.def文件: EXPORTS 函数名 @编号 函数名 @编号 NONAME 使用序号导出的好处: 名字是一段程序就精华的注释,通过名字可以直接猜测到函数的功能通过使用序号

2.2K41

如何窗口打开导航链接?

Hexo会主动在新窗口打开除主域名之外的链接,如果你博客绑定域名为fe32.top,超链接为其他域名(如fe34.top)时,点击该超链接会主动在新窗口打开。...解释如下: 这里虽然有配置项,但是好像并不能实现我想要的功能,我想实现的是如何自定义打开导航栏链接 ?...的博客项目中,这些其实可以被称作独立于博客项目之外的项目,由于我把它也嵌入到Hexo + Butterfly博客项目里,导致他们的URL也必然成为https://fe32.top/xxx,这样就不能新窗口打开那些可以被称作独立于博客项目之外的项目了...效果预览 你可以直接打开本站导航栏中的旧版本、网址收藏、音乐长廊、旧版本入口这些链接体验效果。 这里我用v4.8.5主题版本跑了一遍,只做了简单测试,未过多美化!...valArray[1] i.fa-fw(class=trim(valArray[1])) span=' '+ lab 在想要新窗口打开的导航栏后面添加

23010

一种清除windows通知区域“僵尸”图标的方案——XP系统解决方案

(转载请指明出于breaksoftware的csdn博客)          从SPY++抓到的结构可以看出来,通知区域是一个ToolbarWindow32窗口类对象。...获取图标信息         在尝试去掉“僵尸”图标之前,有几个问题摆在我们面前 如何获取图标的总数 如何枚举到每个图标 如何获取图标的信息 如何找到我们创建的图标         查阅MSDN后,...如此设计,也是因为我试图通过这个特征来识别图标(虽然这种方案存在不严谨性,但是图标的识别不是本文的主要的探讨课题)。         那么我们如何去获取图标的文字呢?...这两者存在一个推导关系,即可以通过2推导出1。实现这个过程的是TB_GETBUTTON消息。...现在的问题就集中在以下问题上 如何计算出“僵尸”图标的位置 发送哪些消息         第一个问题我们可以通过发送TB_GETRECT消息来获得,其参数说明是 wParam Command identifier

98320
领券