草庐IT

c++ - 如何以编程方式确定网卡是虚拟网卡?

在HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/WindowsNT/CurrentVersion/NetworkCards/下,我可以枚举我机器上安装的每个网卡。但是有些应用,尤其是虚拟机,会安装一些虚拟网卡。我的问题是:如何以编程方式确定网卡是虚拟网卡? 最佳答案 取决于虚拟机。如果它使用例如QEMU作为硬件仿真,将很难确定它不是“真实的东西”——充其量,你可能会注意到它比真实的东西应该更快,但你很难被插入知道这一点。当然,虚拟机也可能在虚拟机中安装了真实的网卡。所以你不能真正确定它是不是真实的,即使

windows - Win32 ASM 程序不向命令行打印任何内容

我正在尝试使用Win32API在汇编语言中编写一个简单的命令行程序。我编写了以下内容,使其编译并链接为零错误或警告,并从命令行启动它,但命令提示符下什么也没有出现。任何人都可以看出哪里出了问题,或者是什么让它说“HelloWorld!”在命令行?程序:;Block1.386.modelflat,stdcalloptioncasemap:none;Block2includewindows.incincludeuser32.incincludelibuser32.libincludekernel32.incincludelibkernel32.lib;Block3.dataszMsgdb"

c++ - RegisterClassEx 崩溃 - C++

我正在使用Windows库,我是新手,但我遇到了一个错误,我在谷歌上搜索了足够多,但我不知道发生了什么。这是我的代码:LRESULTCALLBACKWbWindow::st_wind_callback(HWNDhWnd,UINTMessage,WPARAMwParam,LPARAMlParam){//Codeforthecallbackstaticfunctionreturn0;}WbWMResultWbWindow::Create(){//Putintheclassvaluesforourwindowclass_window_instance.cbSize=sizeof(WNDCLA

c++ - 使用 PostMessage 与 SendNotifyMessage 广播到拥有的窗口

最近我发现了两个Win32API调用“PostMessage”和“SendNotifyMessage”之间的奇怪区别(至少在Win764位SP1上注意到了):另一个进程拥有的顶级窗口似乎没有接收到使用“PostMessage”广播的消息(HWND_BROADCAST),而它在其WndProc中接收到使用“SendNotifyMessage”广播的消息。发送的消息已在调用“RegisterWindowMessage”的帮助下注册。即使使用Spy++,在使用“PostMessage”时我也看不到消息到达。此外,我想提一下,如果我使用“PostMessage”将消息直接发送到特定的HWND,

Windows mobile 6 窗口注册失败

当我尝试部署代码(win32智能手机项目)时,注册失败错误弹出,应用程序退出。但是,如果我将wc.lpszMenuName的右侧更改为NULL,则在没有菜单的情况下一切正常。winmobile6不支持这个功能吗?intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPTSTRlpCmdLine,intnCmdShow){WNDCLASSwc;HWNDhwnd;MSGMsg;wc.style=0;wc.lpfnWndProc=WndProc;wc.cbClsExtra=0;wc.cbWndExtra=0;wc.hInsta

c - HMAC-MD5 与 CryptoApi

我已经采用了SHA1HMACexample来自微软的网站并根据这个stack-overflowpost进行了修改以及Internet上的其他一些建议,但是我无法生成正确的值。基本上我只是将SHA1替换为MD5CALG_SHA1->CALG_MD5。有人有工作示例吗?密码的CryptDeriveKey()使用什么算法(RC2或RC4)重要吗?谢谢!编辑:找到工作代码here 最佳答案 您的值与示例不同,因为您使用了不同的键:可以使用Linux获取示例值openssldgst-md5-hmackey命令。如果该命令的长度小于MD5哈希b

windows - Windows 服务的 DirectX 访问

DirectXAPI可以在session0上运行的Windows服务中使用吗?我知道服务无法显示GUI。我想调用不涉及GUI显示的API。API调用会失败吗?Windows8及更高版本值得关注。 最佳答案 我不太确定您想使用什么,但可以在Windows服务中使用DirectX数据类型。您所说的GUI调用将不会显示。取决于您调用的电话(示例):绘制到屏幕会失败保存DirectX数据类型的对象/在您的服务中使用DirectX数据类型与您可能会使用的其他变量进行交互。 关于windows-Wi

c++ - 具有重叠 I/O 的 FILE_FLAG_NO_BUFFERING - 字节读为零

我在使用带有重叠I/O的标志FILE_FLAG_NO_BUFFERING时观察到一个奇怪的行为。我调用了一系列ReadFile()函数调用,稍后使用GetOverlappedResult()查询它们的状态。我所说的奇怪行为是,即使文件句柄良好并且ReadFile()调用返回时没有任何错误(预期的ERROR_IO_PENDING除外),从GetOverlappedResult()调用返回的“字节读取”值是某些文件为零,每次我运行代码时,它都是一组不同的文件。如果我删除FILE_FLAG_NO_BUFFERING,事情就会开始正常工作,并且没有字节读取值为零。下面是我如何使用FILE_FL

windows - CreateCaret 颜色不对?

我创建了一个带有红色位图的插入符号,如下所示:代码:HBITMAPhbm=LoadBitmap(GetModuleHandle(NULL),MAKEINTRESOURCE(IDB_BITMAP2));::CreateCaret(hWnd_,hbm,0,0);::ShowCaret(hWnd_);但插入符原来是我的代码有什么问题吗,或者CreateCaret只是移动了位图中的颜色位? 最佳答案 根据我的测试,Windows会反转位图位。所以,红色(0xffff0000)变成青色(0xff00ffff);黑变白,白变黑。

c++ - AdjustTokenPrivileges 错误 6 - 句柄无效

请告知为什么下面的AdjustTokenPrivileges函数总是返回true,从而给出:“AdjustTokenPrivilegeserror6”(即无效句柄)?stackoverlow提示我解释得不够我不知道还有什么要补充的。我是C++的新手。HANDLEhToken;OpenProcessToken(GetCurrentProcess,TOKEN_ADJUST_PRIVILEGES,&hToken);SetPrivilege(hToken,L"SeBackupPrivilege",1);CloseHandle(hToken);BOOLSetPrivilege(HANDLEhTo