草庐IT

api安全

全部标签

c++ - 在将 ASCII 字符串传递给 Windows API 函数之前将它们转换为 UTF-16

在我当前的项目中,我一直在使用宽字符(utf16)。但是由于用户的唯一输入将是一个url,无论如何它都必须以ascii和另一个字符串结束,所以我正在考虑将整个程序切换为ascii。我的问题是,在将字符串传递给WindowsAPI函数之前将它们转换为utf16有什么好处吗?在网上做了一些研究后,如果您不在Windows上使用UTF-16,似乎很多人都推荐这个。 最佳答案 在WindowsAPI中,如果你调用像这样的函数intSomeFunctionA(constchar*);然后它会自动将字符串转换为UTF-16并调用函数的真实、Un

windows - 使用 Win API 设置壁纸

我想以编程方式设置壁纸。这是迄今为止我找到的唯一解决方案:SystemParametersInfoW(SPI_SETDESKWALLPAPER,1,(void*)wallpaperImageFilePath.utf16(),SPIF_UPDATEINIFILE|SPIF_SENDCHANGE);我的问题是:如何告诉Windows我希望墙纸图像居中(不调整大小)?上面的解决方案总是将图像设置为拉伸(stretch)模式。根据MSDN,SPI_SETDESKWALLPAPER没有任何标志。 最佳答案 从Windows8开始,现在有一个用

c - 在 win32 api 中的文本文件末尾追加文本

这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭9年前。我试图打开一个文本文件,向其中写入一些数据,然后在已写入文件的数据末尾追加一些数据,但这不起作用。任何人都可以帮我找出我的代码的问题吗?代码片段:charbuffer[]="Writethistexttofile";DWORDdwWritten;//numberofbyteswrittentofileHANDLEhFile;hFile=CreateFile

windows - 是否有 Windows API 调用可以告诉我是否在 64 位操作系统上运行?

是否有WindowsAPI调用可以告诉我是否在64位操作系统上运行?我有一些遗留的c++代码调用GetVersionEx来填充OSVERSIONINFO结构,但它只告诉我(AFAIK)操作系统(Vista、V7等),而不是处理架构。我可以通过简单地查找“C:\ProgramFiles(x86)...”的存在来解决这个问题,但这看起来很难看。我确定必须有一个API来返回此信息。 最佳答案 IsWow64Process可能正是您正在寻找的。 关于windows-是否有WindowsAPI调用

c++ - 如何使用 C++ 和 Windows API 将击键/消息发送到 Windows 7?

例如,程序是否可以向Windows7(运行它的操作系统)发送击键或消息,以模拟用户物理按下键盘上的Windows键的效果?在C++中,使用WindowsAPI? 最佳答案 SendInput功能已经存在很长时间了,应该可以满足您的需要。 关于c++-如何使用C++和WindowsAPI将击键/消息发送到Windows7?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/919010

c# - 在 C# 中使用 win32 API 操作简单的 Windows 计算器?

好吧,我已尽力查看代码示例并在网络上发布有关如何执行此操作的帖子,但在几个月内我无法使用WindowsAPI与其他人交互取得任何进展已经在运行的程序。我不是最伟大的程序员,其中一些东西超出了我的范围。我能做的最多的就是找到计算器进程及其句柄,然后将其与SetWindowText一起使用以更改标题。我真正想学习的是让我的程序使用windowsuser32(我认为这一定是正确的库)通过实际按下软件计算器上的数字键按钮来输入一些数字来进行简单的计算。我并没有真正使用这个程序,这只是我试图达到的一个目标,即学习如何使用WindowsAPI,超过我在C#中的初级水平。如果没有人知道这方面的代码,

windows - 在 Windows 命令中使用密码参数是否安全?

假设我们有一个可以接受密码(或其他敏感信息)参数的程序或脚本:>program.exe/password:secret对于Linux,最佳实践通常建议反对直接在命令行上指定密码,因为存在潜在的安全问题(密码可能出现在shell的历史文件和系统的进程表中):$./program.sh--password'secret'&[1]4152$cat/proc/4152/cmdline/bin/sh./program.sh--passwordsecret但是,在四处搜索时,我没有看到针对Windows的同样强烈的推荐。在为Windows编写程序和脚本时,除了命令行选项的参数之外,我们是否应该提供

.net - 文件的安全流更新

我们通过将新记录写入临时文件来执行大型文本文件的更新,然后用临时文件替换旧文件。一个大大简化的版本:vartpath=Path.GetTempFileName();try{using(varsf=newStreamReader(sourcepath))using(vartf=newStreamWriter(tpath)){stringline;while((line=sf.ReadLine())!=null)tf.WriteLine(UpdateLine(line));}File.Delete(sourcepath);File.Move(tpath,sourcepath);}catch

windows - 复制 Windows XP 上正在运行的进程使用的 dll 是否安全?

这是在WindowsXP上。我有一个正在运行的进程(我想保持运行)。如果我复制它使用的dll(例如,将其替换为较新的版本),这是否会导致正在运行的进程出现问题,或者代码是否已经加载,所以这无关紧要? 最佳答案 您不应该复制正在运行的进程正在使用的dll。为了替换dll,需要将其标记为删除并在下次重新启动时替换。如果您希望手动执行此操作,则需要停止该过程。如果您可以复制它-那么dll没有像您怀疑的那样被使用,如果它被延迟绑定(bind)那么您可以在一个过程中复制它进程没有主动锁定它的时间-并且提供dll的内部结构对事件进程没有任何不利

windows - 不同的 Windows 操作系统使用了多少个安全环?

我问这个问题,因为我试图搜索所有Windows操作系统(从9x到Windows8,包括WindowsCE/Embedded)的信息,但没有成功,我没有得到准确的计数不同版本的铃声,关于内存范围等。MSDN中有一些关于native开发(KMDF)的信息,但仅适用于比Win32更低级别的工作,并且没有关于所有环和访问每个环的完整信息。你能帮我回答这个问题吗? 最佳答案 现在没有主要操作系统(至少在桌面上没有)使用超过2个环,原因很简单,在一个主要体系结构上,进行系统调用的现代高效方式(例如SYSENTER)专门支持从ring-3到rin