VCer代码 VCer开源 VCer文章 VCer工具 VCer知道 VCer词典 VCer读书 VCer论坛   站点首页 我要张贴 控制面板
VCer代码 VCer开源 VCer文章 VCer工具 VCer知道 VCer词典 VCer读书 VCer论坛   站点首页 我要张贴 控制面板

目前位置: VCer资源中心 >>> VCer代码 >>> 硬件/系统调用
我也来贴上一段经典代码吧!>>>


两种关机代码的比较
 
InitiateSystemShutdown(NULL,"关机",10,TRUE,FALSE) //这个函数不能直接掐断电源,但是可以cancel掉关机指令 ExitWindowsEx(EWX_POWEROFF | EWX_FORCE ,0) //直接强制关机,掐断电源
作者:不祥 xler张贴于2004-05-11 18:03:37.0,共阅读1587次,回复0
系统关机代码
 
BOOL ShutDown() { OSVERSIONINFO osVI; HANDLE hToken=NULL; osVI.dwOSVersionInfoSize=sizeof(OSVERSIONINFO); if(GetVersionEx(&osVI)) { switch(osVI.dwPlatformId) { case VER_PLATFORM_WIN32s: case VER_PLATFORM_WIN32_WINDOWS: ExitWindowsEx(EWX_POWEROFF,0); break; case VER_PLATFORM_WIN32_NT: if(OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES, &hToken)) { SetPrivilege(hToken,SE_SHUTDOWN_NAME,TRUE); if(!ExitWindowsEx(EWX_ ...
作者:不祥 xler张贴于2004-05-11 18:01:29.0,共阅读1888次,回复0
系统重起代码
 
HINSTANCE hShell32 = ::LoadLibrary("shell32.dll"); if(hShell32) { typedef int (WINAPI *RestartDialog)(HWND hwndOwner,LPCSTR lpstrReason,UINT uFlags); RestartDialog SHRestartWindowsDialog =(RestartDialog)GetProcAddress(hShell32, MAKEINTRESOURCE(59)); if(SHRestartWindowsDialog) { (SHRestartWindowsDialog)(GetDesktopWindow(),NULL,EWX_REBOOT); } }
作者:不祥 xler张贴于2004-05-11 17:47:30.0,共阅读1792次,回复0
win2000锁定屏幕调用代码
 
对于其他os,不知道有没有用WinExec("rundll32.exe user32.dll,LockWorkStation",SW_HIDE);
作者:不祥 xler张贴于2004-05-11 17:37:05.0,共阅读1786次,回复0
GetLastError()对应的原因
 
void DisplayError(DWORD dwError) { LPVOID pv; FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER| FORMAT_MESSAGE_FROM_SYSTEM, NULL, dwError, MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT), (LPTSTR)&pv, 0, NULL); MessageBox(NULL, (LPTSTR)pv, "Error", MB_ICONHAND); LocalFree(pv); } 这样用: DisplayError(WSAGetLastError()); 可以看到错误的原因!
作者:不祥 jerry张贴于2004-04-24 22:31:46.0,共阅读1912次,回复0
使用QueryPerformanceCount的小例子
 
LARGE_INTEGER liCount1; LARGE_INTEGER liCount2; LARGE_INTEGER liFrequency; double fSeconds; //你的其他代码... //时间点1(例如按某个button的时间) QueryPerformanceCounter(&liCount1); //你的其他代码... //时间点2(例如某事件完成的时间) QueryPerformanceCounter(&liCount2); QueryPerformanceFrequency(&liFrequency);//每秒记数 fSeconds=(double)(liCount2.QuadPart -liCount1.QuadPart )/(double)liFrequency.QuadPart; //时间点2和时间点1之间的精确秒数
作者:不祥 ycr40张贴于2004-04-20 17:21:50.0,共阅读1888次,回复1
异步读写的简单串口类
 
// Serial.h #ifndef __SERIAL_H__ #define __SERIAL_H__ #define FC_DTRDSR 0x01 #define FC_RTSCTS 0x02 #define FC_XONXOFF 0x04 #define ASCII_BEL 0x07 #define ASCII_BS 0x08 #define ASCII_LF 0x0A #define ASCII_CR 0x0D #define ASCII_XON 0x11 #define ASCII_XOFF 0x13 class CSerial { public: CSerial(); ~CSerial(); BOOL Open( int nPort = 2, int nBaud = 9600 ); BOOL Close( void ); int ReadData( void *, int ); int SendData( const char *, int ); int ReadDataWaiting( void ); BOOL IsOpened( void ){ return( m_b ...
作者:不祥 bruticus张贴于2004-04-19 12:51:38.0,共阅读2351次,回复1
获取系统可用串口列表
 
int CUtil::GetSystemPorts(CString *pNameList, CString *pPortList) { CRegKey RegKey; int nCount = 0; if(RegKey.Open(HKEY_LOCAL_MACHINE, "Hardware\\DeviceMap\\SerialComm") == ERROR_SUCCESS) { while(true) { char ValueName[_MAX_PATH]; unsigned char ValueData[_MAX_PATH]; DWORD nValueSize = _MAX_PATH; DWORD nDataSize = _MAX_PATH; DWORD nType; if(::RegEnumValue(HKEY(RegKey), nCount, ValueName, &nValueSize, NULL, &nType, ValueData, &nDataSize) == ERROR_NO_MORE_ITEMS) { break; } if(pNameList) pNameList[nCount] = ValueName; ...
作者:不祥 bluejoe张贴于2004-03-10 14:59:41.0,共阅读2187次,回复0