我想编写一个在Windows资源管理器中打开文件的脚本(不只是打开并在cmd中读取它,我希望它能像我双击它一样正确打开它)。我的第一个想法是批处理文件,它确实有效,但批处理文件可以编辑和阅读,我不想要这样。大多数批处理到.exe转换器被标记为病毒,因此我放弃了这个想法,并考虑编写C脚本然后使用代码块转换为.exe。
问题是,我不知道如何在C中打开Windows资源管理器中的文件。任何帮助都将不胜感激!
答案 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。