Articles of winapi

WINAPI代表什么?

我已经开始在C中学习Win32 API了。我看到主函数是类似的 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { .. } 但是我知道C中的一个函数是类似的 [ReturnType] [FunctionName] (Args) { .. } 在这种情况下,返回types是int,函数名称是WinMain。 那么WINAPI代表什么,是否有必要? 谢谢 。 🙂

如何在WIN32中查找string的宽度(以像素为单位)

你能比在使用GetTextMetrics函数和使用tmAveCharWidth * strSize更精确地在WIN32中测量string的宽度吗?

如何使用C#读取WMI中的ManagementObject集合

我在网上find了一个代码,并试图获得更多有关莫[]的信息 。 我正在尝试获取ManagementObjectCollection中包含的所有信息。 由于mo中的参数正在寻找一个我不知道的string值,我怎么才能得到所有的值而不知道它的参数值。 或者,如果我想在ManagementObjectCollection获取与mo相关的所有索引值 ManagementObjectSearcher objOSDetails = new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem"); ManagementObjectCollection osDetailsCollection = objOSDetails.Get(); foreach( ManagementObject mo in osDetailsCollection ) { _osName = mo["name"].ToString();// what other fields are there other than name _osVesion = mo["version"].ToString(); _loginName = mo["csname"].ToString(); }

在Windows的select.select中使用sys.stdin

可能重复: 可以select()与Windows下的Python文件一起使用? 在UNIX上,我能够将sys.stdin传递给Python中的select.select 。 我正在尝试在Windows上执行此操作,但在Windows上的Python select.select将不允许执行此操作。 为了更准确地描述我在做什么,请参阅https://github.com/eldarion/gondor-client/blob/ccbbf9d4b61ecbc2f66f510b993eb5fba0d81c09/gondor/run.py 。 unix_run_poll函数是我正在尝试在Windows上完成的。 基本的想法是,我有一个套接字连接到一个服务器,已经连接streamstdin,标准输出,stderr到远程运行的进程,我正在与本地客户端交互,使它看起来好像本地客户端正在运行处理。 win32_run_poll是我将它移植到Windows上的尝试,它确实有效。 这是一个有点不可思议的方法,国际海事组织,是非常糟糕的。 有没有人有这样的build议可以改善? 对win32api的依赖是不太理想的,但我没有保留它。

如何手动读取/写入.exe机器码?

我不熟悉编译器的魔法。 对于我来说,将人类可读的代码(或不是真正可读的汇编指令)转换成机器代码的行为,对于我来说,火箭科学与魔法相结合。 我将把这个问题的主题缩小到Win32可执行文件(.exe)。 当我用专门的浏览器打开这些文件时,我可以在各个地方findstring(通常每个字符16b),其余的只是垃圾。 我认为不可读的部分(多数)是机器代码(或者可能是资源,比如图像等)。 有没有直接阅读机器代码的方法? 作为一个文件stream打开该exe文件,并逐字节读取它,如何将这些单独的字节转换为汇编? 在这些指令字节和汇编指令之间有直接的映射吗? .exe是如何写的? 每个指令四个字节? 更多? 减? 我注意到一些应用程序可以像这样创build可执行文件:例如,在ACD中请参阅您可以将一系列图像导出为幻灯片。 但是,这不一定是一个SWF幻灯片,ACD See也能够生成EXEcutable演示文稿。 这是怎么做的? 我如何理解EXE文件里面发生了什么?

Python – 从Web应用程序启动一个长时间运行的进程

我有一个Python Web应用程序,需要启动一个长时间运行的过程。 问题是我不希望它等待整个过程完成。 刚刚启动并完成。 我在Windows XP上运行,Web应用程序在IIS下运行(如果有的话)。 到目前为止,我试图popen,但似乎没有工作。 它一直等到subprocess结束。

如何将UNC转换为本地path

我正在寻找一种方法来获得给定的UNCpath相应的本地path。 微软为此提供了一个小型库CheckLCL 。 所有Windows版本都不支持此库。 有没有人知道这个开源的方法? 还有MAPI函数ScLocalPathFromUNC ,但不知道它是否适用于所有平台。

处理消息太慢,导致一个干扰,无响应的用户界面 – 我怎样才能使用多个线程来缓解呢?

我无法保持我的应用程序响应用户操作。 因此,我想在多个线程之间拆分消息处理。 我可以简单地创build几个线程,从它们中的同一个消息队列中读取,并且让每个消息处理哪个消息? 如果是这样,那怎么能做到呢? 如果不是的话,你能提出解决这个问题的另一种方法吗?

使用系统托盘图标创build一个后台进程

我试图做一个Windows应用程序,在后台检查一些事情,并通过系统托盘图标通知用户。 该应用程序使用Not managed C ++制作,没有选项切换到.net或Java。 如果用户想要停止应用程序,他将使用托盘图标。 该应用程序不能是一个服务,因为系统侧,因为它必须运行,而无需在用户计算机上安装任何东西(这是一个单一的.exe) 使用典型的Win32程序结构(RegisterClass,WndProc等)我不知道如何放置一些代码来运行窗口消息循环。 也许我必须使用CreateProcess()或CreateThread()? 这是处理multithreading环境的正确方法吗? 如果我必须使用CreateProcess()/ CreateThread(),我怎么可以在两个线程之间交stream? 谢谢 ;)

如何调用shell的“文件复制对话框”来报告在Win32中复制的进度?

我怎样才能通过调用Windows“复制文件”对话框来复制文件呢? SHFileOperation看起来像一个选项,但它在我们的过程中。 顺便说一下, SHFileOperation是否有GUI界面? 它是否与Windows复制对话框完全相同?