草庐IT

API管理

全部标签

c++ - Windows API - 剪贴板 - GlobalLock - 使用还是不使用?

我见过这样的实践,如果您要通过GetClipboardData()从Windows剪贴板中获取内容,则在返回的句柄上调用GlobalLock()函数GetClipboardData()首先-在检索数据之前(例如转换和存储)。但是我发现(至少在C++11中)我可以在没有锁定的情况下获得相同的数据...所以有3个子问题...这怎么可能?单线程应用仅“单”运行安全吗?单线程应用程序同时多次运行安全吗?...导致一个大问题-使用或不使用GlobalLock()&&什么时候?PS:当然,在每个潜在的GlobalLock()之后,您应该调用GlobalUnlock()这是我检索数据的简单部分:HA

c# - 如何在 Windows 10 UWP 中为模板 Gridview 设置视觉状态管理器?

我知道VisualStateManager可以在更改屏幕UWP大小时更改控件属性。但我不知道如何为DatatemplateGridview使用VisualStateManager?如何更改属性Image控件,TextBlock控件?请帮我解决这个问题。 最佳答案 一种方法是将DataTemplate包装在UserControl中: 关于c#-如何在Windows10UWP中为模板Gridview设置视觉状态管理器?,我们在StackOverflow上找到一个类似的问题:

c++ - Boost 是否支持 Windows EnterCriticalSection API?

我知道Boost支持互斥锁和lock_guard,可用于实现临界区。但是Windows有一个用于关键部分的特殊API(参见EnterCriticalSection和LeaveCriticalSection),它比互斥锁快很多(对于很少竞争的短代码部分)。因此我的问题-在Boost中可以利用这个API,并回退到其他平台上基于自旋锁/互斥/futex的实现吗? 最佳答案 简单的答案是否定的。这里有一些相关背景fromanoldmailinglistthread:BTW.Iamagreethatmutexismoreuniversalso

java - Java 任务管理器

大家好,我是一名高中生,有一个与CS有关的项目。我正在尝试编写一个程序,在经过一定时间后关闭外部应用程序。那个时间部分很容易做到,但现在的问题是实际关闭问题。我环顾四周,找不到任何适合我的东西,需要一些帮助。这是我目前所拥有的:importjava.util.concurrent.TimeUnit;importjavax.swing.JOptionPane;publicclassTaskKiller{publicstaticvoidmain(String[]args){JOptionPanepane=newJOptionPane();StringuserInput1=JOptionPa

windows - "Open git bash here"和 "Open command prompt here"从 Windows 资源管理器上下文菜单中消失

除了重新安装git或编辑相关的注册表项以自己将上下文菜单添加到shell之外,我想知道是否有另一种方法可以恢复“GitBashHere”和“Opencommandwindowhere”菜单?我使用的是Windows7家庭高级版64位。 最佳答案 checkoutthis所以问题:ContextmenuforrightclickonfoldersinleftpanelofWindowsExploreroronbackgroundofadirectoryinrightpanel:HKEY_CLASSES_ROOT\Directory\B

windows - 以管理员身份执行时如何在批处理文件中捕获 powershell 脚本的错误级别

当以管理员身份执行时,我需要在批处理文件中捕获powershell脚本的输出。例子:ps1文件:Write-Host"PS1executed"exit1如果我在没有管理员权限的情况下执行powershell脚本NotAdminFile.bat:@ECHOOFFsetlocalenableextensionsPowerShell.exe-NoProfile-ExecutionPolicyBypass-Command"&'%~dpn0.ps1'"echo%ERRORLEVEL%endlocal然后,输出是PS1executed1没关系。但是,当我以管理员权限执行powershell脚本时A

c++ - 从 Win32 Api C++ 获取操作系统构建版本

我正在尝试查找WindowsServer2016机器的构建版本,例如RS1或RS3。有一个API可以执行此操作-GetVersionEx()-但现在已弃用。MSDN说使用VersionHelperFunctions相反。我想要构建版本,例如:RS1的1607。是否有API来获取此信息? 最佳答案 选项0:(根据RbMm)使用驱动程序开发工具包中的[RtlGetVersion]。选项1:[已更新]获取系统DLL(如kernel32.dll)的版本号。MSDN曾经赞扬这种方法,说:Toobtainthefullversionnumber

c++ - 通过从 C/C++ 调用 Windows API 函数生成独立的汇编子例程

我做了一些shellcode执行的实验,我在其中编写了自己的shellcode,将其写入我希望它执行的目标程序的内存中,然后使用新线程或线程劫持来执行它。这很好用,但是手动编写shellcode相当耗时,因此我正在寻找一种能够用C或C++编写函数的方法,该函数在编译后将完全独立。这意味着任何编译后的函数都应该可以独立执行。这样我就可以直接将它写入我的目标程序中,例如使用WriteProcessMemory准备执行。因此,推送shellcode将使用如下代码完成:#include#includeusingnamespacestd;BOOLMakeABeep(){returnBeep(0x

windows - Windows 和 Mac 的窗口管理器

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭9年前。ImprovethisquestionXWindows具有称为窗口管理器的特殊进程,用于管理窗口的布局和装饰,如标题栏、控制按钮等。此类进程使用XWindowsAPI来检测与窗口大小和位置相关的事件。是否有任何一致的方法来为MicrosoftWindows或MacOS/X编写此类流程?我知道这些系统通常不太灵活,但我正在寻找将使用公共(public)API而不是未记录的hack的东西。

c++ - 使用应用程序的 Windows API commctrl.h 在没有 Platform SDK 的机器上不起作用

我写了一些使用以下内容的东西:#include#include#include#include#include#include此代码在安装了PlatformSDK的2台机器上运行良好,但在全新安装的Windows(当然是虚拟机)上无法运行(既不是调试版本也不是发布版本)。它以非常熟悉的方式死去:---------------------------C:\DocumentsandSettings\Someone\Desktop\DesktopRearranger.exe---------------------------C:\DocumentsandSettings\Someone\D