草庐IT

c# - 如何只读取添加到事件日志的新事件?

我正在开发一个读取和显示Windows事件日志的项目。我使用以下代码从事件日志中读取事件并显示它们。publicstaticvoidMain(string[]args){EventLog[]ev;ev=EventLog.GetEventLogs();Console.WriteLine("Numberoflogsoncomputer:"+ev.Length);foreach(EventLogloginev){Console.WriteLine("Log:"+log.Log);foreach(EventLogEntryentryinlog.Entries){Console.WriteLin

c++ - 如何使用 C++ 检查任务调度程序中的任务触发器?

我想使用C++检查任务调度程序中任务的触发器。我想使用函数HRESULTget_Type(TASK_TRIGGER_TYPE2*pType);检查任务是登录还是开机触发。TASK_STATEtaskState;for(LONGi=0;iget_Item(_variant_t(i+1),&pRegisteredTask);if(SUCCEEDED(hr)){BSTRtaskName=NULL;TASK_TRIGGER_TYPE2*pType=NULL;hr=pRegisteredTask->get_Name(&taskName);if(SUCCEEDED(hr)){printf("\nT

windows - 如何在 Delphi(或通过 Windows API)的 RDP session 中唯一标识由 EasyPrint 打印机重定向的打印机?

我喜欢在Delphi的RDPsession中唯一标识由EasyPrint打印机重定向的打印机。每次用户连接到RDPsession时,打印机的名称都会更改,例如:“HPLJP1606(重定向6)”。最后一个数字(6)始终在变化,以确保打印机名称在整个服务器中是唯一的。在我的程序中,我喜欢保存一些与打印机型号相关的打印机相关参数。我期待找到类似GUID的东西来识别某个地方的打印机,有点像MAC地址。它应该允许我的程序确保它与之前选择的打印机相同。我和我的同事研究了这个解决方案:HowcanIuniquelyidentifyaprintqueueonWindowsevenifthequeue

c++ - 如何在库加载时将预处理器定义传递给 DLL

我正在开发一个链接到DLL的应用程序,该DLL本身包含一个数据结构,其定义因预处理器定义而异:structExample{uint8_tStringA[32];#ifUSE_Buint8_tStringB[32];#endif};我需要在我的应用程序中的不同时间使用结构的两个版本。因此,我似乎需要使用LoadLibrary加载DLL,其中USE_B未定义用于部分执行(这是标准且直接的),使用FreeLibrary卸载它,然后然后使用定义为非零值的USE_B再次加载它。我不确定如何执行此操作,如有任何帮助,我将不胜感激。 最佳答案 L

windows - 获取当前事件窗口的线程 ID

我需要获取事件窗口的线程ID。是否有WindowsAPI函数可以让我获取此信息?有GetCurrentThreadId函数,但它会返回调用线程的ID,而不是事件窗口线程,因此它对这个目的没有用。编辑:按照建议编辑我的问题以提供有关我为什么需要这个的额外信息,这里是:我正在实现LowLevelKeyboardProc捕获键盘输入,并且由于键盘布局因程序而异,我想确保为处理键盘的事件窗口获取布局:代码片段:HWNDactive_window=GetForegroundWindow();DWORDthread_id=GetWindowThreadProcessId(active_window

c - WM_SYSCOLORCHANGE 消息的含义

来自documentation:WM_SYSCOLORCHANGEmessageissenttoalltop-levelwindowswhenachangeismadetoasystemcolorsetting.Applicationsthathavebrushesusingtheexistingsystemcolorsshoulddeletethosebrushesandre-createthemusingthenewsystemcolors.声明全局变量HBRUSHg_hBackground=NULL;在WM_CREATE消息处理程序中创建背景画笔caseWM_CREATE:g_h

windows - 是什么导致 WriteFile 返回错误 38 (ERROR_HANDLE_EOF)?

什么会导致WriteFile返回错误38(ERROR_HANDLE_EOF,已到达文件末尾)?本例中的"file"是一个邮槽。我的程序的工作方式是我有一个创建多个子进程的进程(作为Windows服务运行)。每个child都打开一个同名的邮槽,以便将状态信息发送回其parent。在我的小规模测试中,这工作正常,但我看到了当我有多个进程时的情况运行(如16)我收到此错误。下面的代码显示了我如何在子进程中打开和写入邮槽。可能是因为父级读取邮槽的速度不够快?有没有办法增加邮槽的容量,从而永远不会到达文件末尾?我真的不明白邮槽怎么会变满,只要因为有磁盘空间(有很多)。chargLocalSlot

windows - 如何在 EditBox 中切换自动换行

如何在多行EditBox中切换自动换行?我可以使用或不使用它来创建它,但我不知道应该使用哪个消息来切换包装模式。 最佳答案 EditBox不支持切换自动换行。没有可以发送的消息,也不能更改窗口样式,因为MSDNsays:Afterthecontrolhasbeencreated,thesestylescannotbemodified,exceptasnoted.您唯一的选择是创建一个具有所需样式的新控件(WS_HSCROLL|ES_AUTOHSCROLL),将文本复制到新控件中,然后销毁旧控件。在Windows2000和更高版本上,

windows - 如何在 Python/Go/C/Batch 中获取 Windows 中的扩展文件属性?

我进行了大量搜索并找到了一些关于如何获得扩展FA的发现,但它们是在C#中使用该语言自己的内置API。我想在Windows中查找文件的作者姓名,但我的要求是在Go/Python/C/Batch中(优先级顺序)。在python中,第三方包(exifread和hach​​oir_metadata)不工作(没有给出示例doc/xlsx文件的任何结果。可能我通过pip-install安装的包是错误的)。是否有任何其他方式或任何用户级MSDNAPI可用?如果有这方面的经验,请告诉我。谢谢。 最佳答案 在C、C++或其他语言中,您可以使用IPro

windows - ReadConsoleInputA 引发访问冲突

我正在尝试学习如何使用Windowsapi(而不是仅仅使用C调用、irvine32或masm32)并且遇到了ReadConsoleInputA的问题(WriteConsoleA工作正常)。此外,我不明白为什么在函数的PROC原型(prototype)中,大多数示例在ReadConsoleInput/WriteConsole的末尾附加一个A或W,您能解释一下为什么吗?.dataconsoleOutHandledd?consoleInHandledd?bufferlendd?bufferdb?bufferSizeDWORD?messagedb"Enteranumber:",0lmessag