因为文件共享不安全,所以你不能连接到文件共享。此共享需要过时的 SMB1 协议,而此协议是不安全的,可能会使你的系统遭受攻击。 你的系统需要 SMB2 或更高版本。有关如何解决此问题的信息。
QT .vcxproj 有时候 MOC 会同步失败。
Unresolved external symbol "public: virtual struct QMetaObject const * __thiscall Parent
造成问题是因为 ClInclude 和 QtMoc 的区别。
<ClInclude Include="..\src\split\SplitFileProgressDlg.h" />
<QtMoc Include="..\src\split\SplitFileProgressDlg.h" />
If you're using Visual Studio, delete the line Q_OBJECT
from the header file, save the file,
put Q_OBJECT
back into the header file, save the file again.
This should generate the moc_*
file and should build and link correctly.
QTimer 内部是通过系统 SetTimer 函数实现,每次调用 SetTimer 会消耗一个用户句柄(https://docs.microsoft.com/en-us/windows/win32/sysinfo/user-objects),单个进程可以使用的用户句柄数默认为 1 万,超过后,很多系统 api 会调用失败,这时会触发 Qt 抛异常,导致程序崩溃。
使用 QTimer 时,要尽可能及时释放,且不能同时启动过多
from A collection of scripts for activating Microsoft products using HWID / KMS38 / Online KMS activation methods with a focus on open-source code, less antivirus detection and user-friendliness. from
MAS_1.4_AIO_CRC32_9A7B5B05.cmd
\\10.12.36.171\10.20.220.58\vmware\windows11_22000_132_x64\
111
111
http://emptyloop.com/unlocker/
base62x Base64 编码若无特别说明,通常约定非 ASCII 字符按照 UTF-8 字符集进行编码处理。 由于标准的 Base64 编码后可能出现字符 + 和 /,在 URL 中就不能直接作为参数,所以又有一种 "url safe" 的 base64 编码,其实就是把字符 + 和 / 分别变成 - 和 _。
由于 = 字符也可能出现在 Base64 编码中,但 = 用在 URL、Cookie 里面会造成歧义,所以,很多 Base64 编码后会把 = 去掉。
与 Base64 相比,Base32 具有许多优点 from:
主窗口在副屏幕,DoModal 弹窗会强制限制到主界面边缘,非常诡异。 后来发现迅雷也有这个 bug,看来迅雷也用了 bkwin 代码。SOUI 等从 bkwin 衍生出来的都存在这个问题(最新版本就不清楚了)。
BOOL ThisCenterWindow(HWND hWndCenter = NULL) throw()
{
ATLASSERT(::IsWindow(m_hWnd));
// determine owner window to center against
DWORD dwStyle = GetStyle();
if (hWndCenter == NULL)
{
if (dwStyle & WS_CHILD)
hWndCenter = ::GetParent(m_hWnd);
else
hWndCenter = ::GetWindow(m_hWnd, GW_OWNER);
}
// get coordinates of the window relative to its parent
RECT rcDlg;
::GetWindowRect(m_hWnd, &rcDlg);
RECT rcArea;
RECT rcCenter;
HWND hWndParent;
if (!(dwStyle & WS_CHILD))
{
// don't center against invisible or minimized windows
if (hWndCenter != NULL)
{
DWORD dwStyleCenter = ::GetWindowLong(hWndCenter, GWL_STYLE);
if (!(dwStyleCenter & WS_VISIBLE) || (dwStyleCenter & WS_MINIMIZE))
hWndCenter = NULL;
}
// center within screen coordinates
::SystemParametersInfo(SPI_GETWORKAREA, NULL, &rcArea, NULL);
if (hWndCenter == NULL)
rcCenter = rcArea;
else
::GetWindowRect(hWndCenter, &rcCenter);
}
else
{
// center within parent client coordinates
hWndParent = ::GetParent(m_hWnd);
ATLASSERT(::IsWindow(hWndParent));
::GetClientRect(hWndParent, &rcArea);
ATLASSERT(::IsWindow(hWndCenter));
::GetClientRect(hWndCenter, &rcCenter);
::MapWindowPoints(hWndCenter, hWndParent, (POINT*)&rcCenter, 2);
}
int DlgWidth = rcDlg.right - rcDlg.left;
int DlgHeight = rcDlg.bottom - rcDlg.top;
// find dialog's upper left based on rcCenter
int xLeft = (rcCenter.left + rcCenter.right) / 2 - DlgWidth / 2;
int yTop = (rcCenter.top + rcCenter.bottom) / 2 - DlgHeight / 2;
// if the dialog is outside the screen, move it inside
/** 这段代码,多屏幕的时候,就非常尴尬了,注释掉即可。
if (xLeft < rcArea.left)
xLeft = rcArea.left;
else if (xLeft + DlgWidth > rcArea.right)
xLeft = rcArea.right - DlgWidth;
if (yTop < rcArea.top)
yTop = rcArea.top;
else if (yTop + DlgHeight > rcArea.bottom)
yTop = rcArea.bottom - DlgHeight;
*/
// map screen coordinates to child coordinates
return ::SetWindowPos(m_hWnd, NULL, xLeft, yTop, -1, -1,
SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE);
}
当疑似用户是 ghost 修改版本系统导致问题时,win7 / win10 通用修复命令(管理员权限 cmd 内执行,需要用户侧网络正常):
Dism /Online /Cleanup-Image /RestoreHealth
DriverStoreExplorer 最新版下载: https://github.com/lostindark/DriverStoreExplorer/releases
设置 命令行 utf8, chcp 65001
。 shutdown -r -t 0
。
https://jingyan.baidu.com/article/9c69d48fbd146713c9024e04.html 开机后磁盘占用高,是因为 windows 8.1 默认启用了 superfetch 服务。
win8 硬盘占用率 100% 怎么办 | win8 磁盘占用率过高的五种解决方法
进入“计算机管理”后,展开“服务和应用程序”,点击“服务”,然后在右侧的服务列表里分别找到“HomeGroup Listener”与“HomeGroup Provider”服务,将其双击打开;
之后会弹出属性窗口,将“启动类型”设置为“禁用”,在服务状态下点击“停止”按钮,然后点击“确定”按钮进行保存,两项服务都禁用后就可以关闭家庭组了。
打开性能选项后,切换“高级”选项卡,点击虚拟内存处的“更改”按钮,在性能内存设置中,将“自动管理驱动器的分页文件大小”勾取消,选择“无分页文件”,然后点击“确定”;
点击“更改当前不可用的设置”,然后把“启用快速启动(推荐)”前面的勾取消,然后“保存设置”即可。
来到计算机管理后,在左侧展开“服务和应用程序”,点击“服务”,然后在右侧的服务列表里找到“Superfetch”服务,双击打开;
在弹出属性窗口,将“启动类型”设置为“禁用”,然后在服务状态下方点击“停止”按钮,然后“确定”即可。
切换到“性能”选项卡,然后点击最下面的“打开资源监视器”; 查看“磁盘活动进程”下的名称和读、写的速度,看哪些进程在频繁读写;
C:\Users\qzz\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets
将后缀名改为 .jpg 结尾即可查看。
这里要非常明确,搞不好就乱码了。
WritePrivateProfileString
, GetPrivateProfileString
,
If the file was created using Unicode characters,
the function writes Unicode characters to the file.
Otherwise, the function writes ANSI characters.
from D Profile 是一个 win32/64 CPU,memory 性能分析工具:https://github.com/xwlan/dprofiler D Profiler a lightweight, low overhead CPU Memory IO and Lock profiler for Windows x86/x64. Build in cmd.exe, run command as: msbuild dprofiler.sln