草庐IT

winnings

全部标签

windows - 如何在从 Win32::Process 启动的 Perl 进程中获取输出?

我有一个Perl脚本,它通过Win32::Process在新控制台中启动另一个Perl脚本如下:Win32::Process::Create($ProcessObj,"C:\\Perl\\bin\\perl.exe","$path_to_other_perl_script",0,NEW_CONSOLE,".");$ProcessObj->Suspend();$ProcessObj->Resume();$ProcessObj->Wait(0);问题是,在创建的新控制台中没有标准输出。如果我不使用新的控制台选项,脚本会在后台静默运行。如果我使用cmd.exe启动Perl脚本,我可以很好地看

windows - 让我的 MFC 对话框在其控件之前接收击键事件(MFC/Win32 相当于 WinForms "KeyPreview")

我有一个包含十几个按钮、单选按钮和只读编辑控件的MFC对话框。我想知道用户何时在该对话框中按下Ctrl+V,而不管哪个控件具有焦点。如果这是C#,我可以设置KeyPreview属性,我的表单将在各个控件之前接收所有击键-但我如何在MFC对话框中执行此操作? 最佳答案 JTeagle是对的。您应该覆盖PreTranslateMessage()。//ExampleBOOLCDlgFoo::PreTranslateMessage(MSG*pMsg){//Addyourspecializedcodehereand/orcallthebase

windows - 如何在win7中添加 'enhancement'声音过滤器?

在Windows7中,如果右键单击任务栏中的扬声器图标,单击播放设备,打开其中一个设备选项卡的属性,然后单击增强选项卡,则会得到一个过滤器列表(“低音增强”等)可以应用于该声音设备。如何在这里注册我自己的自定义过滤器?请注意,我不是IHV-涉及未签名驱动程序等的可怕黑客攻击是可以接受的,因为这将主要供我自己使用。 最佳答案 如果您是音频IHV,请使用您的INF注册它们。可以找到它们的引用页here.请注意,要与Windows一起使用,sAPO必须经过签名,否则它们不会加载到音频引擎中。要对sAPO进行签名,您需要遵循WHQL签名要求

windows - 在 Vista/Win7 上使用 WMI 检查夏令时

如何确定我使用的计算机是否实行夏令时?(最好使用WMI)根据thisarticleatTechNet,我可以查询SELECTDaylightInEffectFROMWin32_ComputerSystem,但属性DaylightInEffect在Vista或Win7上不受支持。由于我的程序将在各种系统(XP、Vista、7)上运行,我希望能找到一些可移植的方法。 最佳答案 记录的受支持操作系统列表不准确,当我尝试时这在Win7上工作正常。我想不出任何其他操作系统不支持它的原因,使用Win32API(GetTimeZoneInform

c# - Win32 浏览文件夹对话框 : wrong folder returned when user creates a new folder

我注意到浏览文件夹对话框中似乎有一个错误:打开带有“新建文件夹”按钮的新样​​式浏览文件夹对话框。(例如.NETFramework中的FolderBrowserDialog类,或Win32C++中的SHBrowseForFolder)。单击“创建新文件夹”按钮创建一个新文件夹。为新文件夹键入一个名称。输入完新文件夹名称后,请勿按Enter键或单击任何内容来停止编辑。当光标仍在闪烁/编辑框仍处于事件状态时,单击“确定”按钮。您必须非常快速地单击“确定”按钮。对话框不会返回文件夹的新名称给程序,而是返回“新文件夹”目录。例如,C:\NewFolder而不是用户输入的内容,例如C:\MyAp

windows - 是什么决定 RegisterTypeLib 是写入 win32 还是 win64?

我正在处理两个基于ATL的COM项目。两者都实现DllRegisterServerSTDAPIDllRegisterServer(void){//registersobject,typelibandallinterfacesintypelibreturn_Module.RegisterServer(TRUE);}最终调用::RegisterTypeLib(pTypeLib,bstrPath,szDir);在atlbase.h:6516中。但由于某种原因,此调用使其中一个项目创建HKEY_CLASSES_ROOT\TypeLib\\\0\win64在Windows732位上使用regsv

windows - Win32 Event 对象是递归互斥体吗?

我在MSDN上查了下,Mutexcouldbelockedtwice,但是没有任何关于recursiveacquirethesameeventobjecttwiceinathread.我们可以在同一个线程中两次锁定win32事件吗?编辑:Lock事件是什么意思?这里我假设事件是自动重置的。锁定:线程从WaitForXXX中唤醒(例如,WaitForSingleObject)解锁:线程正在调用SetEvent或PluseEvent。 最佳答案 互斥体与事件有着根本的不同。互斥锁用于提供互斥,以便一次只有一个线程可以访问资源,而事件只是

C++ Win 异步套接字。是否可以中断 select()

我有一个监听线程,等待使用select和FD_SET在几个套接字上读取。故事是。在某些时候,我将向池中添加另一个套接字,并且需要中止选择并重新初始化FD_SET数组以供选择。我有一个事件来指示池更改。但是select如何对我的事件使用react?select()此时使用timeval等待间隔为20秒,我不想将时间更改为较低的值。我不想频繁地重新启动select()超时...有什么办法可以中止选择吗?通知/重新启动选择并强制使用新套接字列表的正确方法是什么(至少一个套接字将被添加到池中)另一个问题-Msdn说“select函数确定一个或多个套接字的状态,必要时等待,以执行同步I/O。”这

c++ - Win32 窗口创建失败?

我进行了研究,但找不到答案。我找到的最接近的是“Cannotcreatewindow”,但它对我没有帮助。所以,就在这里!基本信息我有一个静态库和一个使用静态库的应用程序。我正确地将应用程序连接到静态库(包括目录、库目录、实际库依赖项等)。在静态库中,我有1个文件:IWindow.h。在应用程序中,我有3个文件:Main.cpp、WindowMain.h和WindowMain.cpp。IWindow.h定义了一个抽象窗口类:#ifndefIWINDOW_H#defineIWINDOW_H#includenamespaceNamespaceName{templateclassIWindo

c - Win32 公共(public)控件初始化会破坏自定义控件吗?

所以我正在尝试在Win32中初始化公共(public)控件和视觉样式。我构建了一个包含我编写的一些自定义控件的DLL,以及一个包含GUI应用程序的EXE。通常,职责分离似乎是我的DLL不应该担心我们是否启用窗口样式。它应该只生成自定义控件并将它们公开给依赖的EXE。然后EXE可以决定它是否需要视觉样式,而DLL一点也不知道。问题是这样的:我让我的DLL在进程附加上的DllMain中注册它的窗口类。但是,如果我在EXE中调用InitCommonControlsEx,自定义控件中的按钮和诸如此类的东西不会显示,因为自定义控件在EXE可以初始化公共(public)控件之前注册。为了证明这一点