草庐IT

windows - 如何使用 EnableWindow() 禁用窗口并将其灰显?

在.NET中,当您将Form或Control(例如ListView)的Control.Enabled属性设置为false时,它​​及其所有子项都会变灰:我没有看到这种情况发生在Win32(EnableWindow)中,至少在ListViews中没有。如何在Win32中实现这种效果? 最佳答案 BOOLEnableWindow(HWNDhWnd,BOOLbEnable);其中hWnd是控件的句柄,bEnable为TRUE或FALSE,TRUE启用窗口,FALSE禁用窗口。适用于ListView。毫无值(value)的是,为了看到其视觉

windows - 有没有办法改变非客户区的 Windows Aero 颜色?

我注意到Windows已自动将Windows的非客户区设置为主题颜色-WindowsAero。我认为这是一个好主意,因为它使主题在程序之间保持一致,并且界面总体上更好。作为一个狡猾的人,我渴望在这里颠覆微软的意图并获得一个使用我的程序设置的颜色而不是操作系统设置的GUI。想法? 最佳答案 是的,这是可能的,但您需要使用未记录的函数。这意味着您的程序可能无法在未来版本的Windows上运行,即使发布了服务包或其他更新也是如此。如果您愿意冒险,thisblogposthasfulldetails并对功能以及如何使用它们进行逆向工程。它包

c++ - 如何在 Windows 上获取进程工作目录?

如何使用nativeAPI在Windows上获取进程工作目录(对于使用进程句柄或PID的另一个进程)?我看过ProcessandThreadFunctions,PSAPIFunctions并没有找到。也许是WMI?此外,关于这些主题,PSAPI与进程和线程函数有何关系?它过时了吗? 最佳答案 为此,您需要比PSAPI更重的火炮。以下是操作方法(假定为x86,省略了错误处理):ProcessBasicInformationpbi;RTL_USER_PROCESS_PARAMETERSupp;PEBpeb;DWORDlen;HANDLE

windows - 如何在 Delphi 中枚举另一个进程的窗口?

我有一个进程foo.exe,它使用CreateProcess函数创建一个进程bar.exe。我想(在foo.exe中)枚举在bar.exe中创建的窗口的控件,为此我(假设我)需要窗口HWND。我知道bar.exe中的所有窗口类,而bar.exe一次只为每个类创建一个窗口,所以我可以使用该类名称来找到我想要的窗口。但是我应该使用什么函数来枚举另一个进程中的窗口呢?我正在寻找采用进程句柄或PID(均由CreateProcess函数返回)和EnumProc回调过程的东西。我是否应该找到bar.exe的线程ID(它是一个单线程应用程序)并将其与EnumThreadWindows函数一起使用?

c# - 有没有办法从 WinForms 应用程序打开 Windows 日期和时间设置对话框?

我正在开发嵌入式软件,我们希望尽可能避免暴露Windows功能和界面。但是,用户需要能够更改系统日期和时间,也许还需要更改时区或夏令时模式。我想我会为此创建我们自己的简单表单,我尝试深入研究Win32API调用,但意识到这不是一种简单的方法。所以我发现基本上最简单的方法是从软件调用众所周知的Windows对话框,让用户在那里更改内容。到目前为止,我找不到任何相关信息。是否有任何可执行文件(例如gpedit.msc),或者是否有任何API调用来显示该窗口?如果没有,或者如果有任何我没有考虑到的缺点,谁能为这项任务提出更好的方法?编辑:感谢您提供timedate.cpl提示,我会尽快尝试。

windows - Windows 快捷方式如何知道重命名它所引用的文件?

关闭。这个问题不符合StackOverflowguidelines。它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭4年前。ImprovethisquestionWindows快捷方式如何知道重命名它所指的文件?如何在文件重命名时拦截消息?是否有相应的函数Win32API?

windows - 如何在 32 位应用程序中获取 64 位系统文件夹?

在32位应用程序中,我必须将文件复制到64位系统文件夹(C:\Windows\System32\而不是C:\Windows\SysWOW64\)为此,我尝试使用WinAPI函数获取文件夹SHGetKnownFolderPath带参数FOLDERID_ProgramFilesX64(GUID:6D809377-6AF0-444b-8957-A3773F02200E)。但不幸的是,这是不允许的(如备注部分所述),函数结果正确为“找不到文件”。有办法做到这一点吗? 最佳答案 您正在请求PROGRAMFILES文件夹,而不是SYSTEM文件

c++ - 来自 CreateWindow/CreateDialog 的 HWND 是否可以从另一个线程获取消息?

使用Win32API,是否可以在一个线程中创建一个窗口或对话框,然后从另一个线程为它收集事件?HWND是否绑定(bind)到线程?尝试下面这个人为的例子,我从来没有看到GetMessage()触发。HWNDg_hWnd;DWORDWINAPImyThreadProc(LPVOIDlpParam){while(GetMessage(&msg,hWnd,0,0)>0){...}}intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnShowCmd){hWnd=CreateDialog(hI

c - 刷新通信句柄接收缓冲区?

在Win32C中是否有API调用来刷新(转储)COM端口接收缓冲区的内容?我只能找到刷新传输缓冲区的函数。 最佳答案 `PurgeComm()'可以丢弃Tx和Rx缓冲区中的一个或两个缓冲区中的所有字符,并中止端口上任何挂起的读取和/或写入操作。要对端口执行所有操作,请这样说:PurgeComm(hPort,PURGE_RXABORT|PURGE_TXABORT|PURGE_RXCLEAR|PURGE_TXCLEAR)您可能还想确保您已经处理或显式忽略了端口上的任何未决错误,可能是ClearCommError().ReadFile()

windows - 如何通过 Windows 原生 API 获取目录信息?

我可以使用以下代码获取文件的创建日期、文件大小等信息://ErrorhandlingremovedforbrevityHANDLEhFile=CreateFile(path,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);LARGE_INTEGERfileSize;GetFileSizeEx(hFile,&fileSize);FILE_BASIC_INFOfileInfo);GetFileInformationByHandle(hFile,FileBasicInfo,fileInfo