理想小青年 发表于 2018-9-24 11:57:10

关于进程目录打开求助

翻出来以前写的的任务管理器,突然想添加一个功能,打开进程目录。
能力有限了- -,也找到了相关函数,想要解决问题如图......
一开始规划代码如下:
1、 获取ListCtr控件信息(选中行)
2、获取List文本内容(进程ID)
3、获取ID句柄
4、找到该.exe进程
5、根据文件路径打开当前所在目录
.exe不可用文件API来操作,也在官网找了几个.... 不会用 求助求助!

人造人 发表于 2018-9-24 11:57:11

本帖最后由 人造人 于 2018-9-24 14:31 编辑

#include <stdio.h>
#include <string.h>
#include <windows.h>

void OpenExplorerAndSelect(char *file_name)
{
        const char *path = "C:\\Windows\\explorer.exe";
        char buf;
        buf = '\0';
        strcat(buf, path);
        strcat(buf, " /select,");
        strcat(buf, file_name);

        STARTUPINFO si;
        PROCESS_INFORMATION pi;
        ZeroMemory(&si, sizeof(si));
        ZeroMemory(&pi, sizeof(pi));
        si.cb = sizeof(si);

        CreateProcess(NULL, buf, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
        CloseHandle(pi.hProcess);
        CloseHandle(pi.hThread);
}

int main(void)
{
        char *file_name = "C:\\Windows\\notepad.exe";
        OpenExplorerAndSelect(file_name);
        printf("OK!\n");

        return 0;
}

人造人 发表于 2018-9-24 14:10:17

#include <string.h>
#include <process.h>

void OpenExplorerAndSelect(char *file_name)
{
        const char *path = "C:\\Windows\\explorer.exe";
        char buf;
       
        buf = '\0';
        strcat(buf, "/select,");
        strcat(buf, file_name);
        _execl(path, path, buf, NULL);
}

int main(void)
{
        char *file_name = "C:\\Windows\\notepad.exe";
        OpenExplorerAndSelect(file_name);

        return 0;
}

理想小青年 发表于 2018-9-24 15:44:11

人造人 发表于 2018-9-24 14:29


哈哈你换头像了

人造人 发表于 2018-9-24 17:28:00

理想小青年 发表于 2018-9-24 15:44
哈哈你换头像了

好久没换了
^_^
页: [1]
查看完整版本: 关于进程目录打开求助