Articles of winapi

文件大小 – 磁盘上使用的实际字节数(未分配)

可能重复: 获取磁盘上文件的大小 有没有一种方法来检索磁盘上使用C#/ windows的特定文件的实际字节数? 我的应用程序实现了“监视”文件夹,类似于FileSystemWatcher。 共享存储(networking和光纤通道SAN)上有一些监视文件夹,本地连接的存储上有其他监视文件夹。 通过完全不受我控制的进程将文件复制到监视文件夹中,大小从1 GB到大于500 GB。 由于共享文件系统的性质,希望在“独占”(FileMode.Open,FileAccess.Read,FileShare.None)打开文件时出现exception也不起作用。 这些监视文件夹不应该采取行动,直到一个文件被完全复制/closures,否则下游会出现问题。 为了获得磁盘上使用的“真实”文件大小,我尝试过: System.IO.FileInfo GetFileSizeEx(kernel32 p / invoke) FindFirstFileEx(kernel32 p / invoke) GetCompressedFileSize&GetDiskFreeSpace(kernel32 p / invoke) 任何build议将非常感激。 看来我正在处理Windows操作系统的限制?

dpinst.exe在Windows 7中的行为与标准的用户权限

我在我的驱动程序包中使用dpint.exe。 我正在面对Windows 7 64位操作系统下面提到的情况。 启用UAC后,它将在pipe理员模式(具有pipe理员权限的用户),标准用户模式和访客模式下按预期工作。 (即,在标准用户模式和访客模式下提示要求pipe理员密码的窗口)。 当UAC被禁用时,在pipe理员模式下(具有pipe理员权限的用户),它“从不”显示任何窗口,说“你想让下面的程序改变这台电脑”。 (这种行为也是一个预期的!)“,但在标准的用户模式,当我点击驱动程序安装程序可执行文件(内部调用dpinst.exe)系统挂起,当我试图重新启动它说一个后台进程正在运行,做你如果上面的问题是由于“Dpinst.exe需要pipe理员权限”,为什么Windows没有显示警告消息,而是被绞死? ? 以及如何告诉用户更改为pipe理员继续安装..

如何使用callback示例vc实现icmpsendecho2asynchronous

我需要使用ApcRoutinecallback例程asynchronous使用IcmpSendEcho2 API命令。 我有一个问题是我需要定义的ApcRoutinecallback例程的签名是什么样的? 当我打电话给IcmpSendEcho2第三个参数是什么样的? 我有15个代理请求被发送。 我只能用IcmpSendEcho2请求一次或多次。 如果我需要一次发送多个IcmpSendEcho2请求。 callback函数ApcRoutine如何知道哪个IcmpSendEcho2调用完成。 我猜这是ApcContext参数进入的地方? 我无法findMSDN或其他地方的任何示例代码,演示如何asynchronous使用IcmpSendEcho2命令。

如何使用DoEvents()而不是“邪恶”?

一个简单的searchDoEvents带来了很多的结果,基本上,导致: DoEvents是邪恶的。 不要使用它。 使用线程代替。 一般引用的原因是: 重入问题 performance不佳 可用性问题(例如,在禁用的窗口上拖放) 但是一些值得注意的Win32函数(如TrackPopupMenu和DoDragDrop 执行自己的消息处理以保持UI的响应,就像DoEvents一样。 但是,这些问题似乎都没有遇到这些问题(performance,重新入侵等)。 他们是如何做到的呢? 他们如何避免DoEvents引用的问题? (或者他们?)

读取进程的进程内存不会返回所有内容

我正在尝试扫描第三方应用程序的内存。 我已经find了地址; 现在是0x0643FB78 。 因为LPMODULEENTRY32->modBaseAddr是0x00400000 , LPMODULEENTRY32->modBaseSize只是0x006FF000 ,所以我永远不会在那里0x006FF000 ,因此我可以扫描这个模块的最大地址是0x00AFF000 。 这是否意味着我寻找的地址是否存在于另一个进程/模块/线程/内? 我非常有信心,我所拥有的过程确实包含了地址。 那么我应该如何访问内存呢? 谢谢。

如何获得Java中的所有窗口句柄的列表(使用JNA)?

我是JNA的新手。 我正试图得到包括最小化的所有窗口句柄。 我需要所有窗口的HWND 。 我经历了Windows的问题:如何获得所有可见窗口的列表? 这帮助我得到了Windows的列表,但它有hWndtypes为int。 我不能用com.sun.jna.platform.win32.User32函数来请求com.sun.jna.platform.win32.WinDef.HWNDtypes的hWnd 。 所以,有没有办法得到所有types的com.sun.jna.platform.win32.WinDef.HWND而不是int指针的窗口句柄? 最后,为什么int和HWND的区别? 它如何接受? 我有点困惑。 谢谢。 我有下面的代码(从Hovercreft的答案编辑): import com.sun.jna.Native; import com.sun.jna.Pointer; import com.sun.jna.platform.win32.User32; import com.sun.jna.platform.win32.WinDef.HWND; import com.sun.jna.platform.win32.WinDef.RECT; import com.sun.jna.platform.win32.WinUser.WNDENUMPROC; public class TryWithHWND { public static void main(String[] args) { final User32 user32 = User32.INSTANCE; user32.EnumWindows(new WNDENUMPROC() { int count = 0; public boolean callback(HWND hWnd, Pointer arg1) { […]

find一个Windows程序被调用的快捷方式

有没有办法让Windows程序find它被调用的快捷方式(即.lnk文件),以便它能够拾取快捷方式的图标?

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(); }