草庐IT

c++ - 我可以直接访问 Windows 内核系统调用吗?

我一直在研究Windows内部结构,最近才了解系统调用,我想知道是否可以像函数一样使用这些系统调用?我知道它们并不是真的要从外部访问。例如:NtUserEmptyClipboard是Win32k.sys中的一个系统调用,它的地址是0x117f如果我想像函数一样使用这个调用,我该怎么做呢? 最佳答案 你想做什么在很大程度上取决于你感兴趣的架构,但要知道的是,ntdll.dll是每个系统调用的用户模式蹦床-即唯一的一个在一天结束时实际进行系统调用的是ntdll。因此,让我们通过打开任何旧的exe(我选择记事本)在WinDbg中反汇编这些

windows - 我可以让这个脚本更快吗?

我为实习编写了一个简单的脚本,它遍历提供的目录并删除任何超过指定天数的文件。我今天把所有的空闲时间都花在了试图收紧它。到目前为止,这是我得到的:functiondelOld($dir,$numDays){$timespan=new-timespan-days$numDays$curTime=get-dateget-childItem$dir-Recurse-file|where-object{(($curTime)-($_.LastWriteTime))-gt$timespan}|remove-Item-whatif}下面是函数调用的例子:delOld-dir"C:\Users\me\

windows - 我可以在多处理器机器中禁用一个或多个处理器吗?

我的服务器有两个四核处理器,安装了windows2003标准版。我想在配备单个四核处理器的机器上测试应用程序,并且我想使用这台机器,那么如何禁用两个处理器中的一个?我更喜欢软件解决方案,但如果唯一的解决方案是硬件也没问题。 最佳答案 快速而肮脏:使用任务管理器,选择进程,然后使用关联位为该进程禁用您喜欢的任何内核。对于调试也非常有用。 关于windows-我可以在多处理器机器中禁用一个或多个处理器吗?,我们在StackOverflow上找到一个类似的问题: h

python - 我可以用 Python 中的一个命令写入终端和给定文件吗?

我已经看到关于Bash的这个问题的回答,但找不到用于Python的问题。如果这是重复的话,我们深表歉意。是否可以使用一条命令打印到终端和输出文件?我熟悉print>>和sys.stdout=WritableObject的使用,但我想避免为要记录的每一行重复打印命令。我正在使用Python2.6,以防万一需要这些知识。更重要的是,我希望它使用IDLE的命令行在基于Windows的系统上运行。所以,本质上,我希望python脚本向IDLE的终端和给定的日志文件报告。编辑:对于发现此问题并决定采用我选择的答案的任何人,如果您需要帮助理解上下文管理器(就像我一样),我推荐DougHellman

windows - 我可以在批处理脚本中的一个 "find"命令中搜索多个字符串吗?

我有一个Windows批处理脚本,可以在文件中查找字符串find/i"WD6"%Inputpath%file.txtif%errorlevel%==0GOTOsomestuff目前我的代码是这样的。我遇到了一个新字符串,我想在同一个文件中搜索它,如果找到它,它会执行相同的操作,它将它存储在一个名为%acctg_cyc%的变量中,我可以同时搜索两个字符串吗在一行代码中?我试过这个:find/i"WD6"%acctg_cyc%%Inputpath%file.txtif%errorlevel%==0GOTOsomestuff但它似乎忽略了%acctg_cyc%并且只在file.txt中寻找“

c++ - 我可以从对话框的 DoModal 函数返回自定义值吗?

我想做的是,在使用DoModal()创建一个对话框并在框中按OK退出它之后,返回一个自定义值。例如,用户将在对话框中输入的几个字符串。 最佳答案 您不能更改DoModal()函数的返回值,即使可以,我也不推荐这样做。这不是执行此操作的惯用方式,如果您将其返回值更改为字符串类型,您将无法看到用户何时取消对话框(在这种情况下,返回的字符串值应该完全忽略)。相反,向对话框类添加另一个(或多个)函数,例如GetUserName()和GetUserPassword,然后在DoModal返回IDOK。例如,显示对话框和处理用户输入的函数可能如下

c# - 如何确保该进程仍在运行以便我可以杀死它?

我有一个进程,我想杀死;然而,有时这会产生InvalidOperationException,表示进程已经退出。为了防止异常,我尝试检查进程是否退出:if(!p.HasExited){p.Kill();}但是,我仍然偶尔会看到异常。由于该进程与我的代码并行运行,我假设问题本质上可能是竞争条件,即进程在检查和Kill()调用之间终止。在不引发上述异常的情况下终止进程的正确方法是什么?当然,我可以trycatch有问题的代码,但这似乎不是解决此问题的最佳方法。 最佳答案 你无法解决这个问题,因为有一个内置的竞争条件:当你调用p.HasE

windows - 我可以在 Windows 机器中使用的最大 RAM 量是多少?

显然,这是64位Windows。另外,单个64位进程可以使用的最大内存量是多少?我有点指望用它全部......(是的,我知道我在做什么,请不要告诉我,如果我需要那么多RAM,我一定是做错了什么)此外,这对于.Net2.0进程是否相同?或者.Net是否有下限? 最佳答案 什么版本的windows?从XP到Vista,从家庭版到商业版的Vista,它都不同,我会再次猜测服务器。参见hereformoreinfoonmaximumramfordiffrentwindowsversions对于WindowsServer2008Datacen

windows - 我可以使用什么来代替 Unix 管道在 Windows 上进行进程间通信?

我有一个启动子进程的应用程序。子进程从标准输入读取要操作的文件。对于某些操作,它需要一个输入文件,其中包含有关如何处理它所操作的文件的信息——我们称之为“控制文件”。控制文件的名称也从标准输入中读取。父应用程序可以使用临时文件作为控制文件,但我更愿意避免使用真正的磁盘备份文件。在Linux上,这很简单:我可以创建一个Unix管道,fork,在启动子进程之前关闭管道的各个端点,然后使用/dev/fd/3(或任何文件描述符)作为控制文件名,然后将控制数据写入父应用程序中的管道。或者,我可以在/tmp(或其他任何内容)中使用命名管道。我怎样才能在Windows上实现类似的功能?Windows

c++ - 我可以使用什么工具来分析内存使用情况?

关闭。这个问题不满足StackOverflowguidelines.它目前不接受答案。想改善这个问题吗?更新问题,使其成为on-topic对于堆栈溢出。7年前关闭。Improvethisquestion我有一个使用C++使用VisualStudio2008编写的Windows应用程序。我想获取有关内存使用情况的统计信息,以找到处理内存使用情况的瓶颈和位置。理想情况下,我希望有一个工具可以做到这一点,而无需进入并向代码本身添加计数器/分析逻辑。基本上我正在寻找的是:所有分配的列表(释放与否无关紧要,每次分配时我都想知道)每次分配的调用堆栈和一个计数器,表示调用代码和分配内存的次数。有关已