Tag: winapi

如何通过FindWindow api调用在C#中开发的窗口

我是C#和xaml代码的新手。 我有一个用C#实现的示例代码。 当我查看xaml文件时,我得到了 。 test.MainWindow表示此窗口的类名。 我试图从win 32中开发的其他应用程序调用此窗口。我试图将此类名称传递给FindWindow(“test.MainWindow”,NULL) ,但它失败了。 在那边做了什么。 如何更改C#中开发的窗口的类名? 谢谢, 萨加尔

这可能是由C#.NET编写Win32 .dll文件吗?

这可能是由C#.NET编写Win32 .dll文件吗? 如果是的话,我可以在哪里找到一些教程? 如果不是,那么您对Win32 .DLLs的建议是什么? 谢谢。

打开记事本到屏幕上的特定位置,并达到所需的大小?

我需要将nNtepad打开到特定大小并在屏幕上的特定位置。 我怎么能用C#做到这一点? 我很感激代码示例。

使用CreateFile打开目录

我正在尝试使用CreateFile函数来访问目录信息。 我收到的win32错误代码为5,这意味着拒绝访问。 请指教。 CreateFile(path, GENERIC_READ, FILE_SHARE_READ, IntPtr.Zero, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, IntPtr.Zero); 这是正在进行的调用,并且如文档中所述,正在使用’FILE_FLAG_BACKUP_SEMANTICS’。 DLL导入似乎工作正常,如下所示: [DllImport(“kernel32.dll”, SetLastError = true)] public static extern IntPtr CreateFile(string filename, uint desiredAccess, uint sharedMode, IntPtr securityAttributes, uint creationDisposition, uint flagsAndAttributes, IntPtr templateFile); 更新:我需要获取目录的句柄,以便我可以使用GetFileInformationByHandle()并提取唯一ID。 此方法目前适用于文件,目前无法使用目录。 更新:此问题的X是我需要一个目录的唯一标识符,该标识符不是其绝对路径。 即使移动或重命名目录,它也需要保持不变。 .NET没有提供刚刚提到的任何唯一标识符,只能通过使用win32来完成

在运行时如何区分Windows Mobile 6.5.3和以前的版本?

是否存在已建立或非官方的方式来确定我的应用程序是否在Windows Mobile 6.5.3设备上运行,或者它是否是以前的版本? 管理或本地无所谓,我不介意互操作。

如何在程序执行时拥有控制台?

我正在尝试编写一个程序,它在控制台或GUI模式下工作,具体取决于执行参数。 我设法编写以下示例代码: using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using System.Runtime.InteropServices; namespace wfSketchbook { static class Program { [DllImport(“Kernel32.dll”)] [return: MarshalAs(UnmanagedType.Bool)] private static extern bool AttachConsole(int processId); [DllImport(“Kernel32.dll”)] [return: MarshalAs(UnmanagedType.Bool)] private static extern bool AllocConsole(); [DllImport(“Kernel32.dll”)] [return: MarshalAs(UnmanagedType.Bool)] private static extern bool FreeConsole(); private const int ATTACH_PARENT_PROCESS = -1; /// /// The main entry […]

创建一个简单的c#dll并从ruby访问它

我正在尝试制作我的第一个c#dll。 我希望能够通过win32API从ruby中调用它的方法/函数。 我做了这个dll: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ClassLibrary1 { public class Class1 { public int PropA = 10; public void Multiply(Int32 myFactor) { PropA *= myFactor; } } } 我用Visual Studio 2010编译它并得到了我的ClassLibrary1.dll文件。 现在对于ruby部分,我试过这个: f = “c:/path_to_file/ClassLibrary1.dll” mult = Win32API.new(f,”Multiply”,[“I”],”I”) 但是,我收到以下错误: Error: #<RuntimeError: (eval):0:in `initialize': GetProcAddress: Multiply or MultiplyA 说实话,我从来没有创建过dll,也没有c#的经验。 我只是想开始吧。 […]

保护模式为ON时,DeleteURLCacheEntry不会删除Internet临时文件

我使用“deleteURLCacheEntry”Wininet API分别删除Win7 / Vista IE 7/8上的临时Internet文件。 当IE的保护模式为OFF时,API工作正常。 但是当保护模式为ON时,它会无声地失败。 有人建议我在PROTECTED MODE开启时如何以编程方式删除临时互联网文件? 我基本上使用以下msdn链接中给出的程序: http://support.microsoft.com/kb/815718 谢谢。

查询x64-GAC

使用以下代码,我正在查询GAC以查看是否安装了某个程序集。 代码本身工作正常,但我只得到x86 GAC的结果。 该程序集安装在GAC GAC_64和GAC_32中。 我需要做什么才能使’QueryAssemblyInfo’检查x64 GAC? public bool IsInGac(string assemblyName) { ASSEMBLY_INFO assembyInfo = new ASSEMBLY_INFO(); assembyInfo.cchBuf = 512; assembyInfo.currentAssemblyPath = new string(‘\0’, assembyInfo.cchBuf); IAssemblyCache assemblyCache = null; IntPtr hr = NativeMethods.CreateAssemblyCache(out assemblyCache, 0); if (hr == IntPtr.Zero) { hr = assemblyCache.QueryAssemblyInfo(1, assemblyName, ref assembyInfo); if (hr != IntPtr.Zero) { return false; } return […]

如何判断主音量是否静音?

我使用以下内容将计算机上的主音频静音/取消静音。 现在,我正在寻找一种确定静音状态的方法。 在C#中有这么简单的方法吗? private const int APPCOMMAND_VOLUME_MUTE = 0x80000; private const int WM_APPCOMMAND = 0x319; [DllImport(“user32.dll”)] public static extern IntPtr SendMessageW(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);