草庐IT

意外退出

全部标签

c++ - 如何捕获来自另一个进程的退出消息?

我想“监听”其他一些应用程序并决定在它终止时做什么。如何?编辑:这两个程序在同一台计算机上运行,​​我想知道何时关闭另一个程序。然后在另一个程序中执行操作。我无法修改其他程序代码。我可能会也可能不会从应用程序A启动应用程序B。我可以通过其到exe的完整路径来识别应用程序B。 最佳答案 正如Abyx所写,WaitForSingleObject(或者可能是WaitForMulipleObjects)是您需要的API函数。创建事件启动一个(工作)线程将事件句柄传递给线程->HANDLE1获取要监视的进程的句柄。参见HowcanIgetap

windows - Docker 在 Windows 容器上的健康检查和退出代码 ("||"linux 等效)

我想在Windows的Dockerfile中做这样的事情:HEALTHCHECK--interval=5s\--timeout=5s\CMDC:\\src\\curl.exe-fhttp://127.0.0.1:8080/health;if($LastExitCode){$LastExitCode=1}命令本身似乎没问题。每当curl返回不同于0的内容时,退出代码更改为1。当我尝试在Dockerfile中定义它时出现问题。当Docker运行它时,我在检查中得到以下输出:(6)Couldn'tresolvehost'if($LastExitCode)'\r\ncurl:(6)Couldn

python - .pyw 在启动时通过注册表启动并退出,但通过双击启动有效...?

我有一个.pyw脚本,当我双击它等时它会工作并且它会保持打开状态直到我关闭它但是我已经将它添加到注册表以在启动时运行。它确实在启动时运行,但不会像设置的那样保持打开状态。它闪烁gui,然后关闭。知道为什么会发生这种情况或如何解决它吗?P.S我不想在启动文件夹中创建链接到.pyw文件的快捷方式。我用另一个python脚本将我的python脚本添加到注册表:pimport_winregaReg=_winreg.ConnectRegistry(None,_winreg.HKEY_LOCAL_MACHINE)aKey=_winreg.OpenKey(aReg,"SOFTWARE\\Micros

Windows 套接字 write() 意外被 read() 阻塞

(这是以前asked问题的更新转发,使用我丢失凭据的旧帐户发布)我正在编写一个客户端-服务器程序,其中客户端是C++/winapi,服务器是C#/.net。套接字是一个AF_INET/SOCK_STREAM,我在客户端使用Readfile()和WriteFile()作为套接字IO。客户端有一个从服务器读取的循环(并且可能会阻塞调用线程[denotet1],这对我来说很好)。它还有另一个线程[表示t2],它等待一个超时的事件对象。如果达到超时(并且事件尚未被单选),t2线程将在同一个套接字上写入(精确到字节)。我遇到的问题是,在t1上的读取返回之前,写入似乎不会返回(在某些合法场景中,它

c++ - DeviceIoControl 返回意外的物理扇区大小

我使用DeviceIoControl返回物理磁盘扇区的大小。它总是返回512个字节,直到最近它开始返回4096个字节。检查生成的STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR我发现逻辑和物理字节大小已经调换了位置-磁盘扇区的逻辑字节大小不应该总是大于或等于物理扇区大小吗?#include#include#include#pragmacomment(lib,"Kernel32.lib")intmain(){HANDLEhDevice;charcDisk='c';//GetmetadataabouttheC:\disk//Buildthelogicaldrivepa

windows - python 输出到 Windows 控制台的意外空行

我有一个打印目录结构的小程序。它工作正常,除非目录名称包含德语变音字符。在这种情况下,int在目录行之后打印一个空行。我在Windows764位上运行Python3.50。这段代码...classdm():...defprint(self,rootdir=None,depth=0):ifrootdirisNone:rootdir=self.initialdirifrootdirinself.dirtree:print('{}{}({}files)'.format(''*depth,rootdir,len(self.dirtree[rootdir]['files'])))for_diri

python - 如何在 Windows 上使用信号退出功能?

我在Windows上使用Python2.7编写了以下代码。我想检查当前python脚本的更新并更新它,如果有更新,通过ftp服务器使用新版本保留文件名,然后在通过os.kill终止当前脚本后执行新的python脚本与SIGNTERM。我采用了exit函数方法,但我读到在Windows中这仅适用于atexit库和默认的pythonexit方法。所以我结合使用了atexit.register()和信号处理程序。***necessarylibraries***filematch='test.py'version='0.0'checkdir=os.path.abspath(".")dircon

windows - python easysnmp packge install error windows..失败,退出状态为2

我需要使用snmp从我的设备获取一些信息(端口统计、端口描述等)但我正在努力解决一些我没有找到任何答案的软件包安装错误我正在使用windows1064位机器并尝试安装easysnmp包,但我得到以下输出:>D:\Python36\Scripts>pip.exeinstalleasysnmpCollectingeasysnmpUsingcachedeasysnmp-0.2.5.tar.gzInstallingcollectedpackages:easysnmpRunningsetup.pyinstallforeasysnmp...errorCompleteoutputfromcomman

windows - 我怎么知道加载我的 dll 的 .exe 即将退出?

我有一个dll,它实际上是一个已注册的com服务,然后由另一个.exe进程加载。我希望当用户从.exe退出时在为时已晚之前从我的dll中执行一些资源关闭步骤。我试图从我的DLL的DllMain中拦截DLLPROCESSDETACH或DLLTHREADDETACH,但似乎当它到达那里时,已经太晚了,因为由我的DLL启动的线程(我需要执行关闭步骤)已经停止了?!当然,我不控制.exe代码,否则我会在它退出之前从那里调用一个调用来执行那些干净的关闭步骤。我只能处理DLL本身。DllCanUnloadNow或DllUnregisterServer似乎都没有被调用。有人可以解决这种情况吗?提前感

c# - 自定义控件退出时光标未更改

我遇到了这个问题:我创建了一个自定义控件(C#、WinForms、Framework4.0),当用户按下某个键时我需要在其中更改光标(这有效);退出控制我想恢复到以前的光标..但这不起作用:退出光标仍然是当前光标。怎么了?protectedoverridevoidOnMouseEnter(EventArgse){oldCursor=Cursor;base.OnMouseEnter(e);}protectedoverridevoidOnMouseLeave(EventArgse){Cursor=oldCursor;base.OnMouseLeave(e);}当按下按钮时,我会:this.