鱼C论坛

 找回密码
 立即注册
查看: 1758|回复: 4

[已解决]关于进程目录打开求助

[复制链接]
发表于 2018-9-24 11:57:10 | 显示全部楼层 |阅读模式
20鱼币
翻出来以前写的的任务管理器,突然想添加一个功能,打开进程目录。
能力有限了- -,也找到了相关函数,想要解决问题如图......
一开始规划代码如下:
1、 获取ListCtr控件信息(选中行)
2、获取List文本内容(进程ID)
3、获取ID句柄
4、找到该.exe进程
5、根据文件路径打开当前所在目录
.exe不可用文件API来操作,也在官网找了几个.... 不会用 求助求助!
最佳答案
2018-9-24 11:57:11
本帖最后由 人造人 于 2018-9-24 14:31 编辑
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <windows.h>

  4. void OpenExplorerAndSelect(char *file_name)
  5. {
  6.         const char *path = "C:\\Windows\\explorer.exe";
  7.         char buf[100];
  8.         buf[0] = '\0';
  9.         strcat(buf, path);
  10.         strcat(buf, " /select,");
  11.         strcat(buf, file_name);

  12.         STARTUPINFO si;
  13.         PROCESS_INFORMATION pi;
  14.         ZeroMemory(&si, sizeof(si));
  15.         ZeroMemory(&pi, sizeof(pi));
  16.         si.cb = sizeof(si);

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

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

  26.         return 0;
  27. }
复制代码
RWC(TVQ9SDU[AJV0VXDPM15.png
UWEE9UX4C(B1J@W$GO7I1AS.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-24 11:57:11 | 显示全部楼层    本楼为最佳答案   
本帖最后由 人造人 于 2018-9-24 14:31 编辑
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <windows.h>

  4. void OpenExplorerAndSelect(char *file_name)
  5. {
  6.         const char *path = "C:\\Windows\\explorer.exe";
  7.         char buf[100];
  8.         buf[0] = '\0';
  9.         strcat(buf, path);
  10.         strcat(buf, " /select,");
  11.         strcat(buf, file_name);

  12.         STARTUPINFO si;
  13.         PROCESS_INFORMATION pi;
  14.         ZeroMemory(&si, sizeof(si));
  15.         ZeroMemory(&pi, sizeof(pi));
  16.         si.cb = sizeof(si);

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

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

  26.         return 0;
  27. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-24 14:10:17 | 显示全部楼层
  1. #include <string.h>
  2. #include <process.h>

  3. void OpenExplorerAndSelect(char *file_name)
  4. {
  5.         const char *path = "C:\\Windows\\explorer.exe";
  6.         char buf[100];
  7.        
  8.         buf[0] = '\0';
  9.         strcat(buf, "/select,");
  10.         strcat(buf, file_name);
  11.         _execl(path, path, buf, NULL);
  12. }

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

  17.         return 0;
  18. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-9-24 15:44:11 | 显示全部楼层

哈哈你换头像了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-24 17:28:00 | 显示全部楼层

好久没换了
^_^
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-18 09:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表