Win32下COM口通信控制

这段时间做兼职帮做了一个COM口单片机监控控制程序, 学习了些Win32下COM口的控制. 下面是与COM口控制有关的部分示例代码. //打开COM1 hCOM=CreateFile( “COM1″,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL); if (hCOM==INVALID_HANDLE_VALUE) { MessageBox( GetForegroundWindow(),”无法打开串口!”,”操作失败”,MB_ICONINFORMATION); return; } //设置DCB DCB dcb; if (!GetCommState(hCOM,&dcb)) { MessageBox( GetForegroundWindow(),”无法获取串口状态!”,”操作失败”,MB_ICONINFORMATION); hCOM=INVALID_HANDLE_VALUE; return; } dcb.BaudRate=9600; dcb.ByteSize=8; dcb.Parity=NOPARITY; dcb.StopBits=ONESTOPBIT; if (!SetCommState(hCOM,&dcb)) { MessageBox( GetForegroundWindow(),”无法设置串口状态!”,”操作失败”,MB_ICONINFORMATION); hCOM=INVALID_HANDLE_VALUE; return; } //设置COMMTIMEOUTS COMMTIMEOUTS communication_timeout; communication_timeout.ReadIntervalTimeout=MAXDWORD; communication_timeout.ReadTotalTimeoutMultiplier=0; communication_timeout.ReadTotalTimeoutConstant=0; communication_timeout.WriteTotalTimeoutMultiplier=0; communication_timeout.WriteTotalTimeoutConstant=0; if (!SetCommTimeouts(hCOM,&communication_timeout)) { MessageBox( GetForegroundWindow(),”无法设置串口超时!”,”操作失败”,MB_ICONINFORMATION); hCOM=INVALID_HANDLE_VALUE; return; } //向串口写入ABC三个字符 ULONG nBytesWritten; […]

Win32 Programming: Operation on Files

Here, we show some example code on Win32. The code are operations on file on Win32 OSes. The code here uses some MFC classes. Recursively show the files from a path: void Show(const char *folderPath) { CFileFind finder; CString path(folderPath); path += “*.*”; BOOL bWorking = finder.FindFile(path); while (bWorking) { bWorking = finder.FindNextFile(); cout << […]

SetProxy: 一个设置IE代理的命令行小工具

IE的代理设置用起来并不方便,我自己而言就要经常更改代理服务器,相信很多人有跟我相同的需要。使用C++编写了一个小程序SetProxy调用Win32 API来设置代理服务器IP,用起来方便多了。 编译后为一个可运行console程序,将它放在\windows\system32目录下,使用时只要运行 SetProxy IP:port 就可以把IP设置好,如果要关闭代理,只需运行 SetProxy "" 命令行中运行,界面较土,但用着方便。可以考虑设置几个快捷方式在桌面或者工具栏,点击即设置代理,其它方式发挥想象。 程序下载地址. 源代码也放在这里,希望有需要的人可以用得上 ;) 源代码下载地址. 这是一份有些年头的代码, 如果你在较新的编译器下编译这个项目, 请先做这里所述的小修改. — Eric on Apr. 9, 2014.