草庐IT

条件判断

全部标签

windows - 有什么方法可以判断 Windows 目录是否可写而无需实际写入它进行测试?

我有一些旧的vb6代码,通过写入Windows目录然后读回值来检查Windows目录是否可写。但是...我们有一个病毒扫描程序将其视为可疑行为,所以我想在不接触它的情况下进行检查。有任何WindowsAPI调用吗?(适用于Win98及以上版本) 最佳答案 这里要记住的是文件系统是易变的。我能看到这段代码被使用的唯一方法是首先检查文件夹是否可写,然后尝试写一些你想写的东西。这里的问题是,对于易变的文件系统,在您进行检查和尝试写入之间,事情可能会发生变化。因此,如果您的写入失败,您仍然必须能够处理异常。这意味着初始检查几乎被浪费了。最好

c# - 如何检查是否安装了 Oracle Client 作为组件安装的先决条件

我正在为我们的组件创建安装包。Pr-requisites之一是应在目标机器上安装最低版本8i的oracle客户端。我该怎么做?我在下面提到了帖子What'sthebestwaytodeterminewhichversionofOracleclientI'mrunning?有了这个,我写了下面的Action。我尝试使用tnsping实用程序进行检查。stringresult=string.Empty;System.Diagnostics.ProcessStartInfoproces=newSystem.Diagnostics.ProcessStartInfo("tnsping.exe")

windows - 如何判断打印机是否支持双向通信

我正在使用PrintSpoolerAPI来自动执行一些打印机管理任务;目前我从事某些需要双向通信的功能,这不是问题(发送BIDI请求和读取输出数据按预期工作)但在尝试执行请求之前,我想确保acual设备支持BIDI通信(以避免任何COM异常)。有关PrintSpoolerComponents的文档解释说,应用程序和驱动程序都必须实现双向通信接口(interface);当然我是为我的应用程序做的(否则无法发送请求),但驱动程序通常由第三方提供。此外,打印提供程序DLL必须实现SendRecvBidiData函数...由于Enablebidirectionalcommunication选项

c# - 条件编译和框架目标

如果目标框架是较新的版本,我的项目的代码可能会在一些小地方得到显着改进。我希望能够更好地利用C#中的条件编译来根据需要切换它们。类似于:#ifNET40usingFooXX=Foo40;#elifNET35usingFooXX=Foo35;#elseNET20usingFooXX=Foo20;#endif这些符号中的任何一个都是免费的吗?我是否需要将这些符号作为项目配置的一部分注入(inject)?这似乎很容易做到,因为我会知道MSBuild的目标是哪个框架。/p:DefineConstants="NET40"人们如何处理这种情况?您要创建不同的配置吗?您是否通过命令行传递常量?

windows - 是否可以将断点条件设置为 "break when called by another thread"?

我正在调查一个可能由多线程引起的问题。数据不断被一个线程读取,我想看看它是否被另一个线程读取。我可以设置断点并按住F5并检查它是否在另一个线程中中断,但这有点烦人。是否可以将断点条件设置为“被另一个线程调用时中断”? 最佳答案 您可以设置一个过滤器(参见UsingBreakpoints)。例如,可以在ThreadId上设置过滤器。要设置过滤器,请右键单击断点,选择Conditions...,然后输入ThreadId!=作为过滤器表达式。确保表达式中没有任何空白字符。否则,您将收到一条不太有用的错误消息。

c++ - 如何判断一个文件或文件夹是在固态硬盘上还是在硬盘上?

如何在C或C++中以编程方式确定指定路径是在闪存(SSD)驱动器上还是在磁性硬盘驱动器上?我只对固定驱动器感兴趣,对可移动驱动器不感兴趣,尽管确定可移动驱动器的类型也很好。我正在寻找一种解决方案来查询Windows对指定路径及其所在的物理驱动器的看法。没有基准测试!另请注意,由于SMRHDD,寻求TRIM支持并不是一种有效的方法。 最佳答案 来自OldNewThing文章:如何判断文件是否在SSD上?Thistakesadvantageofthetrickwelearnedlasttimewhereyoucanmakeastorag

windows - 如何判断命名管道的服务器端是否是管理员?

我正在尝试在WindowsXPSP2+上使用命名管道。管道服务器将是一项服务,作为某种管理员/系统级帐户运行。管道客户端可以是任何用户,可能是访客,也可能是管理员。就我而言,我可以让guest帐户与我以管理员身份运行的服务成功通信。在我开始在客户端代码中使用管道之前,我想验证管道的另一端是否确实由管理员/系统拥有。我发现了GetSecurityInfo函数,我认为我应该能够将其用作解决方案的一部分。但是,我不知道如何从SID到“是管理员”检查。 最佳答案 由管理帐户(包括系统帐户)创建的所有对象的默认所有者是众所周知的管理员组,您不

java - 如何判断 Java 是否作为 Windows 服务运行以及是否使用了 -Xrs 标志

我们的Java应用程序在Windows上反复出现的一个问题是客户将其作为Windows服务运行而未指定Java-Xrs标志。这样,当管理员注销Windows机器时,Java进程会收到终止信号并终止,从而导致看似随机的生产中断情况。我想在服务器日志文件和监控工具中添加一个关于此配置问题的警告。为了做到这一点,我想知道:1.我的Java应用程序是否作为Windows服务运行?2.是否将-Xrs标志指定为java.exe命令的一部分?欢迎任何关于如何实现这一目标的想法。 最佳答案 找到了如何检查-Xrs标志,仍然需要确定是否作为服务运行:

c - 判断两个文件是否属于同一个卷

我在一些ntfs硬链接(hardlink)项目中工作。我想知道如何确定两个文件(具有完整路径)是否属于同一卷。 最佳答案 查找与文件关联的卷信息的几个选项:找到这两个文件的根路径,并使用GetVolumeInformation查找卷名称。打开文件句柄并将其传递给GetVolumeInformationByHandleW.请注意,GetVolumeInformationByHandleW需要Vista,即它在XP上不可用。通过比较卷序列号检查是否相等。 关于c-判断两个文件是否属于同一个卷

windows - Puppet:使用除非选项的条件执行

Puppet版本为3.7,操作系统为Windows7。我正在尝试创建仅在某些Windows注册表值不存在时才会执行的Puppetexec。我正在尝试使用这样的代码:exec{'example':path=>'C:\Windows\System32',command=>'something',unless=>'regquery"HKEY_LOCAL_MACHINE\Software\Mykey"/f5.1',}如果我使用regquery在命令行上我得到:C:\>regquery"HKEY_LOCAL_MACHINE\SOFTWARE\Mykey"/f5.1HKEY_LOCAL_MACHI