erbi_lucifer吧 关注:407贴子:3,325

回复:【C语言】【控制台】【小程序】--一些写着玩的东东……

取消只看楼主收藏回复


【020】【电脑说话.cpp】SAPI
截图:无
【源代码】
#include <stdio.h>
#include <windows.h>
#include<sapi.h>
#pragma comment(lib,"sapi.lib")
int main()
{
ISpVoice *pVoice=NULL;//初始化
HRESULT hr;
char said[MAX_PATH];
wchar_t SAID[MAX_PATH];
if(FAILED(CoInitialize(NULL))){
printf("初始化失败\n");
}
printf("请输入要说的话:");
gets(said);
MultiByteToWideChar(0,0,said,MAX_PATH,SAID,MAX_PATH);
//获取ISpVoice接口
hr=CoCreateInstance(CLSID_SpVoice,NULL,CLSCTX_ALL,IID_ISpVoice,(void**)&pVoice);
if(SUCCEEDED(hr)){
pVoice->Speak(SAID,0,NULL);
}
else{
printf("创建接口失败\n");
}
getchar();
CoUninitialize();
return 0;
}



32楼2012-09-01 23:11
回复

    【源代码】
    #include <stdio.h>
    #include <windows.h>
    HWND hwnd;
    int Isok=1;
    char ImagePath[MAX_PATH];
    DWORD WINAPI ThreadFunc( LPVOID lpParam ) //线程函数
    {
    HBITMAP LoadBmp = (HBITMAP)LoadImageA(GetModuleHandle(NULL),ImagePath,IMAGE_BITMAP,800,500,LR_LOADFROMFILE);//加载图片
    HDC hdc = GetDC(hwnd);//得到对应句柄窗体的DC
    HDC hdcMem = CreateCompatibleDC(hdc);//创建临时DC
    HBITMAP hbmOld = (HBITMAP)SelectObject(hdcMem, LoadBmp);//将图片选入DC
    while(Isok==1)BitBlt(hdc, 0, 0, 800,500, hdcMem, 0, 0, SRCCOPY);//画图
    SelectObject(hdcMem, hbmOld);
    DeleteDC(hdcMem);
    //线程的处理函数
    return 0;
    }
    int main()
    {
    int i=0;
    DWORD dwThreadId, dwThrdParam = 1;
    hwnd=GetForegroundWindow();//得到窗体句柄
    system("color 0A");
    printf("\n\n\t\t【显示BMP】\n\n请输入位图的全路径名(bmp格式):");
    gets(ImagePath);
    CloseHandle(CreateThread( NULL,0,ThreadFunc,&dwThrdParam, 0,&dwThreadId));//创建并关闭线程
    getchar();
    Isok=0;
    printf("\n效果如图。回车退出。");
    getchar();
    InvalidateRect(NULL,NULL,1);
    return 0;
    }
    


    34楼2012-09-01 23:45
    回复
      2026-04-24 02:27:54
      广告
      不感兴趣
      开通SVIP免广告

      【022】【当前进程.c】



      35楼2012-09-01 23:46
      回复

        【源代码】
        #include <stdio.h>
        #include <windows.h>
        #include<tlhelp32.h>
        int main()
        {
        BOOL liu;
        char *proname;
        PROCESSENTRY32 pe32;
        HANDLE hpxian;
        pe32.dwSize=sizeof(pe32);
        //使用PROCESSENTRY32前因该对其设置大小
        printf("\n\t\t\t\t【当前进程】\n\n");
        hpxian=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
        if(hpxian==INVALID_HANDLE_VALUE)
        {
        printf("\t进程获取失败\n");
        return;
        }
        liu=Process32First(hpxian,&pe32);
        while(liu)
        {
        liu=Process32Next(hpxian,&pe32);
        proname=(char *)malloc(sizeof(char)*MAX_PATH);
        WideCharToMultiByte(0,0,pe32.szExeFile,MAX_PATH,proname,MAX_PATH,0,0);
        printf("\t进程名称:%s\t\t\t",proname);
        printf("PID:%u\n",pe32.th32ProcessID);
        free(proname);
        }
        CloseHandle(hpxian);
        getchar();
        return 0;
        }
        


        36楼2012-09-01 23:47
        回复

          【022】【当前进程.c之中文版】
          截图:35楼
          【源代码】
          #include <stdio.h>
          #include <string.h>
          #include<Windows.h>
          #include<tlhelp32.h>
          #define 整数型 int
          #define 字符型 char
          #define 布尔型 BOOL
          #define 主函数() main()
          #define 输入字符() getchar()
          #define 返回值 return
          #define 如果 if
          #define while型循环 while
          #define 进程结构体 PROCESSENTRY32
          #define 进程句柄 HANDLE
          #define 得到大小 sizeof
          #define 打印 printf
          #define 获取进程句柄 CreateToolhelp32Snapshot
          #define 枚举进程1 Process32First
          #define 枚举进程2 Process32Next
          #define 关闭句柄 CloseHandle
          #define 申请内存 malloc
          #define 释放内存 free
          #define Unicode转Ascii WideCharToMultiByte
          #define 最大路径长度 MAX_PATH
          #define 系统命令 system
          //这些#define可以新建个头文件放进去……
          整数型 主函数()
          {
          //定义变量
          //-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-
          布尔型 是否;
          字符型 *S_进程名;
          进程结构体 结构32;
          进程句柄 H_句柄;
          //-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-
          系统命令("color 0A");
          //使用PROCESSENTRY32前因该对其设置大小
          结构32.dwSize=得到大小(结构32);
          打印("\n\t\t\t\t【当前进程】\n\n");
          //-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-
          H_句柄=获取进程句柄(TH32CS_SNAPPROCESS,0);
          如果(H_句柄==INVALID_HANDLE_VALUE)
          {
          打印("\t进程获取失败\n");
          返回值(1);
          }
          是否=枚举进程1(H_句柄,&结构32);
          //-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-
          //继续,枚举进程
          //-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-
          while型循环(是否)
          {
          是否=枚举进程2(H_句柄,&结构32);
          S_进程名=(字符型 *)申请内存(得到大小(字符型)*最大路径长度);
          Unicode转Ascii(0,0,结构32.szExeFile,最大路径长度,S_进程名,最大路径长度,0,0);
          打印("\t进程名称:%s\t\t\t",S_进程名);
          打印("PID:%u\n",结构32.th32ProcessID);
          释放内存(S_进程名);
          }
          关闭句柄(H_句柄);
          //-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-
          输入字符();
          返回值(1);
          }

          


          37楼2012-09-01 23:50
          回复

            【024】【窗口置顶】
            截图:无
            【源代码】
            #include <stdio.h>
            #include <windows.h>
            int main()
            {
            HWND hwnd=GetForegroundWindow();
            SetWindowPos(hwnd, HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);//置顶
            printf("\t本窗体已经进入置顶模式,回车进入普通模式\n");
            getchar();
            SetWindowPos(hwnd, HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
            printf("\t本窗体已经进入普通模式,回车退出程序\n");
            getchar();
            return 0;
            }
            


            38楼2012-09-01 23:56
            回复

              【025】【打开光驱】
              截图:无
              【源代码】
              #include<Windows.h>
              #include<stdio.h>
              #include <mmsystem.h>
              #pragma comment(lib,"winmm.lib")
              int main()
              {
              mciSendStringA("set cdaudio door open",NULL,0,NULL);//打开
              getchar();
              return 0;
              }
              


              39楼2012-09-01 23:57
              回复

                【026】【闪烁窗体】
                截图:无
                【源代码】
                #include <stdio.h>
                #include <windows.h>
                int main()
                {
                int i=0;
                HWND hwnd=GetForegroundWindow();
                printf("\t\t有没有边框和任务栏图标在一闪一闪?");
                for(;i<50;i++){
                FlashWindow(hwnd,1);
                Sleep(500);
                }
                printf("\n\n闪烁停止,回车退出。");
                getchar();
                return 0;
                }
                


                40楼2012-09-01 23:58
                回复
                  2026-04-24 02:21:54
                  广告
                  不感兴趣
                  开通SVIP免广告

                  【027】【设置标题】
                  截图:无
                  【源代码】
                  #include <stdio.h>
                  #include <windows.h> int main()
                  {
                  char title[100];
                  HWND hwnd=GetForegroundWindow();
                  printf("\n\n\t\t【设置这个黑窗体的标题】\n\n");
                  printf("请输入标题:");
                  gets(title);
                  if(SetWindowTextA(hwnd,title))
                  printf("\n\n设置成功(自己看)\n其实可以使用这个方法在控制台程序一开始就设置对应的标题。如:XX管理系统等等");
                  else printf("设置失败。");
                  getchar();
                  return 0;
                  }
                  


                  41楼2012-09-01 23:59
                  回复

                    【028】【颜色.c】
                    截图:无
                    【源代码】
                    #include <stdio.h>
                    #include <windows.h>
                    /*
                    0 = 黑色 8 = 灰色
                    1 = 蓝色 9 = 淡蓝色
                    2 = 绿色 A = 淡绿色
                    3 = 浅绿** = 淡浅绿色
                    4 = 红色 C = 淡红色
                    5 = 紫色 D = 淡紫色
                    6 = 黄色 E = 淡黄色
                    7 = 白色 F = 亮白色
                    */
                    int main()
                    {
                    int i;
                    char show[50];
                    printf("每次回车改变颜色。\n");
                    printf("\n\n\t\t\t【字体颜色】\n");
                    for(i=0;i<=9;i++){
                    sprintf(show,"color 0%d",i);
                    system(show);
                    getchar();
                    }
                    for(i=0;i<6;i++)
                    {
                    sprintf(show,"color 0%c",'A'+i);
                    system(show);
                    getchar();
                    }
                    printf("\n\n\t\t\t【背景颜色】\n");
                    for(i=0;i<=9;i++){
                    sprintf(show,"color %d%d",i,0);
                    system(show);
                    getchar();
                    }
                    for(i=0;i<6;i++)
                    {
                    sprintf(show,"color %c0",'A'+i);
                    system(show);
                    getchar();
                    }
                    getchar();
                    }


                    42楼2012-09-02 00:00
                    回复

                      【029】【移动窗体.c】
                      截图:无
                      【源代码】
                      #include <stdio.h>
                      #include <windows.h>
                      int main()
                      {
                      int i,j;
                      HWND hwnd=GetForegroundWindow();
                      printf("\n\n\t【移动黑窗体】\n\n");
                      for(i=0;i<700;i+=100)
                      for(j=0;j<1000;j+=10){
                      MoveWindow(hwnd,j,i,300,300,1);
                      Sleep(50);
                      }
                      getchar();
                      return 0;
                      }
                      


                      43楼2012-09-02 00:01
                      回复

                        【030】【窗体全屏.c】
                        传送门:http://tieba.baidu.com/p/1732571402

                        


                        44楼2012-09-02 00:03
                        回复