标签:std dll efi use turn 日常 需要 display cas
1 /* 2 * Name :ConnectPrinter.c 3 * Author :null 4 * Date :07/19/2018 5 * Purpose:本程序是一个用于自动连接打印机的小程序,目的在于减轻管理员的日常管理工作。 6 * 只需要将此小程序发给局域网内需要连接打印机的同事,即可自动连接相应的打印机。当然, 7 * 需要事先在打印主机上安装 64 和 32 位的驱动程序,以便运行不同操作系统的机器顺利连接。 8 */ 9 10 /* 加这一行是因为使用 MinGW 进行编译的时候,不论使用 -std=c99 还是 -std=c11,都会无法识别 %hhu 11 * 具体参考 https://stackoverflow.com/questions/36531893/c-scanf-unsigned-char 12 */ 13 #define __USE_MINGW_ANSI_STDIO 1 14 #include <stdio.h> 15 #include <windows.h> // system() 16 17 void DisplayMenu(void); 18 19 20 int main(void) 21 { 22 unsigned char choice,ret; 23 24 DisplayMenu(); 25 printf("\n请选择要连接的打印机(输入选项前的数字): "); 26 ret = scanf("%hhu",&choice); 27 getchar();/* 这里的getchar() 不能少,否则会陷入无限循环 */ 28 while(ret != 1 || choice <1 || choice > 5) /* 检查输入是否合法,不合法则提示错误并重新输入 */ 29 { 30 DisplayMenu(); 31 printf("\n输入错误,请重新选择!\n(输入选项前的数字): "); 32 ret = scanf("%hhu",&choice); 33 getchar(); 34 } 35 switch(ret) 36 { 37 /* 关于rundll32 printui.dll,PrintUIEntry 连接打印机可参考 38 * https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/rundll32-printui 39 */ 40 case 1: 41 system("rundll32 printui.dll,PrintUIEntry /in /n \\\\ServerName\\PrinterName01"); /* printer 1 */ 42 break; 43 case 2: 44 system("rundll32 printui.dll,PrintUIEntry /in /n \\\\ServerName\\PrinterName02"); /* printer 2 */ 45 break; 46 case 3: 47 system("rundll32 printui.dll,PrintUIEntry /in /n \\\\ServerName\\PrinterName03"); /* printer 3 */ 48 break; 49 case 4: 50 system("rundll32 printui.dll,PrintUIEntry /in /n \\\\ServerName\\PrinterName04"); /* printer 4 */ 51 break; 52 case 5: 53 system("rundll32 printui.dll,PrintUIEntry /in /n \\\\ServerName\\PrinterName02"); /* printer 5 */ 54 break; 55 } 56 57 return 0; 58 } 59 60 void DisplayMenu(void) 61 { 62 system("cls"); 63 puts("***************************************"); 64 puts("* *"); 65 puts("* 打印机连接程序 *"); 66 puts("* 可帮助你自主连接打印机 *"); 67 puts("* *"); 68 puts("***************************************"); 69 puts(""); 70 puts(""); 71 puts("1. printer 1"); 72 puts("2. printer 2"); 73 puts("3. printer 3"); 74 puts("4. printer 4"); 75 puts("5. printer 5"); 76 }
/*Result:
***************************************
* *
* 打印机连接程序 *
* 可帮助你自主连接打印机 *
* *
***************************************
1. printer 1
2. printer 2
3. printer 3
4. printer 4
5. printer 5
请选择要连接的打印机(输入选项前的数字):
*/
标签:std dll efi use turn 日常 需要 display cas
原文地址:https://www.cnblogs.com/randomname/p/9338870.html