Win7下窗口移出桌面范围 无法还原情况的解决
2015-06-08 16:47
537 查看
我用的双显示器,经常有窗口不小心拖出界,就拖不回来了。以前不是win7系统,可以在程序取得焦点后,按快捷键alt+space,再按M,进入移动状态,给它移出来。可惜win7也不支持这个操作。
最近svn更新窗口又被拖出界了,网上找不到解决方式,写了几行vc程序来处理这问题,记录在这里,万一再遇到好处理。
程序运行后,会停止在黑窗口上,但焦点已经移到了所要找的窗口,并启用了移动的模式。按住鼠标拖出来界面即可。如果拖不出来,可以多试几次,或把目标窗口关上再重开看下。
问题又变严重了,mstsc远程的窗口不见了,用上面方法也不奏效。修改使用SetWindowPos函数:
这样直接把窗口移到左上角去。
最近svn更新窗口又被拖出界了,网上找不到解决方式,写了几行vc程序来处理这问题,记录在这里,万一再遇到好处理。
// findwindow1.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "findwindow1.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // 唯一的应用程序对象 CWinApp theApp; using namespace std; int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) { int nRetCode = 0; HMODULE hModule = ::GetModuleHandle(NULL); if (hModule != NULL) { // 初始化 MFC 并在失败时显示错误 if (!AfxWinInit(hModule, NULL, ::GetCommandLine(), 0)) { // TODO: 更改错误代码以符合您的需要 _tprintf(_T("错误: MFC 初始化失败\n")); nRetCode = 1; } else { // TODO: 在此处为应用程序的行为编写代码。 } } else { // TODO: 更改错误代码以符合您的需要 _tprintf(_T("错误: GetModuleHandle 失败\n")); nRetCode = 1; } ///上面是自动生成的代码,下面是正式代码 CString str=_T("Update Finished!"); LPCWSTR lpcwStr = str.AllocSysString(); HWND hWnd = ::FindWindowW(NULL,lpcwStr); if(hWnd!=NULL) { ::SendMessage(hWnd,WM_SYSCOMMAND,SC_MOVE,0); } return nRetCode; }
程序运行后,会停止在黑窗口上,但焦点已经移到了所要找的窗口,并启用了移动的模式。按住鼠标拖出来界面即可。如果拖不出来,可以多试几次,或把目标窗口关上再重开看下。
问题又变严重了,mstsc远程的窗口不见了,用上面方法也不奏效。修改使用SetWindowPos函数:
if(hWnd!=NULL) { ::SetWindowPos(hWnd,HWND_NOTOPMOST,0,0,400,400,SWP_NOMOVE||SWP_NOSIZE); }
这样直接把窗口移到左上角去。
相关文章推荐
- Js数组排序函数sort()介绍
- 动态获取UIWebView高度
- Eclipse安装颜色主题,个性化你的IDE,让你的IDE焕然一新
- Unity3D面试题汇总
- 非阻塞模式WinSock编程入门
- 机器学习--支持矢量机(1)
- 机器学习--支持矢量机(2)
- 拦截导弹
- 最长子序列
- 小胖说事17--------iOS应用内支付(IAP)的那些坑建测试账号流程!
- linux系统的休眠与唤醒简介
- 膝盖中了一箭
- String StringBuffer StringBuilder之间的区别
- leetcode——1
- 【LeetCode】23.Merge k Sorted Lists
- Java加密技术(三)对称加密算法PBE
- 从Java的jar文件中读取数据的方法
- Java加密技术(四)非对称加密算法RSA
- Android 圆形/圆角图片的方法
- PHP array_slice() 函数分页