函数定义:BOOL SetCursorPos(int x,int y);
这个函数的两个参数我想大家应该知道是什么意思吧,屏幕的坐标点。 直接看例子: #include
int sec=0; while(sec<200) {
SetCursorPos(rand()24,rand()v8);//随机设置鼠标的位置 Sleep(20); sec++; }
return 0; }
8:CopyFile复制一个文件
如何复制一个文件,比如,我要把E盘的abb.txt的文本文件复制到d盘的zhengyong.txt,则调用语句
CopyFile(\即可。 第三个参数有以下说明:
如果设为TRUE(非零),那么一旦目标文件已经存在,则函数调用会失败。否则目标文件会被覆盖掉。
9:DeleteFile删除一个文件
如何删除一个文件,语句:DeleteFile(\既是删除 如果目标为隐藏或只读,则无用。
10:CreateDirectory创建一个文件夹(目录)
假如E盘下什么文件也没有
CreateDirectory(\这样是错的,不能同时建两个文件,除非E盘下已经有了个aaa文件夹了。
这样是对的CreateDirectory(\
11:GetClientRect获得窗口客户区大小
看例子:
#include
int main(int argc, char* argv[]) {
HWND wnd; while(1)
{
wnd=FindWindow(NULL,\无标题.txt - 记事本\
RECT rect;//专门用来存储窗口大小
GetClientRect(wnd,&rect);//获取窗口大小
printf(\输出窗口大小,试着用鼠标改变窗口大小 Sleep(300); } }
12:GetWindowRect获得窗口大小(相对屏幕)
例子:
#include
int main(int argc, char* argv[]) {
HWND wnd; while(1)
{
wnd=FindWindow(NULL,\无标题.txt - 记事本\
RECT rect;//专门用来存储窗口大小
GetWindowRect(wnd,&rect);//获取窗口大小
printf(\输出窗口大小,试着用鼠标改变窗口大小 Sleep(300); } }
试着去找一下GetClientRect和GetWindowRect之间有什么区别;
13:FindFirstFile寻找文件以及获得文件的信息
这里举一个例子吧,列举E盘第一目录下的所有文件,包括文件夹,结合FindNextFile #include
BOOL done=TRUE; WIN32_FIND_DATA fd;
HANDLE hFind = FindFirstFile(\第一个参数是路径名,可以使用通配符,懂DOS的人应该知道吧!fd存储有文件的信息 while (done) {
printf(\
done=FindNextFile(hFind, &fd); //返回的值如果为0则没有文件要寻了 } return 0; }
当然也可以直接找一个文件,不使用通配符,但这样有什么意义呢?,如
FindFirstFile(\其实这个可以获取一个文件的信息,如文件是不是隐藏的,或者有没有只读属性等。
当然通过控制通配符,也可以寻找特定类型的文件,比如我只要找文本文件,那么就是这个语句FindFirstFile(\就行了,关键看你自己灵活运用。
前面说过fd里存储有文件的信息,那怎么根据fd里面的成员判断这个文件的属性,文件是否隐藏,是不是文件夹。
fd里的dwFileAttributes存储有文件的信息,如判断是否为文件夹,只要把这个变量和FILE_ATTRIBUTE_DIRECTORY进行按位与运算,如果为1的话,表明为文夹件,如if(fd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY==1) printf(\是文件夹\\n\
其它判断也是一样,现在给出文件的属性(常用几个): FILE_ATTRIBUTE_HIDDEN(隐藏) FILE_ATTRIBUTE_READONLY(只读) FILE_ATTRIBUTE_SYSTEM(系统)
14:FindNextFile寻找文件
参照FindFirstFile函数的例子!
15:MoveFile移动文件
如把一个盘里的文本移到另一个盘里去:MoveFile(\即可,意思把e盘下的a.txt移到d盘下去,并改名为abc.txt
16:GetClassName根据窗口句柄获得窗口类名
函数定义:int GetClassName(HWND hWnd, LPTSTR IpClassName, int nMaxCount); 这种函数不需要再解释了吧,前面有太多类似的例子。
17:SetFileAttributes设置文件属性
函数定义:BOOL SetFileAttributes( LPCTSTR lpFileName, DWORD dwFileAttributes); 这个函数的第二个参数dwFileAttributes和前面讲过的WIN32_FIND_DATA结构里的
dwFileAttributes成员相对应。假设E盘第一目录下有一个文本文件a.txt的正常文件,我要把它设为只读和隐藏那要如何做呢?在前面介绍过WIN32_FIND_DATA结构里dwFileAttributes成员的几个常用属性,根据这个我们知道隐藏是FILE_ATTRIBUTE_HIDDEN,只读是FILE_ATTRIBUTE_READONLY。 那么把E盘下文本文件的属性设为隐藏和只读的语句就是:
SetFileAttributes(\ (说明:这个函数同样也能设置文件夹属性)
虽然这个语句可以达到要求,但不建议用,因为会覆盖掉文件的原来属性,也就是说如果这个文件之前有系统属性(系统文件)的话,那么这个语句一旦执行后,文件就只有隐藏和只读属性了。
比如一个文件原先就有隐藏属性,依旧以a.txt为例子,那么我把它设为只读,是不是这个语句就可以呢?
SetFileAttributes(\);这样的话,虽然文件有只读属性了,但隐藏属性却没有了。
那要如何在不覆盖掉原来的属性下,把文件设为只读呢,其实说了这么多的废话,总结起来就一句话:如何增加一个文件的属性!
前提是要获得这个文件的原有属性:获得文件的属性,在FindFirstFile函数讲过。好吧!直接看例子:
假设e盘的a.txt文件属性为隐藏,给它增加只读属性: #include
WIN32_FIND_DATA fd;
FindFirstFile(\
fd.dwFileAttributes|=FILE_ATTRIBUTE_READONLY;//在原来的属性下增加只读属性 SetFileAttributes(\设置文件的属性 return 0; }
第二个例子:如何去掉一个文件的属性 (补习一下,懂的人直接跳过)
我想懂这里的按位或、按位与或者按位异或运算的人应该知道该如何去掉一个文件的属性。其实一个文件信息都是以二进制代码说明的。
比如一个八位二进制码:10000010,这里的每一位是不是只有0和1取值,不是0,就是1,正好符合一个文件属性的有无,如这个文件是隐藏的吗?只有是和不是,这样我们规定把这八位二进制码的第一位用于确定文件是否具有隐藏属性,如果为1那便是隐藏,无则没有,以此类推第二位就代表文件的只读,第三位系统。。。但要如何判断呢,或者把某一位的值改变呢,用按位运算就可以,00000010,我要把第2位的值设为0,其它位上的值保持不变,用按位异或运算即可,与00000010进行按位异或运算,但这里并不是与它本身进行运算,不管任何八位二进制数的值是多少只要与00000010进行按位异或运算,那第二位都会变成0,而其它的位保持不变。这样为了方便,我们就把00000010进行宏定义,方便记忆,这个二进制数的十进制为2。宏定义#define FILE_ATTRIBUTE_READONLY 2 明白了这个我们就来清除一个文件的一种属性吧! 清除一个文件的隐藏属性,假设a.txt为隐藏文件: #include
WIN32_FIND_DATA fd;
FindFirstFile(\获取文件信息
fd.dwFileAttributes^=FILE_ATTRIBUTE_HIDDEN;//在原来的属性下删除隐藏属性 SetFileAttributes(\设置文件的属性 return 0; }