Articles of winapi

Windows中多显示器设置的每个屏幕的不同壁纸

我在用着: ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, "picturefile", 0) 要更改壁纸。 但我想知道是否有任何简单的方法来在每个屏幕上放置不同的壁纸。 虽然这个function在Windows中不是标准的,但是有像Ultramon这样的外部应用程序。 任何人都知道如何工作? 我认为这可能会工作,如果我一起join到一个两个图像,然后制作壁纸,但是我仍然需要一种跨越两个屏幕上的一个图像的方式。 另外,我怎样才能获得关于显示器设置,每个屏幕的分辨率和他们的位置的一些信息? 就像你在GUI中看到的gui显示设置一样,但是在数字上。

如何创build系统还原点?

安装paint.net,我发现一个string创build系统还原点… 我想这是为卷影服务创build一个还原点。 – 不是吗? 我不确定。 如果我是对的,我怎么在我的应用程序中做到这一点? 请让我知道,如果有适当的蜜蜂。

系统错误0x5:CreateFileMapping()

我希望使用命名共享内存来实现IPC。 为此,其中一个步骤是使用CreateFileMapping()获取映射内存对象的句柄。 我完全按照MSDN网站的build议来做: http : //msdn.microsoft.com/zh-cn/library/aa366551( v=VS.85) .aspx : hFileMappingHandle = CreateFileMapping ( INVALID_HANDLE_VALUE, // use paging file NULL, // default security PAGE_READWRITE, // read/write access 0, // maximum object size (high-order DWORD) 256, // maximum object size (low-order DWORD) "Global\\MyFileMappingObject" // name of mapping object ); DWORD dwError = GetLastError(); 但是,返回的句柄始终是0x0 ,并且返回的系统错误代码是: 0x5(拒绝访问)。 只有命名内存共享所需(不是文件共享)。 […]

用Win API设置壁纸

我想以编程方式设置壁纸。 这是迄今为止唯一的解决scheme: SystemParametersInfoW(SPI_SETDESKWALLPAPER, 1, (void*)wallpaperImageFilePath.utf16(), SPIF_UPDATEINIFILE | SPIF_SENDCHANGE); 我的问题是:如何告诉Windows我想壁纸图像居中(不resize)? 上面的解决scheme总是将图像设置为拉伸模式。 根据MSDN, SPI_SETDESKWALLPAPER没有标志。

如何防止用户查杀C#应用

如果您在pipe理员想要结束进程时看到ESET Smart Security或Deep Freeze,则会看到一个错误,指出“拒绝访问” 我如何保护我的C#应用​​程序免于有人杀死它

本地化的指数表示法?

我试图将数字转换成本地化的string。 对于整数和金钱的价值很简单,因为string只是一系列的数字和数字分组分隔符。 例如: 12 345 678 901 (保加利亚语) 12.345.678.901 (加泰罗尼亚语) 12,345,678,901 (英语) 12,34,56,78,901 (印地语) 12.345.678.901 (弗里斯兰语) 12?345?678?901 (普什图语) 12'345'678'901 (德语) 我使用Windows GetNumberFormat函数格式整数(和GetCurrencyFormat格式货币值)。 但有些数字不能用固定的符号来合理地表示,需要科学记数法 : 6.0221417930×10 23 或更具体地E符号 : 6.0221417930E23 我怎样才能得到科学记数法的本地化版本? 我想我可以使用本地化的数字构造它: 6.0221417930E23 6,0221417930E23 6.0221417930e23 6·0221417930E23 6·0221417930e23 6,0221417930e23 6,,0221417930e23 6.0221417930E+23 6,0221417930E+23 6.0221417930e+23 6,0221417930e+23 6·0221417930E+23 6·0221417930e+23 6,,0221417930e+23 6.0221417930E23 6,0221417930E23 6.0221417930e23 6,0221417930e23 6·0221417930E23 6·0221417930e23 6,,0221417930e23 6.0221417930X10^23 6,0221417930X10^23 6.0221417930×10^23 […]

如何强制Windows清除所有磁盘读取caching数据?

可能重复: 如何使文件系统caching失效? 我正在写一个磁盘密集的win32程序。 第一次运行时,运行速度比使用FindFirstFile()/ FindNextFile()扫描用户的文件夹要慢很多。 如何在不重新启动的情况下重复第一次演奏? 有没有办法强制系统丢弃磁盘caching中的所有内容? 我知道,如果我正在读取单个文件,则可以通过将FILE_FLAG_NO_BUFFERING标志传递给CreateFile()的调用来禁用caching。 但是在search文件时这样做似乎不可能。

从应用程序中获取应用程序版本

有没有一种简单的方法在运行时从资源文件中获取应用程序版本信息? 实际上,我希望能够在运行时显示“版本XYZ”,而不必在单独的variables某处保留与我的ProductVersion和FileVersion同步的variables。 澄清:是的,这是一个标准的C ++ Windows项目。 我知道的GetFileVersionInfo方法,但它似乎很难从内存中的版本打开二进制只是为了查询版本信息 – 我敢肯定我失去了一些明显的东西:-)

检测Windows(IE)代理设置更改

我使用WinHttpGetIEProxyConfigForCurrentUser和朋友收集当前的代理信息,当我的应用程序启动时,在每个请求看起来会大大降低性能,因为它坐几秒钟收集代理数据。 有没有一种方法来检测Windows代理设置何时更改,以便我可以caching信息,直到它更改? 谢谢,J

Windows UAC对话框

我有一个没有资源的应用程序(根本就没有UAC清单)。 此应用程序使用CopyFile将其自身安装到appdata / roaming文件夹。 它还设置自动启动,以便在每次启动时自动启动。 现在,随着电脑的每一个开始,UAC对话框popup并说,应用程序不会改变电脑。 如果它位于appdata中,它也在图标上有盾牌标志。 我怎样才能删除图标中的对话框/屏蔽? Windows是否检测到复制文件API并自动设置它? 感谢您的回答。