#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#include <shellapi.h>
/*
HINSTANCE ShellExecuteA(
[in, optional] HWND hwnd,用于显示 UI 或错误消息的父窗口的句柄。如果操作与窗口无关,则此值可以为NULL
[in, optional] LPCSTR lpOperation,指向以空字符结尾的字符串的指针,在本例中称为动词,它指定要执行的操作
[in] LPCSTR lpFile,指向以空字符结尾的字符串的指针,该字符串指定要在其上执行指定动词的文件或对象
[in, optional] LPCSTR lpParameters,如果lpFile指定一个可执行文件,则此参数是一个指向以空字符结尾的字符串的指针,该字符串指定要传递给应用程序的参数
[in, optional] LPCSTR lpDirectory,指向以空字符结尾的字符串的指针,该字符串指定操作的默认(工作)目录
[in] INT nShowCmd,指定应用程序在打开时如何显示的标志
返回值
类型:HINSTANCE
如果函数成功,它返回一个大于 32 的值。如果函数失败,它返回一个指示失败原因的错误值。
);
HANDLE CreateFileA(
[in] LPCSTR lpFileName,指向文件指针
[in] DWORD dwDesiredAccess,访问模式,读/写
[in] DWORD dwShareMode,共享模式
[in, optional] LPSECURITY_ATTRIBUTES lpSecurityAttributes,指向安全属性的指针
[in] DWORD dwCreationDisposition,如何让创建
[in] DWORD dwFlagsAndAttributes,文件属性
[in, optional] HANDLE hTemplateFile,用于复制文件句柄
);
返回值
如果函数成功,则返回值是指定文件、设备、命名管道或邮槽的打开句柄。
如果函数失败,则返回值为INVALID_HANDLE_VALUE
BOOL WriteFile(
[in] HANDLE hFile,文件或 I/O 设备(例如,文件、文件流、物理磁盘、卷、控制台缓冲区、磁带驱动器、套接字、通信资源、邮槽或管道)的句柄
[in] LPCVOID lpBuffer,指向包含要写入文件或设备的数据的缓冲区的指针。该缓冲区必须在写操作期间保持有效。在写操作完成之前,调用者不得使用此缓冲区。
[in] DWORD nNumberOfBytesToWrite,要写入文件或设备的字节数,零值指定空写操作。空写操作的行为取决于底层文件系统或通信技术。
[out, optional] LPDWORD lpNumberOfBytesWritten,一个指向接收使用同步hFile参数时写入的字节数的变量的指针
[in, out, optional] LPOVERLAPPED lpOverlapped,如果hFile参数是用FILE_FLAG_OVERLAPPED打开的, 则需要指向OVERLAPPED结构的指针,否则该参数可以为 NULL..
);
BOOL ReadFile(
[in] HANDLE hFile,设备句柄
[out] LPVOID lpBuffer,指向接收从文件或设备读取的数据的缓冲区的指针
[in] DWORD nNumberOfBytesToRead,读取的最大字节数
[out, optional] LPDWORD lpNumberOfBytesRead,一个指向接收使用同步hFile参数时读取的字节数的变量的指针
[in, out, optional] LPOVERLAPPED lpOverlapped
);
*/
int main()
{
//ShellExecute(NULL, L"open", L"D:\\1.txt", NULL, NULL, SW_SHOWNORMAL); //可用于后门应用
HANDLE hFILE = CreateFile(L"D:\\2.txt", GENERIC_WRITE | GENERIC_READ, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); //创建文件
char buff[256]="good up up";
DWORD d;
/* if (WriteFile(hFILE,&buff,strlen(buff),NULL,NULL))
{
printf("执行成功!");
}
else
{
return 0;
}
*/
char buff2[256]={0};//存储读取的文件内容 ,不赋予0,初始化为 cc cc cc ...,读取时变成烫烫烫....
ReadFile(hFILE,&buff2,256,&d,NULL);
printf("%s", buff);
}
windows文件操作
最新推荐文章于 2023-08-02 22:55:37 发布