jjzjj

c# - 弹出窗口始终保持在顶部

我有一个WPF应用程序,它有一个主窗口,我正在其上打开一个弹出窗口。我面临的问题是弹出窗口始终位于顶部。如果我打开其他应用程序(任何Windows应用程序),主窗口会进入后台,但弹出窗口仍保留在顶部。但是,如果我最小化Mainwindow,弹出窗口也会最小化。请帮助解决这个问题。更新:我正在打开弹出窗口,如下所示myPopup.IsOpen=true; 最佳答案 usingSystem;usingSystem.Diagnostics;usingSystem.Runtime.InteropServices;usingSystem.Wi

c# - 如何在 Visual Studio 控制台应用程序中禁用控制台窗口的关闭按钮?

我需要禁用visualstudio控制台的控制台窗口中的关闭按钮用C#编写的应用程序。我希望应用程序运行直到完成并且用户不应该能够通过关闭控制台窗口来停止它。我正在使用visualstudio2010 最佳答案 下面是一个在控制台窗口禁用关闭按钮的例子:classProgram{privateconstintMF_BYCOMMAND=0x00000000;publicconstintSC_CLOSE=0xF060;[DllImport("user32.dll")]publicstaticexternintDeleteMenu(Int

c# - 网页截图的最佳方式

截取网页的最佳方式是什么?目前我只是启动了一个firefox的selenium实例并使用winapi将它带到前面并制作了一个屏幕截图。我问类似question已经。有两点:缓慢。如果任何窗口意外地变得比我们的网络浏览器窗口高,这个窗口将印在我们的屏幕截图中。有什么方法可以更“程序化”地截取屏幕截图吗?这是我现在使用的一些代码:classFirefoxDriverEx:FirefoxDriver{publicProcessGetFirefoxProcess(){varfi=typeof(FirefoxBinary).GetField("process",BindingFlags.NonP

c# - 通过 C# 弹出 USB 设备

我一直在寻找一种通过C#代码弹出USB设备的简便方法,所以我自己编写了一个小类,但它根本不起作用。由于没有弹出窗口显示“锁定成功!”我假设问题出在“LockVolume”函数中,但我不知道出在哪里。有人看到我犯的错误吗?classUSBEject{[DllImport("kernel32.dll",SetLastError=true,CharSet=CharSet.Auto)]privatestaticexternIntPtrCreateFile(stringlpFileName,uintdwDesiredAccess,uintdwShareMode,IntPtrSecurityAtt

c# - 我可以使用 SafeHandle 而不是 IntPtr 吗?

我在网上广泛搜索,但没有找到很好的解释。我的问题很简单。我有一个DLL,它有一个名为Initialize的函数,其中一个参数是一个指针,它将接收一个句柄以供后续调用使用。另一个参数是一个字符串,为了完整起见,我将列出它。我使用的签名是(以其简单的形式):[DllImport(MyDll)]staticexternboolInitialize([In]stringname,outIntPtrhandle);DLL本身中的签名写为:Initialize(LPTSTRname,HANDLEhandle)带有注释“HANDLE:指向将接收句柄的位置的指针”。而后续调用的形式是[DllImpor

c# - 挂接到 WPF 窗口中的 Windows 消息循环会在内部添加白色边框

我正在尝试创建一个带有WindowStyle="None"的WPF窗口(用于自定义按钮,没有标题),无法调整大小。将ResizeMode设置为NoResize会删除我想要保留的航空边框。我可以设置最小/最大大小属性并完成它,除了:调整光标仍然可见,并且显示窗口是为了响应用户操作并适合其内容。它显示图像,因此大小会发生变化。所以,我有一个简单的方案,可以让我完成99%的工作:publicclassBorderedWindowNoResize:Window{[DllImport("DwmApi.dll")]publicstaticexternintDwmExtendFrameIntoCli

c# - 将窗体窗口附加到 C# 中的另一个窗口

我想将一个表单附加到另一个窗口(另一个进程的)。我尝试使用[DllImport("user32.dll",SetLastError=true)]privatestaticexternIntPtrSetParent(IntPtrhWndChild,IntPtrhWndNewParent);setParentWindow(myWindowHwnd,newParentHwnd);在这样做时,我的表单会被附加,但也是不可见。问题"Attachwindow.."解决WPF窗口的这个问题,主要是通过使用HwndSourceParametersparameters=newHwndSourcePara

c# - 在 WPF 应用程序中嵌入 Unity3D 应用程序

我想在WPF中开发一个新的CAD软件而不是使用WPF3D,是否可以使用Unity3D作为我的图形引擎,它能够根据我的数据对象旋转、平移、缩放和查看3D图形对象WPF?我问这个问题的原因是,Unity是一个游戏引擎,它使用C#作为脚本,但它不提供任何来自WPF应用程序的集成(将Unity嵌入到WPF中)。我在unity论坛上问了这个问题,找不到任何好的答案,所以向更多的观众提问。 最佳答案 这可以做到,但值得注意的是它只能在Windows上运行。以前很难做到这一点,但Unity最近(4.5.5p1)添加了-parentHWND可用于将

c# - 禁用 WPF 窗口标题栏中的关闭按钮 (C#)

我想知道如何禁用(而不是删除/隐藏)WPF窗口中的“关闭”按钮。我知道如何隐藏它,使窗口的标题栏看起来像这样:但我想禁用它意味着它应该如下所示:我正在使用C#编写脚本并使用WPF(WindowsPresentationFoundation)。 最佳答案 试试这个:publicpartialclassMainWindow:Window{[DllImport("user32.dll")]staticexternIntPtrGetSystemMenu(IntPtrhWnd,boolbRevert);[DllImport("user32.d

c# - 无法从 Win7 x64 上的 32 位进程启动屏幕键盘 (osk.exe)

90%的时间我无法从Win7x64上的32位进程启动osk.exe。最初代码只是使用:Process.Launch("osk.exe");由于目录虚拟化,这在x64上不起作用。我认为这不是问题,我将禁用虚拟化,启动应用程序,然后再次启用它,我认为是正确的做事方式。我还添加了一些代码以在键盘最小化时恢复键盘(工作正常)-代码(在示例WPF应用程序中)现在如下所示:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Windows;usingSystem.Wind