草庐IT

c++ - 如何以原子方式更新 HWND 的样式和位置?

我正在编写一个Win7桌面应用程序,并希望让它从窗口化无缝过渡到窗口化全屏(反之亦然),并且主要是通过调用SetWindowLongPtr来实现的。立即更新其样式,然后是MoveWindow更新它的大小和位置。问题是窗口闪烁一帧以显示其样式已更新,但未显示新的大小和位置。下一帧一切看起来都正确,但我正在努力避免这种单帧伪影。我试过颠倒调用API的顺序,但它只是改变了工件的外观。我也试过隐藏窗口,调用API,然后显示窗口,但这只会导致窗口消失一帧。我知道一种选择是创建一个具有所需属性的新窗口,然后销毁旧窗口,但我想找到一种更便宜的替代方法。那么有什么方法可以调用这些API,并让它们在视觉

c++ - 如何以编程方式关闭 Windows 中打开的文件/应用程序?

作为操作的结果,我正在将数据写入csv文件。然后我在excel中打开文件来检查数据。经常在excel中忘记关闭文件,下一次操作无法写入同一个文件。如果不是不可能的话,这看起来非常困难,但是有没有一种方法可以在写入文件之前以编程方式关闭文件(=正在使用该文件的应用程序)?我想第一件事是确定哪个应用程序正在使用该文件,然后关闭该应用程序?也许有人为此编写了一个类? 最佳答案 好的,根据评论:在第一个操作中将文件标记为只读。然后您可以启动Excel并防止它对文件进行机会锁定。您仍然可以在后续操作中通过删除RO属性或在编写更新时使用-For

wpf - 如何以 ReactiveUI 方式处理 Windows 事件(消息)?

我是ReactiveUI的新手,目前对它很满意。但我有一个问题:如何以ReactiveUI方式处理Windows事件/消息?在mvvmlight中是这样的:但我不知道如何在ReactiveUI中进行。也许它类似于MessageBus.Current.Listen().Where(e=>e.KeyCode==KeyCode.Up).Subscribe(x=>Console.WriteLine("UpPressed!"));但我不知道如何专门针对大型机的Closing事件。我在某处读到ReactiveUI的作者并不强烈反对codebehind代码(也许我记错了),那么建议的方法是什么?

python - 如何以编程方式检索 Microsoft 的 inspect.exe 中 "name"字段的等效项?

我想以编程方式从系统托盘中的工具提示中检索信息。图像显示了工具提示。现在,我发现通过使用Microsoft的inspect.exe,“一种基于Windows的工具,使您能够选择任何UI元素并查看该元素的辅助功能数据”,这在理论上是可以通过编程方式检索此值。将鼠标悬停在工具栏中的潘多拉图标上会显示以下属性它显示了一个属性“名称”,其中包含我需要的确切数据。我不确定如何使用win32api以编程方式检索此值。我已经对潘多拉图标有所了解。此外,一个不同的uispy工具,UiSpy.exe将这个相同的属性称为“helpText”(不同的歌曲名称:p)我尝试使用getWindowText(pan

windows - 如何以编程方式模拟文件损坏以测试 ReFS 健康检查和恢复功能?

我想以编程方式测试WindowsReFSHealthCheckandRecovery特点。注意:ReFS仅检测位腐烂(无法self修复)。要让ReFS同时检测和自动修复,还必须使用存储空间。因此,我准备了一个存储镜像空间池S:\,具有2-way镜像设置。ReFS完整性流已启用,PSC:\>Set-FileIntegrity-FileName'S:\'-Enable$True按照说明找到here.如何以编程方式模拟文件损坏以测试ReFS运行状况检查和恢复功能?我找不到引入比特腐烂的简单方法。我尝试过的所有系统都只执行ReFS可接受的合法更改。如果可能,PowerShell方法是最好的。P

c++ - 如何以编程方式判断两个变量是否在同一个堆栈上? (在 Windows 中)

我在一个线程中。我有一个地址。该地址是否来self正在使用的同一堆栈上的变量?staticint*address;voidA(){intx;atomic::CAS(address,0,&x);//ieaddress=&x//...}voidB(){inty;int*addr=atomic::read(address);//ieaddr=addressif(addr&&on_same_stack(&y,addr)){//B()calledfromA()}else{//B()calledfromdifferentthreadthanA()}}我需要实现on_same_stack(addr1

windows - 如何以编程方式在 Windows 上触发 Flip 3D?

如何在WindowsVista和7上以编程方式触发Flip3D?有这方面的API吗?如果有,它叫什么?我在哪里可以找到相关函数?(我需要一个具体的答案,例如实际功能的Web链接,而不是像“哦,它在DirectX中”这样的通用内容。)在相关节点上,我有一个罗技鼠标,它有一个调用Flip3D的“文档翻转”按钮(然后我可以按向上/向下键翻阅结果。)我很好奇他们是否使用官方的WindowsAPI或者是否有一些低级的hackery正在进行。 最佳答案 你需要从dwmapi运行一个函数遗憾的是没有合适的功能名称只有序号105您可以通过运行对话框

windows - 如何以编程方式判断 Windows PE 文件是控制台子系统还是 Windows 子系统?

基本上,我需要一个程序来将Windows.exe从控制台对应项中排序。文件扫描器:SortExe(fileexe){if(IsPeWindows(exe)){AddToList1(exe);}elseif(IsPeConsole()){AddToList2(exe);}}如何实现IsPeWindows或IsPeConsole()?我并不特别介意出现什么语言解决方案,只要它是c、c++、c#或visualbasic中的一种即可。 最佳答案 将SHGFI_EXETYPE传递给SHGetFileInfo()并按照链接中的说明检查返回值的高

windows - 如何以编程方式在 Windows 10 的特定监视器上启动应用程序?

我想编写一个程序,有时需要在Windows10版本1803(2018年4月更新)上启动另一个应用程序(主要是SumatraPDF)的进程。这些应用程序应该在特定的监视器上启动。我还希望能够在需要时关闭进程。首选语言是C#和Java,但我们将不胜感激。编辑我尝试使用ShellExecuteExW函数suggestedbyIInspectable直接在C++代码中,但它不起作用,因为应用程序出现在主监视器上。我肯定犯了一个错误,因为我对WinAPI完全陌生并且对C++知之甚少。#includeHMONITORmonitors[2];//Asit'sonlyatestandIhavecurr

windows - 如何以 64 位 GNAT GPS 的新方式与 Windows 系统调用交互?

我习惯于使用Win32Ada库为我为Windows创建的终端程序调用系统调用。系统调用足以实现对控制台的控制,但Ada标准库中的任何东西都做不到。检查GPS社区版的源列表,我发现缺少Win32Ada。我准备继续使用Win32Ada,但它的排除(就像几年前Linux构建的POSIX排除的情况一样)暗示有更好的方法来实现低级接口(interface)。任何人都可以给我最简单的代码或引用我如何以从现在开始支持的方式与Windows交互吗?之前的例子:pragmaAda_2012;withWin32;withAda.Text_IO;... 最佳答案