草庐IT

c++ - 如何使用 C 终止远程计算机上的进程?

平台:Windows语言:C/C++我需要一种方法来终止远程计算机上的进程,它实际上是一个对SERVICE_STOP命令没有响应的远程服务,有人知道我该怎么做吗? 最佳答案 要终止远程机器中的进程,您可以使用Win32_ProcessWMI类和Terminate方法和停止远程服务,您可以使用Win32_Service和StopService方法。这是一个C++示例:#include"stdafx.h"#define_WIN32_DCOM#includeusingnamespacestd;#include#include#pragma

c++ - ShellExecuteW 在 Windows 8.1 上运行不正常?

我在Windows8.1上调用标准的ShellExecuteW调用来打开PPS(powerpoint幻灯片)文件。这在Windows7上工作得很好。在Windows8.1上。它报告“没有关联的程序可以打开文件”。当然,文件关联已设置,如果文件已保存并从资源管理器运行(双击),它会打开得很好。我还尝试更改关联并关联另一个程序,然后关联回PPS查看器,但没有任何改进。它只是不适用于W8.1,但同样的调用适用于早期的Windows。谁能告诉我这里可能出了什么问题?用于打开文件的代码非常简单,我没有发现任何错误:HINSTANCEhinst=ShellExecuteW(NULL,L"open"

c++ - 如何与 PlaySound 同时执行其他功能?

我正在编写一个C++Windows应用程序,它需要播放从数组中随机选择的歌曲,并且用户需要能够通过单击按钮播放列表中的另一首歌曲。你会如何停止第一首歌曲的声音来播放第二首歌曲?按下我播放第一首歌曲的按钮,播放音频资源,但是我的程序不再响应任何点击并且代码在歌曲完成之前不会继续。我曾尝试使用CreateThread(),但无济于事,因为我的程序仍处于无响应状态。包含PlaySound的函数:LPTHREAD_START_ROUTINEWINAPIPlayWavFile(intresource){PlaySound(MAKEINTRESOURCE(resource),hInst,SND_R

c++ - WaitNamedPipe 只是挂起

我遇到了WaitNamedPipe函数挂起的问题。...这是我的代码中与问题相关的部分。我创建了一个进程,然后是一个管道,函数WaitNamedPipe似乎卡在了FALSE上,因此挂起。函数waitnamedpipe等待CC进程启动。PROCESS_INFORMATIONpo;STARTUPINFOs;GetStartupInfo(&s);if(CreateProcess("c:\\s2.exe",NULL,NULL,NULL,false,0,NULL,NULL,&s,&po)==FALSE){printf("Error%dstartingCC\n",GetLastError());e

c - 调用 CreateWindowEx 函数时出现访问冲突错误

我想使用winAPI创建一个窗口:intWINAPIWinMain(HINSTANCEhInst,HINSTANCEhPrevInst,LPSTRlpCmdLine,intnShowCmd){WNDCLASSEXwClass;HWNDhWnd;wClass.cbClsExtra=NULL;wClass.cbSize=sizeof(WNDCLASSEX);wClass.cbWndExtra=NULL;wClass.hbrBackground=(HBRUSH)COLOR_WINDOW;wClass.hCursor=LoadCursor(NULL,IDC_ARROW);wClass.hIco

c# - this.Controls 返回 null

这里有与此类似的问题,但没有任何内容可以回答这个具体问题。我正在创建一个按钮对象来动态修改按钮上的图像。但是使用下面的代码,当我尝试在按钮上设置图像时,出现“对象引用未设置为对象的实例”。Buttonbutton3;button3=(Button)this.Controls["btnDay"+ctrlsFwd.ToString("00")];button3.Image=Resources.BookingAllDay;感谢任何帮助!放轻松-这是我的第一篇文章:-)**更新-有点捂脸。按钮位于面板中,因此我需要引用pnlCalendar.Controls而不是this.Controls。

c++ - GetProcAddress 函数返回 NULL

我尝试动态加载C++dll,首先我使用“LoadLibrary”函数加载了dll,它正确地获取了它的句柄。之后我尝试使用“GetProcAddress”获取DLL文件函数的函数指针,它返回NULL。请找到我的DLL代码和测试应用程序代码,让我知道代码中哪里出了问题。虚拟2.hnamespacenewer{classdllclass{public:static__declspec(dllexport)intrun(inta,intb);};}虚拟2.cpp#includeusingnamespacestd;#include"dummy2.h"namespacenewer{intdllcl

c - 在 C 中初始化地址为零的变量

这可能是一个非常基本的问题。我知道有一个C约定将空指针的值设置为零。您是否有可能在Windows中为新变量分配空间,而分配空间的地址恰好为零?如果不是,通常占用该地址区域的是什么? 最佳答案 在MS-DOS上,空指针是一个相当有效的指针,并且由于操作系统在realmode中运行实际上有可能用垃圾覆盖0x0地址并破坏内核。你可以这样做:inti;unsignedchar*ptr=(unsignedchar*)0x0;for(i=0;i现代操作系统(例如Linux、Windows)在protectedmode中运行它永远不会让您直接访问

c++ - 将参数传递给 _beginthreadex

我正在尝试使用_beginthreadex进行一些基本的并行化,并按照我给出的示例传递参数,但它不起作用。有什么想法吗?#include#includevoidMyThread(void*data){std::cout编辑:为什么传递NULL作为参数不起作用?(因为函数无论如何都不接受参数?)将NULL作为参数列表传递与_beginthread配合良好。 最佳答案 您的代码中有两个错误,都与线程函数的参数无关——NULL就可以了,正如您推测的那样。问题出在线程函数的签名中,您得到的错误指出了这一点。首先,它必须是一个__stdcal

C++ 和 Windows - 如何覆盖正在运行的程序的 exe 文件?

我试图制作可self更新的程序,但我不明白如何覆盖正在运行的程序(当前进程的)的exe文件。Exe文件运行时,被进程锁定,不可写。如何更新程序-我需要更新文件,关闭当前进程并重新运行更新后的文件...也许我的问题很愚蠢,但我没有这个问题,直到我使用Linux...干杯!❤ 最佳答案 我通过MSVS中的资源将所需文件打包到另一个包装器中解决了这个问题。这是将资源提取到文件中的代码:#include"stdafx.h"#include"resource.h"#include"windows.h"intmain(){HRSRChrsrc=