草庐IT

if判断

全部标签

c++ - 如何判断哪个值触发了 RegNotifyChangeKeyValue?

我正在使用RegNotifyChangeKeyValue用于跟踪对我的注册表项和C++示例的更改的API,类似于该MSDN页面底部给出的示例。我将此API设置为:RegOpenKeyEx(HKEY_LOCAL_MACHINE,L"Software\\Company\\Product",0,KEY_NOTIFY,&hKey);RegNotifyChangeKeyValue(hKey,FALSE,REG_NOTIFY_CHANGE_LAST_SET,hEvent,TRUE);所以,比如说,当这个API作为参数的事件发出信号时(这意味着对Software\Company\Product键的更

windows - 批处理 IF 语句总是返回 false?

好的,所以我有这个::askSET/panswer=Hellouser.Doyouwanttousethisprogram?(y/n)IF[/i]%answer%==yGOTOyesIF[/i]%answer%==n(GOTOno)ELSE(ECHOYourinputwasnotaccepted.Pleasetryagain.&GOTOask):yes......:nopause问题是两个if语句都返回false并且它不断地询问我的输入。我想要这样,如果答案既不是y也不是n,则用户必须重新输入他们的答案。有什么帮助吗?谢谢 最佳答案

c++ - 如何判断我的进程是否从 Windows 自动运行键启动?

我很好奇是否有办法从我的进程中知道它是否是从Windows自动运行key启动的?这个:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run编辑:发布这个问题后,我发现显然有办法找出答案。ProcessExplorer不知何故知道:或者它只是扫描注册表,寻找匹配项? 最佳答案 通常,您可以通过安排自动运行注册表项的命令行传递一个特殊参数来指示您是从自动运行启动来执行此操作。这是您唯一可行的选择。 关于c++-如何判断

c# - c# 判断文件或目录是否有删除权限

在我的应用程序中,我试图从隐藏代码中删除文件,但它抛出了名为“访问被拒绝”的错误。谁能告诉我如何判断文件是否有删除权限。提前致谢 最佳答案 你可以只处理异常try{Directory.Delete(dirPath);}catch(UnauthorizedAccessExceptionex){//Accessdenied}如果您尝试在调用Directory.Delete之前找出答案,则极有可能存在竞争条件并且某些东西锁定了目录,这会导致您的程序抛出异常。如果不处理此异常,程序将处于不稳定状态。

ruby - 如何判断哪个架构是 ruby​​ 版本?

感谢Jekyll,我是ruby​​开发的新手,并且想为现有的Ruby安装安装RubyDevKit。我使用的机器有以下版本:ruby2.1.6p336(2015-04-13修订版50298)[x64-mingw32]这个是用chocolateypackagemanager安装的,但是,从名字上看,这个ruby版本是支持x64还是x86架构,我不言自明。ruby版本是x64还是x86?提前致谢。 最佳答案 这是64位版本。x64-mingw32是arch-platform格式。x64架构在mingw32平台上。(平台在这种情况下有点令人

c# - 如何判断csc.exe编译是否成功

我正在尝试使用Windows中的批处理文件随时随地编译一些csharp文件。这是.bat文件C:\windows\Microsoft.NET\Framework\v4.0.30319\csc.exe/t:exe/out:the.exe%1the.exe我的文件有一个Console.Read()调用来阻止窗口关闭并让用户看到执行的输出。我遇到的问题是,如果编译由于某种原因失败,窗口会显示编译问题并立即关闭,因为它永远不会到达Read()调用。我可以在.bat文件的末尾使用pause但如果编译/执行成功,我需要按两次键关闭窗口。我想知道的是编译成功与否。如果成功则执行the.exe或者如果

Windows批处理脚本在if条件下替换子字符串

尝试将11/22/2016替换为11222016。为此,我尝试了以下操作并按预期工作。setstring=dd/mm/yyyy.setfind=/setreplace=callsetstring=%%string:!find!=!replace!%%echo%string%输出是ddmmyyyy但是当我在if条件下尝试这样做时,它没有按预期工作。setlocalenabledelayedexpansionsetisDateFound=falsesetstring=dd/mm/yyyy.if"%isDateFound%"=="false"(echo%isDateFound%setfind

Windows Batch IF !hour! EQU "09"未返回 TRUE

我有一个每10分钟更新一次.txt文件的应用程序。每天一次,文件在0900(上午9点)之后第一次更新,我想发送该文件的电子邮件。更新后的文件(由第3行的SET命令指向)的时间戳可以是0900到0910之间的任何时间。我打算做的是每天在0857运行一个批处理文件,运行15分钟检查文件的日期戳,直到时间变​​为09,然后它发送电子邮件并完成。在下面用于测试函数的代码摘录中,我遇到了简单比较语句的问题:IF!hour!EQU"09"(GOTO:rundailymail)ELSE(Timeout/T6).尽管(根据我运行它时的回显),小时是“09”,但比较返回false。要测试它,您需要一个时

windows - 在批处理文件的 if/else 语句中使用 ")"

这是无法按预期工作的代码段:setMYMACHINENAME=BuildmasterW32if"%MYMACHINENAME%"=="BuildmasterW32"(setPROGRAMFILESDIR=D:\ProgramFilessetWISEDIR=D:\ProgramFiles\WiseInstallationStudio\WiseScriptPackageEditor)if"%MYMACHINENAME%"=="BuildmasterW64"(setPROGRAMFILESDIR=C:\ProgramFiles(x86)setWISEDIR="C:\ProgramFiles(

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