gpt4 book ai didi

c - 在 C 中使用 ShellExecute() 打开 .txt 的正确方法是什么

转载 作者:可可西里 更新时间:2023-11-01 09:43:27 24 4
gpt4 key购买 nike

好的,所以我需要打开一个 .txt 文件,该文件将在与程序相同的文件中创建。

我想使用 ShellExecute();为了做到这一点,我对此做了很多研究,但我似乎无法获得正确的语法,主要是因为我不知道如何处理参数“HWND”

我看了here寻找答案并获得所有信息,除了要放入 HWND 的内容

这是我需要使用的代码的方式:

ShellExecute(0,"open","c:\\debug.txt",NULL,NULL,1);

提前感谢您的帮助,如果您不确定我在说什么,请询问! :)

这是我用来测试功能的程序:

  #include "DAL.h"
//DAL.h added to Testing file to make compiling easier
//Created to test show_debug()
int main(void)
{
int test1,test2,final;

puts("Enter 2 numbers to add (2,2)");
scanf("%d,%d",&test1,&test2);

log_debug(test1);
log_debug(test2);

view_debug();

final= test1+test2;
printf("%d\n",final);

log_debug(final);

return(0);
}

view_debug();是包含 ShellExecute 的函数

void view_debug(void)//WIP
//Opens the debug.txt in notepad
{
LoadLibrary( "shell32.dll" );
ShellExecute(0,"open","c:\\debug.txt",NULL,NULL,1);
}

这是 log_debug();

int log_debug(int test_variable)
//This function simply tests the programmers desired veriable & displays it for help in keeping track of a veriables value(integer).
//The function has support for upto 1 variable for testing
{
time_t now;
time(&now);

FILE *debug; //Creates file to write debug info

debug=fopen("debug.txt", "a+");
fprintf(debug,"DEBUG %.24s: <%d>\n", ctime(&now),test_variable);
//TODO: Allow more than one variable

fclose(debug);

return(0);
}

文件由函数log_debug()创建;它确实有效,但必须手动打开,因为 ShellExecute 不起作用。

完整源代码 Here.

最佳答案

这应该适合你:

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

void view_debug(const char* pszFileName)
{
ShellExecuteA(GetDesktopWindow(),"open",pszFileName,NULL,NULL,SW_SHOW);
}

int main()
{
view_debug("c:\\debug.txt");
}

如果它不起作用,则可能有两三个原因:

  1. 您使用程序代码创建了 debug.txt,但文件仍处于锁定状态,因为您没有关闭文件句柄(例如,取决于您使用 log_debug 打开文件的方式:fclose()、CloseHandle( ), close(), 等等...) 或因为您在没有 FILE_SHARE_READ 标志的情况下打开了文件。

  2. 您实际上没有从 c:\驱动器的根目录读取的权限。这通常适用于非管理员帐户。

  3. c:\debug.txt 实际上并不像您认为的那样存在。

关于c - 在 C 中使用 ShellExecute() 打开 .txt 的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11007537/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com