通过脚本在Windows中打开文件

时间:2015-10-30 16:37:55

标签: c windows batch-file

我想编写一个在Windows资源管理器中打开文件的脚本(不只是打开并在cmd中读取它,我希望它能像我双击它一样正确打开它)。我的第一个想法是批处理文件,它确实有效,但批处理文件可以编辑和阅读,我不想要这样。大多数批处理到.exe转换器被标记为病毒,因此我放弃了这个想法,并考虑编写C脚本然后使用代码块转换为.exe。

问题是,我不知道如何在C中打开Windows资源管理器中的文件。任何帮助都将不胜感激!

1 个答案:

答案 0 :(得分:3)

在Windows上我想你可以使用system

#include <stdlib.h>

int main(void) {
  system("explorer.exe c:\\path\\to\\file.txt");
  return 0;
}

正如评论中所讨论的,更强大的解决方案是在此示例中使用ShellExecute

#include <windows.h>
#include <ShellApi.h>

void view_file(const char* pszFileName) {
  ShellExecute(NULL, NULL, pszFileName, NULL, NULL, SW_SHOW);  
}

int main(void) {
  view_file("c:\\path\\to\\file.txt");
  return 0;
}

如果要在双击文件时真正模拟默认操作,可以将NULL作为第二个参数传递

  

NULL

     

使用默认动词(如果可用)。如果没有,&#34;打开&#34;使用动词。如果两个动词都不可用,则系统使用第一个动词   在登记处列出。

有关ShellExecute的更多信息,请参阅docs