小编A.D*_*esh的帖子

HDD序列号在Windows XP,Vista和7中每2字节翻转一次,但在Windows 8中则不翻

我需要获取HDD序列号,以将其用作许可软件的密钥.我在这个url中使用了diskid32代码:http://www.winsim.com/diskid32/diskid32.html 它使用了DeviceIoControl Win32 API和IO控制代码IOCTL_STORAGE_QUERY_PROPERTY.

有效.但是,当我仔细检查硬盘本身上印刷的实际序列号时,我发现该号码的每2个字节都被翻转了.

一个简单的解决方案可能是简单地将字节翻转回来.它适用于Windows XP,Vista和7,但在Windows 8中不需要翻转!

我想知道在Windows XP,Vista和7中翻转字节的确切原因,以及为什么不在Windows 8中翻转.下一个Windows怎么

部分代码略有变化:

  int drive = 0;
  HANDLE hPhysicalDriveIOCTL = 0;
  char driveName [256];
  sprintf (driveName, "\\\\.\\PhysicalDrive%d", drive);
  //  Windows NT, Windows 2000, Windows XP - admin rights not required
  hPhysicalDriveIOCTL = CreateFile (driveName, 0,
                           FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
                           OPEN_EXISTING, 0, NULL);
  if (hPhysicalDriveIOCTL != INVALID_HANDLE_VALUE)
  {
     _STORAGE_PROPERTY_QUERY query;
     DWORD cbBytesReturned = 0; …
Run Code Online (Sandbox Code Playgroud)

ioctl windows-8 deviceiocontrol

14
推荐指数
1
解决办法
2937
查看次数

在文本编辑器中支持插入符号移动的IAccesible接口的正确解决方案是什么?

我想从头开始实现一个支持IAccessible接口的文本编辑器.我正在使用MFC和Win32 API.

当标记文本编辑器(如记事本)中的插入符号位置发生变化时,插入符号移动的相应字母,单词或行将由Narrator,JAWS等客户端工具发音.我不知道如何实现此功能.我搜索互联网并阅读MSDN文档.

我在http://msdn.microsoft.com/en-us/library/dd317978.aspxhttp://msdn.microsoft.com/en-us/library/dd373892.aspx上读到客户端通过AccessibleObjectFromWindow方法请求插入符号从OS,OS将WM_GETOBJECT发送到应用程序.WM_GETOBJECT消息在相应的窗口回调函数中接收,但是插入符号移动事件的hWnd为NULL.我检查了线程消息队列,但是在线程消息队列中根本没有收到WM_GETOBJECT.

一种方法虽然有效,但不是正确的解决方案

NotifyWinEvent( EVENT_OBJECT_NAMECHANGE, hwnd, OBJID_CLIENT, CHILDID_SELF )
Run Code Online (Sandbox Code Playgroud)

当插入符被用户移动时 当客户端要求更改名称时,我会返回与插入符号移动相关的相应文本.

HRESULT  CMyEditor::get_accName(VARIANT varChild, BSTR *pszName)
{
   *pszName = SysAllocString( L"CORESPONDING TEXT TO THE CARET MOVEMENT" );
   return S_OK;
}
Run Code Online (Sandbox Code Playgroud)

windows winapi mfc iaccessible ui-automation

13
推荐指数
1
解决办法
1186
查看次数

如何使用Windows 8 RT的开发人员许可证手动签署exe文件

我为Windows 8 RT制作了一个exe文件.但是当我想运行时,显示一条错误消息:

"Windows cannot verify the digital signature for this file. ..."
Run Code Online (Sandbox Code Playgroud)

我获得了Windows 8 RT开发人员许可证.有了这个许可,visual studio 2012可以在我的表面远程部署和运行metro应用程序.

但我想使用signtool.exe手动签署我的exe文件:

signtool.exe sign -s CertStoreName -n "subject name" C:\mytest.exe
Run Code Online (Sandbox Code Playgroud)

我的问题是我不知道我的开发者许可证的"CertStoreName""主题名称".我怎样才能得到这些名字.

code-signing certificate signtool windows-8 visual-studio-2012

7
推荐指数
1
解决办法
1856
查看次数

如何在Qt 5中声明New-Signal-Slot语法作为参数来运行

如何将信号或槽(Qt 5中的成员函数,新语法)作为参数传递给函数,然后调用connect

例如,我想写一个等待信号的函数.

注意:它不是编译 - PointerToMemberFunction是我的问题.

bool waitForSignal(const QObject* sender, PointerToMemberFunction??? signal, int timeOut = 5000/*ms*/)
{
  if (sender == nullptr)
    return true;
  bool isTimeOut = false;
  QEventLoop loop;
  QTimer timer;
  timer.setSingleShot(true);
  QObject::connect(&timer, &QTimer::timeout,
    [&loop, &isTimeOut]()
    {
      loop.quit();
      isTimeOut = true;
    });
  timer.start(timeOut);
  QObject::connect(sender, signal, &loop, &QEventLoop::quit);
  loop.exec();
  timer.stop();
  return !isTimeOut;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法将信号列表传递给此函数进行连接?

c++ qt signals-slots qt5

6
推荐指数
1
解决办法
1642
查看次数

如何确定 Qt 5 中的 QtWebEngine 在运行时使用的是哪个 chromium 版本?

我在 Qt 5 中找不到任何函数来确定QtWebEngine.

我不想在代码中硬编码 chromium 版本,因为我经常更新我的应用程序,并且每个版本中的 chromium 版本通常都会更改。而且 Qt 是向后兼容的,可以在不更新我的应用程序的情况下更新它。

qt chromium qt5 qtwebengine

6
推荐指数
1
解决办法
3126
查看次数

从QString获取"const wchar_t*"的最快方法是什么?

我想将QString变量传递给带const wchar_t*参数的函数.

安全解决方案是:

void foo(const wchar_t*);
QString x = "test";
foo(x.toStdWString().c_str());
Run Code Online (Sandbox Code Playgroud)

但它有转换成的开销wstring.有没有更快的解决方案?

这个解决方案怎么样?它安全便携吗?

foo(reinterpret_cast<const wchar_t*>(x.constData()));
Run Code Online (Sandbox Code Playgroud)

c++ qstring qt wchar-t

5
推荐指数
1
解决办法
1902
查看次数

如何设置变量,然后在命令提示符的同一行中使用它

我想设置一个变量%p%,然后在CMD的同一行中使用它.

例如:

set p=notepad.exe&%p%
Run Code Online (Sandbox Code Playgroud)

这不起作用.但是%p%设置为下一行.因此,如果我第二次执行此行,它会起作用.

我怎样才能%p%在同一行中使用?

cmd batch-file

5
推荐指数
1
解决办法
373
查看次数