检测是不是Win7系统
bool IsWindows7()
{
OSVERSIONINFOEX osvi;
// bool bOsVersionInfoEx=false;
DWORD dwType=0UL;
bool bWin7=false;
ZeroMemory(&osvi, sizeof(SYSTEM_INFO));
ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
BOOL bOsVersionInfoEx = GetVersionEx ((LPOSVERSIONINFOA) &osvi);
if( !(bOsVersionInfoEx) )
return false;
if(osvi.dwMajorVersion==6)
{
if(osvi.dwMinorVersion==1)
{
if(osvi.wProductType==VER_NT_WORKSTATION)
{
bWin7=true;
}
}
}
return bWin7;
}
Win8系统马上要上市了,开发需要想实现iPad或Android系统里触摸书写板的动态弹出和动态消失效果。
单位工作系统是Win7,测试平板是Win8的,的在这里只做了一下Win7手写板的截图。 关于书写板的弹出:Win7、Win8弹出书写板并没有什么差别。都是外部调用TabTip.exe而已。
void ExecuteTabTip()
{
TCHAR tcProgramFile[MAX_PATH];
SHGetSpecialFolderPath(NULL,tcProgramFile,CSIDL_PROGRAM_FILES,0);
char *token;
char seps[] = "\\";
token = strtok( tcProgramFile, seps );
std::string strPath = token;
strPath = strPath + "\\Program Files\\Common Files\\Microsoft Shared\\ink\\TabTip.exe";
ShellExecute(NULL, "open", strPath.c_str(), NULL, NULL, SW_SHOWNA);
} 关于书写板的消失:Win7中的方法。
void TerminateTabTip4Win7()
{
DWORD WM_DESKBAND_CLICKED = ::RegisterWindowMessage(_TEXT("TabletInputPanelDeskBandClicked"));
HWND wKB = ::FindWindow(_TEXT("IPTip_Main_Window"), NULL);
if(wKB != NULL && ::IsWindowVisible(wKB))
{
::PostMessage(wKB, WM_DESKBAND_CLICKED, 0, 0);
}
} Win8中的方法。
void TerminateTabTip4Win8()
{
HWND wKB = ::FindWindow(_TEXT("IPTip_Main_Window"), NULL);
if(wKB != NULL && ::IsWindowVisible(wKB))
{
::PostMessage(wKB, WM_SYSCOMMAND, SC_CLOSE, 0);
}
} Win8下书写板停靠代码
HWND wKB = ::FindWindow(_TEXT("IPTip_Main_Window"), NULL);
DWORD WM_DOCK_BUTTON_PRESSED = ::RegisterWindowMessage(_TEXT("IPTipDockButtonPressed"));
PostMessage(wKB, WM_DOCK_BUTTON_PRESSED, 0, 0);
posted on 2012-10-10 15:03
vic.MINg 阅读(1860)
评论(0) 编辑 收藏 引用 所属分类:
Visual C++