我继承了一个.NET应用程序,它汇集了大约100个由两个团队构建或从供应商处购买的dll。我想快速确定给定的dll是.NET程序集还是COM组件。我意识到我可以只对每个dll单独调用ildasm并在dll没有有效的CLRheader时做一个记录,但这种方法看起来很笨拙并且难以自动化。 最佳答案 如果您想从COM端着手,在DLL中测试COM对象归结为寻找名为“DllGetClassObject”的导出。这是因为COM运行时通过调用DllGetClassObject()访问进程内COM对象。在那个DLL上。您可以使用DUMPBIN.EX
假设我构建了一个从网络文件夹中读取文件的Windows应用程序。网络折叠限制只有一个用户“fooUser”的访问。该应用程序安装在网络上的多台机器上。我需要用“fooUser”替换当前用户,以便能够通过代码访问网络文件夹中的文件。 最佳答案 这是一个非常简单的模拟方案,可以让您在一段时间内成为任何人(前提是您拥有适当的凭据。)本类(class)将为您完成所有繁重的工作....publicclassImpersonator:IDisposable{constintLOGON32_PROVIDER_DEFAULT=0;constintL
我想知道我将如何去做这件事,因为我已经尝试了无数不同的user32函数并在网上进行了相当广泛的研究,但不幸的是我还没有想出一个解决方案。有一个应用程序有5个线程。只要进程的PID,就可以通过.NETProcess类的GetProcessById方法轻松访问这些线程。但是,似乎没有可用于提供线程ID并枚举其窗口(父窗口或子窗口)的函数。其中一个线程共有10个窗口,其中9个隐藏,1个可见。该可见线程的标题是我试图以编程方式获得的。我最近的方法是获取进程句柄,将其放入EnumChildWindows,并尝试以这种方式将每个窗口句柄添加到一个集合中,但我的集合始终是空的。这是我在Process
我正在编写一个需要获取系统输入语言的应用程序,而应用程序窗口未聚焦。在谷歌搜索后,我发现这样做的方法是HookWM_INPUTLANGCHANGE消息。但是我找不到钩子(Hook)的语法示例。我找到了以下代码并尝试根据我的需要对其进行调整,但我失败了:编辑:我已将WM_KEYUP替换为WM_INPUTLANGCHANGE,但它不起作用。usingSystem;usingSystem.Collections.Generic;usingSystem.Diagnostics;usingSystem.Runtime.InteropServices;usingSystem.Windows.For
我有一种情况,我想对一些Windowsshell特殊文件夹(那些对应于CSIDL枚举中的值的文件夹)执行特殊处理。(我的解决方案必须与WinXP兼容。)我遇到的问题是,当我当我在层次结构中工作时遇到IShellFolders,我找不到将IShellFolders与其CSIDL匹配的方法。这是我目前的做法:将所有CSIDL的静态一对一数据结构(csidlToFromFullPIdl)初始化为其由SHGetSpecialFolderLocation返回的pIDL。foreach(CSIDLcsidlinEnum.GetValues(typeof(CSIDL)){IntPtrfullPIdl
我用C#编写了一个监视剪贴板的小程序。当某个字符串进入剪贴板时,必须使用Process.Start打开程序(取决于字符串)。一切正常,但有时应用程序被打开两次。我不知道为什么会这样。namespaceClipboardMonitor{publicclassForm1:System.Windows.Forms.Form{[DllImport("User32.dll")]protectedstaticexternintSetClipboardViewer(inthWndNewViewer);[DllImport("User32.dll",CharSet=CharSet.Auto)]publ
过去3天我一直在尝试在网上和自己寻找解决方案。找到了很多相关Material,但没有任何Material适合我的情况。我通过以下代码启动了一个新进程,它是Windows语音识别应用程序,我想以编程方式调用其右键菜单中的选项之一。我已经测试过了Postmessage、Sendmessage和sendClick事件,它们都不起作用。namespaceWindowsFormsApplication1{publicpartialclassForm1:Form{[DllImport("User32.dll")]publicstaticexternintSetForegroundWindow(In
我们有一个WPF应用需要在不同的用户登录和注销各自的PC的情况下保持打开更长时间(过夜)。[更新]WPF应用程序使用此处的单实例技术:http://blogs.microsoft.co.il/blogs/arik/SingleInstance.cs.txt单实例功能不是错误的原因只有在以下情况下才会发生奇怪的崩溃:操作系统是Windows10必须执行以下用户登录/注销序列:帐户A正在启动应用程序并注销或锁定PC。帐户B在夜间登录,在PC上工作了一段时间,然后注销。A号早上再次登录。该应用程序运行但UI被卡住/最小化。单击/尝试调整大小时,出现以下错误:System.OutOfMemor
我有一个Windows应用程序,它使用AppBarAPI安装为屏幕顶部的应用程序栏(类似于Windows任务栏本身)。这非常有效,桌面大小也会相应调整,因此我的应用程序始终可见。但是,如果用户选择“显示桌面”(Windows+D),我的应用程序将被隐藏。有谁知道一种方法来捕获“显示桌面”以便我可以确保我的应用程序保持可见(我假设Windows枚举所有顶级窗口并使用ShowWindow(SW_HIDE)隐藏它们)。 最佳答案 使用以下代码并在窗体加载时将窗口句柄传递给函数。希望这能解决您的问题。publicvoidSetFormOnD
问题:通过LoadUserProfileAPI为漫游用户登录和加载配置文件未创建正确的配置文件。这只发生在Windows2008(UAC关闭和打开)下。使用标准Windows登录的登录工作正常,相同的代码在Windows2003上工作正常。日志:http://drop.io/6t2b3f3通过命令创建的用户配置文件服务的ETL:logman-startprofile-p{eb7428f5-ab1f-4322-a4cc-1f1a9b2c5e98}2553–ets该文件需要由有权访问源代码的人进行分析,希望这能阐明为什么配置文件总是作为临时加载。环境:Windows2008模式域/林服务器