热烈庆祝本人受关注人数即将突破8000大关!散分!!+设置终端图标和字体大小C源代码

赵4老师 2015-07-29 10:49:58
#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;
}
...全文
1091 48 打赏 收藏 转发到动态 举报
写回复
用AI写文章
48 条回复
切换为时间正序
请发表友善的回复…
发表回复
sado1997 2016-06-03
  • 打赏
  • 举报
回复
接分接分接分接分……
pzc105 2015-09-23
  • 打赏
  • 举报
回复
久闻赵老师大名
北方的雪pp 2015-09-14
  • 打赏
  • 举报
回复
赵老师,你好啊,我很崇拜你的,希望多多跟你学习。
wangye_qq 2015-09-07
  • 打赏
  • 举报
回复
恭喜,学习的榜样
Shield_Wang 2015-08-26
  • 打赏
  • 举报
回复
来晚了一步啊
赵4老师 2015-08-05
  • 打赏
  • 举报
回复
人总得时不时找点理由庆祝一下哈。今天吃巴甫洛夫……
_明月 2015-08-04
  • 打赏
  • 举报
回复
嗯,关注人数还差46人达8000人,赵老师,在努把力。哈哈 嗯,我在想,当赵老师你的关注人数达8000人时,我把自己对你的关注取消了,这个关注人数不有下落掉8000人了吗?哈哈
pkuzhx 2015-07-31
  • 打赏
  • 举报
回复
希望还没来晚
paschen 2015-07-30
  • 打赏
  • 举报
回复
恭喜恭喜
  • 打赏
  • 举报
回复
那些都是我小号,你不信,看我换一个号,发同样的内容
line_us 2015-07-30
  • 打赏
  • 举报
回复
支持分享。
翅膀又硬了 2015-07-30
  • 打赏
  • 举报
回复
离10000不远了
zodetv 2015-07-30
  • 打赏
  • 举报
回复
恭喜楼主,躺下接分
老李家的小二 2015-07-30
  • 打赏
  • 举报
回复
恭喜楼主,接分!
PoorMonk丶 2015-07-30
  • 打赏
  • 举报
回复
又来接分咯
gzqGyula 2015-07-30
  • 打赏
  • 举报
回复
赵老师,给你增加点人气。赞一个 赞一个 赞一个
牧羊人之月 2015-07-30
  • 打赏
  • 举报
回复
没有看到分呀
LinkSe7en 2015-07-30
  • 打赏
  • 举报
回复
接分接分
建筑师 2015-07-30
  • 打赏
  • 举报
回复
菜鸟来接分了
fmoonstar 2015-07-30
  • 打赏
  • 举报
回复
同楼上。。。。
加载更多回复(28)
提供国人写的强大的html5植物大战僵尸(源码) 写得很棒~占用资源少。 JSPVZ 程序制作进度(2011.1.5) 本程序提供源码由HTML5中文网整理打包下载,该下载包可以使用服务器环境运行,也可以在电脑上双击Index.htm直接运行 另外智能手机可以安装OperaMobile10.1及其以上版本,把代码整个拷贝到手机存储卡上,在浏览器中输入形如“E:/jspvz”形式的地址直接本地运行程序,无需联网 转载使用请勿修改LonelyStar署名,pvz.lonelystar.org网址和PopCap公司版权声明 保留对该JS版植物大战僵尸版权所有 2011.1.5 添加了第二大关的第三小关 修正一大波和最后一波字样无法消失的BUG 2010.12.31 添加了“解谜模式” 调整了程序中关卡对于胜利和失败的算法 几个植物和僵尸做了调整 修改了几个BUG 2010.12.27 对初始界面稍作修改 2010.12.9 添加了“靠天吃饭”小游戏 给领带僵尸添加两种形象 修正辣椒爆炸图片的问题 咖啡豆0耗的数据修正 2010.12.8 提高了一下僵尸行走的纵坐标 修正了土豆雷和樱桃炸弹爆炸图片在IE下的问题 调整了一大波僵尸和最后一波僵尸出现的图片效果 2010.12.7 添加了第二大关的两小关 添加了“乱葬岗”小游戏 修改了几个BUG 调整了进度显示 2010.12.1 添加了“贫瘠之地”小游戏 调整游戏初始化界面和选择模式界面 修正第十关IE下运行报错的BUG 修正IE下单机运行有部分图片看不到的问题 修正蘑菇植物无睡眠动画而实际却在睡眠的BUG 修正曾哥蘑菇种植在醒着的大喷菇上仍然睡着的BUG 修正僵尸出场界面显示僵尸种类的BUG 修正地刺和地刺王伤害过高的BUG 加大“僵尸快跑!”的难度

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧