草庐IT

条件判断

全部标签

c++ - 确保 Windows 正确初始化指向导入函数的函数指针所需的条件是什么?

导入库的实现方式——在here中有描述。—令我感到惊讶的是,指向导入函数的函数指针从未被初始化。据说——来自ahighlyacclaimedarticle—这些函数指针以某种方式被视为IAT中的一个条目,以便Windows及时适本地初始化它们。这些看起来像普通函数指针的函数指针有什么特别之处,使得编译器将它们视为IAT中的一个条目? 最佳答案 C++编译器可以通过两种方式实现在C++代码中声明的函数指针,这些函数指针使用指向导入函数的指针进行初始化。对于C++编译器,最简单的方法是用导入库中stub函数的地址初始化指针。或者,它可以

windows - 批处理 - 启动函数的 IF ELSE 条件不管怎样都会执行

如果这里有帖子可以回答我的问题,请提前致歉,我从周五开始就一直在研究这个问题,并且一直在四处寻找。我确实发现了一些类似的问题,但没有一个是我可以应用或适应的(据我所知)。简而言之,我有一个批处理脚本,它创建一个目录的文本文件,然后该脚本在该目录中搜索一个文件。如果文件存在,它会关闭,如果文件不存在,它会运行安装程序。我的脚本atm看起来像这样:@echooffdir"C:\SomeDirectory">DIRECTORY.txttimeout5>Nulfindstr"SomeProgram.exe"DIRECTORY.txtifErrorLevel=0(@echoProgramFoun

windows - 如何判断另一个进程是否有事件的前台窗口? (Win32 API vb.net)

user32.dll提供了从进程可执行名称中获取进程id的函数,我还可以获得用户正在工作的事件窗口或前景窗口。我可以确定目标进程打开了哪些窗口吗?否则,我能否找出打开前台/事件窗口的进程的详细信息?我的代码只需要在另一个特定进程正在运行并且用户正在主动使用该窗口时运行,而该窗口是桌面上的事件窗口、前景窗口和当前焦点窗口。 最佳答案 我想你想使用GetWindowThreadProcessId或者可能EnumThreadWindows 关于windows-如何判断另一个进程是否有事件的前台

windows - 如何判断 ReadFileEx() 重叠 I/O 何时完成?

HasOverlappedIoCompleted()不适用于以ReadFileEx()开头的异步I/O和WriteFileEx().底部的代码片段演示了这一点。在此示例中,ReadFileEx()从没有输入的管道中读取数据,因此读取不会完成。但是HasOverlappedIoCompleted()返回TRUE。如果我将调用更改为重叠的ReadFile(),则HasOverlappedIoCompleted()会按预期返回FALSE。我的问题是:如何在不依赖回调本身的情况下,找出带有回调的重叠I/O请求是否已完成?在我的应用程序中,APC可能已经排队,但不一定已经运行,因为应用程序可能尚

windows - WiX 安装程序条件编译?

我的主要可执行文件有两个版本:standard和premium。为了简化开发,它们是通过更改特殊的#define变量从VisualStudio中的单个解决方案构建的。现在我很好奇是否可以对这个项目的WiX安装程序做同样的事情?我基本上需要控制只包含以下xml节点之一:1:对于标准版本MSI:及以后:2:对于premium版本MSI:然后:附言。我显然可以制作2个WiX项目...我正在寻找一种方法来完成它。 最佳答案 我找到了。Hereitis对于其他感兴趣的人。 关于windows-Wi

windows - 如何判断应用程序是否被锁定或只是需要很长时间

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭7年前。Improvethisquestion项目说明我为CAD系统编写了一个插件,可以批量翻译CAD文件。我希望能够在无人值守的情况下运行插件。在处理CAD文件时,有时会从CAD程序本身请求用户交互。在这个项目中与我合作的另一个人使用AutoIt编写了一个程序来响应消息框,这适用于遇到的大多数情况。插件使用VisualStudio2010用C++编写,脚本程序使用AutoIt。操作系统为Windows7。问题某些CAD文件会导致CAD程序锁定。我们

windows - 使用批处理文件删除有条件的特定文件夹

我是批处理脚本的新手,不知道如何编写一个批处理文件来删除c:\root中具有条件的特定文件夹。条件:如果文件夹名称不是“Paul”、“Mike”、“Daniel”和“皮埃尔”如果文件夹没有子文件夹或文件Action:删除那个文件夹。在我的例子中,c:\root\test1应该和这个批处理文件一起删除。c:\rootc:\root\Paulc:\root\Mikec:\root\Mike\assignmentc:\root\Mike\assignment\assignment1.txtc:\root\Danielc:\root\Daniel\examc:\root\Pierrec:\ro

c# - 如何判断提供的文件是否真的是注册表配置单元

我正在处理注册表配置单元,我需要知道用户提供给程序的文件是否真的是注册表配置单元。如果不尝试挂载它,我如何判断该文件是否真的是注册表配置单元? 最佳答案 有趣的问题,在四处挖掘后,有一个电话是OfflineRegistryLibrary的一部分它将尝试验证配置单元并报告它是否成功,但它是Win32/COM的一部分OROpenHive听起来像您想做的,只是没有直接的.NET实现 关于c#-如何判断提供的文件是否真的是注册表配置单元,我们在StackOverflow上找到一个类似的问题:

c# - 我可以判断另一个进程是否正在创建文件吗?

我正在编写一个Windows服务来处理由我无法控制的另一个进程创建的文件。这些文件可能非常大(数百兆字节)。我需要处理文件,然后在创建文件后将其删除。所有文件都将写入特定目录(据我所知只是一个直接的文件副本),因此我可以定期迭代该目录中的文件,处理它们然后删除它们。我担心的是,如果我的服务在写入大文件期间查询目录会发生什么情况?该文件会出现在我的服务中吗?它会被锁定以便我无法获得读取权限吗?我是否需要执行任何特殊操作来检查文件是否已完成复制,或者我是否可以只查询File.Exists()或尝试使用FileAccess.Read打开它。Windows如何标记正在复制的文件?

c - 如何判断应用程序是否已经在运行? C 可移植 Linux/Win

有没有一种方法可以编写C代码,使我们能够确定应用程序的先前实例是否已经在运行?我需要以适用于Linux和Windows的可移植方式检查这一点,两者都使用可用的最新版本的GCC。任何可移植代码的例子都会有很大的帮助。我现在看到两个选项:检查进程列表。这里linux有很好的工具,但我认为相同的功能不适用于windows。也许两个SO都有一些gnu库?什么库或函数?保存并锁定文件。现在,如何以两个系统都能理解的方式做到这一点?一个问题是在哪里保存文件?每个系统的路径树都不同。此外,如果选择相对路径,两个应用程序仍然可以使用不同目录中的不同锁定文件运行。谢谢!成为。附言。SO有不同的要求,所以