这篇教程C++ AttachThreadInput函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中AttachThreadInput函数的典型用法代码示例。如果您正苦于以下问题:C++ AttachThreadInput函数的具体用法?C++ AttachThreadInput怎么用?C++ AttachThreadInput使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了AttachThreadInput函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: bring_to_topvoid bring_to_top(GtkWidget *win){#ifdef __WIN32__ HWND hWnd; int nTargetID, nForegroundID; BOOL res; hWnd = GDK_WINDOW_HWND (win->window); /* From http://techtips.belution.com/ja/vc/0012/ */ nForegroundID = GetWindowThreadProcessId(GetForegroundWindow(), NULL); nTargetID = GetWindowThreadProcessId(hWnd, NULL ); AttachThreadInput(nTargetID, nForegroundID, TRUE ); // SPI_GETFOREGROUNDLOCKTIMEOUT will be undefined. Why ? /* SystemParametersInfo( SPI_GETFOREGROUNDLOCKTIMEOUT,0,&sp_time,0); SystemParametersInfo( SPI_SETFOREGROUNDLOCKTIMEOUT,0,(LPVOID)0,0); SetForegroundWindow(hWnd); SystemParametersInfo( SPI_SETFOREGROUNDLOCKTIMEOUT,0,sp_time,0); */ res = SetForegroundWindow(hWnd); AttachThreadInput(nTargetID, nForegroundID, FALSE); if(!res){ SetFocus(hWnd); }#else gdk_window_show(GTK_WIDGET(win)->window); gdk_window_focus(GTK_WIDGET(win)->window, gtk_get_current_event_time());#endif}
开发者ID:fujii,项目名称:ebview,代码行数:35,
示例2: SetForegroundWindowInternal// http://www.codeproject.com/Tips/76427/How-to-bring-window-to-top-with-SetForegroundWindovoid SetForegroundWindowInternal(HWND hWnd){ SetWindowPos(hWnd,HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); SetWindowPos(hWnd,HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); SetWindowPos(hWnd,HWND_NOTOPMOST, 0, 0, 0, 0, SWP_SHOWWINDOW | SWP_NOMOVE | SWP_NOSIZE); return; //relation time of SetForegroundWindow lock DWORD lockTimeOut = 0; HWND hCurrWnd = GetForegroundWindow(); DWORD dwThisTID = GetCurrentThreadId(), dwCurrTID = GetWindowThreadProcessId(hCurrWnd, 0); //we need to bypass some limitations from Microsoft :) if (dwThisTID != dwCurrTID) { AttachThreadInput(dwThisTID, dwCurrTID, TRUE); SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0, &lockTimeOut, 0); SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, 0, SPIF_SENDWININICHANGE | SPIF_UPDATEINIFILE); AllowSetForegroundWindow(ASFW_ANY); } SetForegroundWindow(hWnd); if (dwThisTID != dwCurrTID) { SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, (PVOID)lockTimeOut, SPIF_SENDWININICHANGE | SPIF_UPDATEINIFILE); AttachThreadInput(dwThisTID, dwCurrTID, FALSE); }}
开发者ID:Dergash,项目名称:homm3tools,代码行数:32,
示例3: activateGame XBool activateGame(HWND h) { //方案1://不行 //return BringWindowToTop(XEG.getHWND()); //方案2://可以 //typedef void (WINAPI *PROCSWITCHTOTHISWINDOW) (HWND, BOOL); //PROCSWITCHTOTHISWINDOW SwitchToThisWindow; //HMODULE hUser32 = GetModuleHandle("user32"); //SwitchToThisWindow = ( PROCSWITCHTOTHISWINDOW)GetProcAddress(hUser32, "SwitchToThisWindow"); //if(SwitchToThisWindow == NULL) return false; ////接下来只要用任何现存窗口的句柄调用这个函数即可,第二个参数指定如果窗口极小化,是否恢复其原状态。 //SwitchToThisWindow(XEG.getHWND(), TRUE); //return true; //方案3://可行 HWND hCurWnd = GetForegroundWindow(); DWORD dwMyID = GetCurrentThreadId(); DWORD dwCurID = GetWindowThreadProcessId(hCurWnd, NULL); AttachThreadInput(dwCurID, dwMyID, TRUE); SetForegroundWindow(h); AttachThreadInput(dwCurID, dwMyID, FALSE); return true; //方法4://可行 //ShowWindow(XEG.getHWND(),SW_SHOWNA);//简单的显示主窗口完事儿 //SetActiveWindow(XEG.getHWND()); //SetForegroundWindow(XEG.getHWND()); ////this->SetWindowPos(this,LOWORD(lParam),HIWORD(lParam),c.Width(),c.Height(),SWP_NOACTIVATE); //BringWindowToTop(XEG.getHWND()); //return true; }
开发者ID:xiajiaonly,项目名称:XEffect2D,代码行数:29,
示例4: set_foregroundstatic DWORD set_foreground(HWND hwnd){ HWND hwnd_fore; DWORD set_id, fore_id, ret; char win_text[1024]; hwnd_fore = GetForegroundWindow(); GetWindowTextA(hwnd_fore, win_text, 1024); set_id = GetWindowThreadProcessId(hwnd, NULL); fore_id = GetWindowThreadProcessId(hwnd_fore, NULL); trace("/"%s/" %p %08x hwnd %p %08x/n", win_text, hwnd_fore, fore_id, hwnd, set_id); ret = AttachThreadInput(set_id, fore_id, TRUE); trace("AttachThreadInput returned %08x/n", ret); ret = ShowWindow(hwnd, SW_SHOWNORMAL); trace("ShowWindow returned %08x/n", ret); ret = SetWindowPos(hwnd, HWND_TOPMOST, 0,0,0,0, SWP_NOSIZE|SWP_NOMOVE); trace("set topmost returned %08x/n", ret); ret = SetWindowPos(hwnd, HWND_NOTOPMOST, 0,0,0,0, SWP_NOSIZE|SWP_NOMOVE); trace("set notopmost returned %08x/n", ret); ret = SetForegroundWindow(hwnd); trace("SetForegroundWindow returned %08x/n", ret); Sleep(250); AttachThreadInput(set_id, fore_id, FALSE); return ret;}
开发者ID:hoangduit,项目名称:reactos,代码行数:25,
示例5: DoFocusvoid DoFocus(BOOL bUseCurrent,HWND hwndFocus){ HWND hwndEdit; char WinClass[256]; DWORD OtherAppThreadID; DWORD OtherAppProcessID; DWORD TrayThreadID; if(bUseCurrent) { TrayThreadID=GetCurrentThreadId(); hwndEdit=hwndFocus; GetClassName(hwndEdit,WinClass,255); OtherAppThreadID = GetWindowThreadProcessId( hwndEdit, &OtherAppProcessID); AttachThreadInput( TrayThreadID, OtherAppThreadID, TRUE ); // We can key off WinClass if something else // needs to be done SetFocus(hwndEdit); AttachThreadInput( TrayThreadID, OtherAppThreadID, FALSE ); }}
开发者ID:ysangkok,项目名称:pgp-win32-6.5.8,代码行数:27,
示例6: SetForegroundWindowInternalBOOL SetForegroundWindowInternal(HWND hWnd) { BOOL ret = false; if (!IsWindow(hWnd)) return ret; //relation time of SetForegroundWindow lock DWORD lockTimeOut = 0; HWND hCurrWnd = GetForegroundWindow(); DWORD dwThisTID = GetCurrentThreadId(), dwCurrTID = GetWindowThreadProcessId(hCurrWnd, 0); //we need to bypass some limitations from Microsoft :) if (dwThisTID != dwCurrTID) { AttachThreadInput(dwThisTID, dwCurrTID, TRUE); SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0, &lockTimeOut, 0); SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, 0, SPIF_SENDWININICHANGE | SPIF_UPDATEINIFILE); AllowSetForegroundWindow(ASFW_ANY); } ret = SetForegroundWindow(hWnd); if (dwThisTID != dwCurrTID) { SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, (PVOID)lockTimeOut, SPIF_SENDWININICHANGE | SPIF_UPDATEINIFILE); AttachThreadInput(dwThisTID, dwCurrTID, FALSE); } return ret;}
开发者ID:morrisslutsky,项目名称:NowUGo,代码行数:31,
示例7: WaitForReleaseVkKeysvoid WaitForReleaseVkKeys(DWORD dwThreadCurrent, DWORD dwThreadTarget, DWORD dwTimeout){ DWORD dwStart=GetTickCount(); BYTE lpKeyState[256]; int i; Loop: if (dwTimeout == INFINITE || GetTickCount() - dwStart < dwTimeout) { AttachThreadInput(dwThreadCurrent, dwThreadTarget, FALSE); if (AttachThreadInput(dwThreadCurrent, dwThreadTarget, TRUE)) { Sleep(0); if (GetKeyboardState(lpKeyState)) { for (i=0; i < 256; ++i) { if (lpKeyState[i] & 0x80) goto Loop; } } } }}
开发者ID:embassy,项目名称:AkelPad,代码行数:26,
示例8: _SetForegroundWindowEx//------------------------------------------------------------------------------// //------------------------------------------------------------------------------COMMONEXPORT BOOL _SetForegroundWindowEx ( HWND hWnd ){ if (hWnd == NULL) return FALSE; // determine current foreground window HWND hWndForeground = ::GetForegroundWindow (); if (hWndForeground == NULL) return ::SetForegroundWindow (hWnd); // check whether it is able to pump messages to avoid deadlocks DWORD dwResult = 0; if ( SendMessageTimeout ( hWndForeground, WM_NULL, 0, 0, SMTO_NORMAL, 1000, &dwResult ) == 0 ) return FALSE; int iTID = ::GetWindowThreadProcessId ( hWnd, 0 ); int iForegroundTID = ::GetWindowThreadProcessId ( hWndForeground, 0 ); AttachThreadInput (iTID, iForegroundTID, TRUE); ::SetForegroundWindow (hWnd); AttachThreadInput (iTID, iForegroundTID, FALSE); return TRUE;}
开发者ID:hackshields,项目名称:antivirus,代码行数:31,
示例9: EnsureValidHRESULT CSysProgressDlg::ShowModeless(HWND hWndParent, BOOL immediately){ EnsureValid(); m_hWndProgDlg = nullptr; if (!IsValid()) return E_FAIL; m_hWndParent = hWndParent; auto winId = GetWindowThreadProcessId(m_hWndParent, 0); auto threadId = GetCurrentThreadId(); if (winId != threadId) AttachThreadInput(winId, threadId, TRUE); m_hWndFocus = GetFocus(); if (winId != threadId) AttachThreadInput(winId, threadId, FALSE); HRESULT hr = m_pIDlg->StartProgressDialog(hWndParent, nullptr, m_dwDlgFlags, nullptr); if(FAILED(hr)) return hr; ATL::CComPtr<IOleWindow> pOleWindow; HRESULT hr2 = m_pIDlg.QueryInterface(&pOleWindow); if(SUCCEEDED(hr2)) { hr2 = pOleWindow->GetWindow(&m_hWndProgDlg); if(SUCCEEDED(hr2)) { if (immediately) ShowWindow(m_hWndProgDlg, SW_SHOW); } } m_isVisible = true; return hr;}
开发者ID:tribis,项目名称:TortoiseGit,代码行数:32,
示例10: bringToFrontvoidbringToFront(){#if defined(Q_WS_X11) { qDebug() << Q_FUNC_INFO; QWidget* widget = tomahawkWindow(); if ( !widget ) return; widget->show(); widget->activateWindow(); widget->raise(); WId wid = widget->winId(); NETWM::init(); XEvent e; e.xclient.type = ClientMessage; e.xclient.message_type = NETWM::NET_ACTIVE_WINDOW; e.xclient.display = QX11Info::display(); e.xclient.window = wid; e.xclient.format = 32; e.xclient.data.l[0] = 2; e.xclient.data.l[1] = QX11Info::appTime(); e.xclient.data.l[2] = 0; e.xclient.data.l[3] = 0l; e.xclient.data.l[4] = 0l; XSendEvent( QX11Info::display(), RootWindow( QX11Info::display(), DefaultScreen( QX11Info::display() ) ), False, SubstructureRedirectMask | SubstructureNotifyMask, &e ); }#elif defined(Q_WS_WIN) { qDebug() << Q_FUNC_INFO; QWidget* widget = tomahawkWindow(); if ( !widget ) return; widget->show(); widget->activateWindow(); widget->raise(); WId wid = widget->winId(); HWND hwndActiveWin = GetForegroundWindow(); int idActive = GetWindowThreadProcessId(hwndActiveWin, NULL); if ( AttachThreadInput(GetCurrentThreadId(), idActive, TRUE) ) { SetForegroundWindow( wid ); SetFocus( wid ); AttachThreadInput(GetCurrentThreadId(), idActive, FALSE); } }#endif}
开发者ID:demelziraptor,项目名称:tomahawk,代码行数:57,
示例11: SetFocusTClockMain/*------------------------------------------------ set keyboard focus to the main window forcedly--------------------------------------------------*/void SetFocusTClockMain(HWND hwnd){ DWORD pid, curthread, mythread; curthread = GetWindowThreadProcessId(GetForegroundWindow(), &pid); mythread = GetCurrentThreadId(); AttachThreadInput(mythread, curthread, TRUE); SetForegroundWindow(hwnd); SetFocus(hwnd); AttachThreadInput(mythread, curthread, FALSE);}
开发者ID:k-takata,项目名称:TClockLight,代码行数:14,
示例12: GetForegroundWindowHRESULT VegasFSRender::writeData(ISfProgress* progress) { BOOL useAudio = (m_pIAudioStream && m_pTemplate->pAudioTemplate && m_pTemplate->pAudioTemplate->cNumAStreams); BOOL useVideo = (m_pIVideoStream && m_pTemplate->pVideoTemplate && m_pTemplate->pVideoTemplate->cNumVStreams); if (!useVideo) return SF_E_NOVIDEO; HWND activewnd = GetForegroundWindow(); DWORD threadid = GetWindowThreadProcessId(activewnd, NULL); AttachThreadInput(GetCurrentThreadId(), threadid, TRUE); ZeroMemory(&FfpHeader, NUMBYTES(FfpHeader)); LPTSTR pszFileName;#ifdef UNICODE pszFileName = m_szFileName;#else TCHAR szFileName[MAX_PATH]; SfMBFromWC(szFileName, m_szFileName, MAX_PATH); pszFileName = szFileName;#endif HRESULT hr = S_OK; hr = m_pIVideoStream->GetFrameCount(&FfpHeader.Video.cfTotal); hr = m_pIVideoStream->GetFrameRate(&FfpHeader.Video.dFPS); FfpHeader.Video.ntLength = SfVideo_FramesToTime( FfpHeader.Video.cfTotal, FfpHeader.Video.dFPS); FfpHeader.Video.bih = *m_pTemplate->pVideoTemplate->pbihCodec; FfpHeader.Video.cbFrameSize = FSDibImageBytes(&FfpHeader.Video.bih); if (useAudio) { hr = m_pIAudioStream->GetSampleCount(&FfpHeader.Audio.ccTotal); FfpHeader.Audio.wfx = m_pTemplate->pAudioTemplate->wfx; hr = m_pIAudioStream->GetStreamLength(&FfpHeader.Audio.ntLength); FfpHeader.Audio.ntLength = SfAudio_CellsToTime(FfpHeader.Audio.ccTotal, FfpHeader.Audio.wfx.nSamplesPerSec); } Init(!!useAudio, FfpHeader.Audio.wfx.nSamplesPerSec, FfpHeader.Audio.wfx.wBitsPerSample, FfpHeader.Audio.wfx.nChannels, (DWORD)FfpHeader.Video.cfTotal, FfpHeader.Video.dFPS, FfpHeader.Video.bih.biWidth, FfpHeader.Video.bih.biHeight, activewnd, pszFileName); hr = S_OK; if (!Run()) hr = SF_E_CANCEL; EnableWindow(activewnd, TRUE); SetForegroundWindow(activewnd); AttachThreadInput(GetCurrentThreadId(), threadid, FALSE); return hr;}
开发者ID:spylfy,项目名称:frame-server,代码行数:54,
示例13: fsSetForegroundWindowvoid fsSetForegroundWindow (HWND hWnd){ HWND hFor = GetForegroundWindow (); int iMyTID = GetCurrentThreadId (); int iCurrTID = GetWindowThreadProcessId (hFor, NULL); AttachThreadInput (iMyTID, iCurrTID, TRUE); SetForegroundWindow (hWnd); AttachThreadInput (iMyTID, iCurrTID, FALSE);}
开发者ID:HackLinux,项目名称:Free-Download-Manager-vs2010,代码行数:12,
示例14: handle_task_timer void handle_task_timer(void) { KillTimer(m_hwnd, TASK_RISE_TIMER); if (NULL == task_over) return; DWORD ThreadID1 = GetWindowThreadProcessId(GetForegroundWindow(), NULL); DWORD ThreadID2 = GetCurrentThreadId(); if (ThreadID1 != ThreadID2) { AttachThreadInput(ThreadID1, ThreadID2, TRUE); SetForegroundWindow(m_hwnd); AttachThreadInput(ThreadID1, ThreadID2, FALSE); } PostMessage(GetBBWnd(), BB_BRINGTOFRONT, 0, (LPARAM)task_over); }
开发者ID:Jmos,项目名称:bbclean-xzero450,代码行数:13,
示例15: GetWindowThreadProcessIdvoid UIScreenCaptureMgr::forceForgroundWindow(__in HWND hWnd){ HWND hForegroundWnd = ::GetForegroundWindow(); DWORD dwPid = GetWindowThreadProcessId(hForegroundWnd, NULL); if (!AttachThreadInput(dwPid, GetCurrentThreadId(), TRUE) || !::SetForegroundWindow(hWnd) || !::BringWindowToTop(hWnd)) { return; } SwitchToThisWindow(hWnd, TRUE); AttachThreadInput(dwPid, GetCurrentThreadId(), FALSE);}
开发者ID:heavenopener,项目名称:TeamTalk,代码行数:14,
示例16: SetForegroundWindowExvoid SetForegroundWindowEx(HWND hWnd){ // Attach foreground window thread to our thread const DWORD foreGroundID = GetWindowThreadProcessId(GetForegroundWindow(), NULL); const DWORD currentID = GetCurrentThreadId(); AttachThreadInput(foreGroundID, currentID, TRUE); // Do our stuff here HWND lastActivePopupWnd = GetLastActivePopup(hWnd); SetForegroundWindow(lastActivePopupWnd); // Detach the attached thread AttachThreadInput(foreGroundID, currentID, FALSE);}
开发者ID:stream009,项目名称:launchy,代码行数:14,
示例17: WindowUtil_setFocusBOOL WindowUtil_setFocus(HWND hwnd) { BOOL ret; // Attach foreground window thread AttachThreadInput(GetWindowThreadProcessId(GetForegroundWindow(), NULL), GetCurrentThreadId(), TRUE); ret = SetForegroundWindow(hwnd); SetFocus(hwnd); // Detach the attached thread AttachThreadInput(GetWindowThreadProcessId(GetForegroundWindow(), NULL), GetCurrentThreadId(), FALSE); return ret;}
开发者ID:gvsurenderreddy,项目名称:openulteo,代码行数:14,
示例18: BringWindowToTopvoid BringWindowToTop(HWND hwnd ,DWORD type){ DWORD dwFGThreadId, dwFGProcessId,dwThisThreadId; HWND hwndForeground = ::GetForegroundWindow(); dwFGThreadId = GetWindowThreadProcessId(hwndForeground, &dwFGProcessId); dwThisThreadId = GetCurrentThreadId(); AttachThreadInput(dwThisThreadId, dwFGThreadId,TRUE); if(type != NULL) { ::ShowWindow(hwnd,type); } ::SetForegroundWindow(hwnd); ::BringWindowToTop(hwnd); AttachThreadInput(dwThisThreadId, dwFGThreadId,FALSE);}
开发者ID:linjianbjfu,项目名称:PlayBox,代码行数:15,
|