#pragma comment(lib,"user32") #pragma comment(lib,"gdi32") #pragma comment(lib,"shell32") #include <windows.h> #include <Shlwapi.h> #include <shlobj.h> #include <stdio.h> struct CONSOLE_FONT{ DWORD index; COORD dim;}; typedef BOOL (WINAPI *PROCSETCONSOLEFONT )(HANDLE, DWORD); typedef BOOL (WINAPI *PROCGETCONSOLEFONTINFO )(HANDLE,BOOL,DWORD,CONSOLE_FONT*); typedef COORD (WINAPI *PROCGETCONSOLEFONTSIZE )(HANDLE,DWORD); typedef DWORD (WINAPI *PROCGETNUMBEROFCONSOLEFONTS)(); typedef BOOL (WINAPI *PROCGETCURRENTCONSOLEFONT )(HANDLE,BOOL,CONSOLE_FONT*); PROCSETCONSOLEFONT SetConsoleFont; PROCGETCONSOLEFONTINFO GetConsoleFontInfo; PROCGETCONSOLEFONTSIZE GetConsoleFontSize; PROCGETNUMBEROFCONSOLEFONTS GetNumberOfConsoleFonts; PROCGETCURRENTCONSOLEFONT GetCurrentConsoleFont; extern "C" HWND WINAPI GetConsoleWindow(); int main(int argc, char *argv[]) { //然后在程序启动的时候进行载入: HMODULE hKernel32 = GetModuleHandle("kernel32"); SetConsoleFont = (PROCSETCONSOLEFONT )GetProcAddress(hKernel32,"SetConsoleFont" ); GetConsoleFontInfo = (PROCGETCONSOLEFONTINFO )GetProcAddress(hKernel32,"GetConsoleFontInfo" ); GetConsoleFontSize = (PROCGETCONSOLEFONTSIZE )GetProcAddress(hKernel32,"GetConsoleFontSize" ); GetNumberOfConsoleFonts = (PROCGETNUMBEROFCONSOLEFONTS)GetProcAddress(hKernel32,"GetNumberOfConsoleFonts"); GetCurrentConsoleFont = (PROCGETCURRENTCONSOLEFONT )GetProcAddress(hKernel32,"GetCurrentConsoleFont" ); //载入完毕之后,就可以进行编程对字体大小控制了。 int NumOfFont,i,X=0,Y=0,IconIndex=0; char *IconFile=NULL; NumOfFont = GetNumberOfConsoleFonts(); CONSOLE_FONT *fonts = new CONSOLE_FONT[NumOfFont]; HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); GetConsoleFontInfo(hConsole, 0, NumOfFont, fonts); if (argc==1) { printf("Set Console FontSize and Icon. Designed by zhao4zhong1@163.com 2015-07-10\n"); printf("Usage: %s [XxY] [IconFile] [IconIndex]\n",argv[0]); printf("May availible Font Size:\n X x Y\n-- x --\n"); } if (argc==2) { if (2!=sscanf(argv[1],"%dx%d",&X,&Y)) IconFile=argv[1]; } else if (argc==3) { if (2!=sscanf(argv[1],"%dx%d",&X,&Y)) { IconFile=argv[1]; sscanf(argv[2],"%d",&IconIndex); } else { IconFile=argv[2]; } } else if (argc==4) { sscanf(argv[1],"%dx%d",&X,&Y); IconFile=argv[2]; sscanf(argv[3],"%d",&IconIndex); } if (IconFile) { HWND hwnd=GetConsoleWindow(); if (hwnd) { HICON hIconS=NULL; if (1<=ExtractIconEx(IconFile,IconIndex,NULL,&hIconS,1)) { if (hIconS) { SendMessage(hwnd,WM_SETICON,ICON_SMALL,(LPARAM)hIconS); // DestroyIcon(hIconS); } SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_FLUSH, NULL, NULL);//更新任务栏上的图标 } } } for (i=0;i<NumOfFont;i++) { fonts[i].dim = GetConsoleFontSize(hConsole, fonts[i].index); // if (argc==1) printf("%2d x %2d %d %d\n",fonts[i].dim.X,fonts[i].dim.Y,i,fonts[i].index); if (argc==1) printf("%2d x %2d\n",fonts[i].dim.X,fonts[i].dim.Y); if (fonts[i].dim.X == X && fonts[i].dim.Y == Y) { SetConsoleFont(hConsole, fonts[i].index); break; } } delete[] fonts; return 0; }
解决方案:8分
顶起来,分分分分分
解决方案:8分
First !!
解决方案:8分
8000大关……
解决方案:8分
必须赞,必须赞~
解决方案:8分
前排留名学习
解决方案:16分
学习学习
解决方案:8分
顶顶顶 。
解决方案:8分
就不关注你
解决方案:8分
喜大普奔。顶赵老湿
解决方案:16分
是不是送钱的
解决方案:8分
接分接分接分
解决方案:8分
恭喜恭喜,接分了。
解决方案:8分
赵老师v587
解决方案:8分
echo 顶
解决方案:8分
一直都用资源文件设图标
解决方案:8分
解决方案:8分
虽然我多不关注别人, 也不看被关注, 不过8000…
解决方案:8分
恭喜赵四老师!
解决方案:16分
恭喜赵四老师
解决方案:7分
顶赵老师,
解决方案:7分
爷的小号建了7999个就为了关注你,给分吧。
解决方案:7分
赵老师,给你增加点人气。赞一个 赞一个 赞一个
解决方案:7分
又来接分咯
解决方案:7分
恭喜楼主,接分!
解决方案:7分
恭喜楼主,躺下接分
解决方案:7分
离10000不远了
解决方案:7分
那些都是我小号,你不信,看我换一个号,发同样的内容
解决方案:7分
恭喜恭喜
解决方案:7分
多谢赵老师的帮忙!
解决方案:7分
解决方案:7分
这!你老板要是看到了会怎么想?
解决方案:7分
解决方案:7分
赵4老死 膜拜
解决方案:7分
说好的分呢
解决方案:7分
用你的分砸死我吧,网脸上砸,别客气!
解决方案:6分
同楼上。
解决方案:6分
菜鸟来接分了
解决方案:6分
接分接分
解决方案:6分
没有看到分呀
解决方案:6分
支持分享。
解决方案:6分
希望还没来晚