C# Windows7/Vista风格的列表视图
当我在VS2008中的详细信息视图中创建listView时,它会创建一个相当旧的ListView.它没有任何花哨的悬停效果和凉爽的蓝色边界(例如)Winvista和Win7中的文件资源管理器.例如,请参见图片: 为了总而言之,如何在C#VS2008中获得listView看起来像上图中的一个? (VS2008右侧的ListView进行比较) 谢谢 解决方案 尝试致电 setWindowTheme 这样: [DllImport("uxtheme.dll", ExactSpelling=true, CharSet=CharSet.Unicode)] private static extern int SetWindowTheme(IntPtr hwnd, string pszSubAppName, string pszSubIdList); // The constructor: public MyForm() { Se
0 2024-04-15
编程技术问答社区
如何在Windows Vista/7的默认程序列表中添加我的应用程序?
如此多的程序列出了"默认程序"控制面板小程序下可能的扩展名和协议的列表.更精确地"设置默认程序". (Vista&7) 我希望在该列表中添加我的程序,并设置一些可以处理的扩展程序. 另外一件事.我的程序支持插件以打开更多文件,因此列表应该是动态的(我可以随时添加更多扩展程序甚至协议) 顺便说一句,是的,我知道,这不是一个编程问题.这是我谦虚的猜测,这是一个注册表问题.因此,UAC不会成为问题! 解决方案 注册您的应用程序在默认程序中需要的注册表键UI是其他解决方案 好的,因此,经过艰苦的工作和半小时的注册表搜索,我发现我必须注册我的应用程序功能,然后注册我的申请. 对于其他人,分析此密钥中的值: HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications 其他解决方案 这是我用来将视频文件与Windows 7中的Media Player Classic(Gabest)相关联的一个: Windows
0 2024-04-15
编程技术问答社区
我怎样才能从以管理员身份运行的C#代码中重启IIS?
通常(在Windows 7中),安装程序将要求修改系统的权限.作为管理员,我可以在不提供密码的情况下给予授权. 我试图弄清楚如何从运行的C#代码中采取管理员操作(重新启动IIS),而不是"管理员"帐户,而不是"管理员"帐户. 解决方案 要运行一个过程,您可以使用 runas 动词. Process elevated = new Process(); elevated.StartInfo.Verb = "runas"; elevated.StartInfo.FileName = "Whatever.exe"; elevated.Start(); 用于重新启动IIS(如前所述)使用IISReset. 希望您觉得这很有用. 其他解决方案 对于仍在寻找此问题的任何人,这是我用来帮助我的代码. private static void DoIISReset() { Process iisReset = new Process
0 2024-04-15
编程技术问答社区
如何确定用户是否是管理员,即使没有得到提升
在我的C#应用​​程序中,我需要检查当前用户是否是管理员组的成员.它需要与Windows XP和Windows 7兼容. 目前,我正在使用以下代码: bool IsAdministrator { get { WindowsIdentity identity = WindowsIdentity.GetCurrent(); WindowsPrincipal principal = new WindowsPrincipal(identity); return principal.IsInRole(WindowsBuiltInRole.Administrator); } } 问题在于,如果应用程序是在Windows 7上运行的,则该方法返回false,而UAC作为非高级管理员打开.即使应用程序是作为非高级管理员运行的? ,我如何确定用户是否是管理员? 解决方案 有一个Win32 API GetTo
0 2024-04-15
编程技术问答社区
Windows 7任务栏图标突出显示颜色
任何人都可以解释如何在鼠标越过任务栏项目上的Windows-7 Taskbar之类的图像中基于主导颜色计算突出显示的颜色? 任何C#代码? 解决方案 我相信它的作用是使用类似的方法在应用程序图标中采用最突出的颜色: python-在图像中找到优势/最常见的颜色 使用该信息,它将应用一种半透明的径向梯度色调,并根据您的鼠标位置定位.梯度对鼠标中心更为白色,但中心实际上不在屏幕上.越接近实际任务栏项目,它变得越透明.
0 2024-04-15
编程技术问答社区
在我的C# Win应用程序中打开Windows'计算器?
我知道我可以使用以下代码打开Windows计算器: System.Diagnostics.Process.Start("calc"); ,但我想在我的C#win应用程序中打开它,即:我不想在独立窗口中打开它,我想在窗口中打开它. 我该怎么办? 解决方案 您不能将另一个应用程序嵌入您的表格中. 但是,您可以在表单顶部移动计算器窗口,并将表格设置为父母.这可能会实现您要寻找的视觉效果.您可以入住 setParent api函数.例如: System.Diagnostics.Process p = System.Diagnostics.Process.Start("calc.exe"); p.WaitForInputIdle(); NativeMethods.SetParent(p.MainWindowHandle, this.Handle); 如果您确实需要嵌入在应用程序中的功能,则可以在C#中滚动您自己的计算器控件.将一个简单的计算器敲在一起确实并不困难
0 2024-04-15
编程技术问答社区
FileSystemWatcher和Windows 7
我正在编写一种监视网络目录并从Windows Server 2008计算机运行的工具,该文件的fileSystemWatcher的on Changed事件正在通过任何不使用Windows 7的计算机从网络驱动器上放置在网络驱动器上的文件中正确触发,由于某种原因,如果在Windows 7计算机上复制的文件量超过19个以上(一次),则如果文件单独完成,则没有触发事件,尽管该事件可行.是否有解决方法,还是Windows 7内核在FSW事件中的表现? 只是为了澄清,从XP机器复制时,它适用于数千个文件. (该软件仍在2008服务器机上). 解决方案 来自 Windows操作系统通知您的组件在Filesystemwatcher创建的缓冲区中更改.如果在短时间内发生了很多变化,则缓冲区可能会溢出.这会导致组件失去了目录中的变化的跟踪,并且只会提供一揽子通知.用属性很昂贵,因为它来自无法将其交换到磁盘的非页码内存,因此请将缓冲区保持一小且不够大,以免错过任何文件更改事件.要避免缓冲区溢
0 2024-04-15
编程技术问答社区
Windows 7风格的无边框阴影的形式
简短版本: 目标:深,黑暗的Windows 7 Dropshadow在C# 中的无边界Winform中 已知的现有解决方案1:使用Createparams简单XP风格的Dropshadow. 问题:太虚弱,太轻,太丑陋. 已知的现有解决方案2:用位图替换形式的GDI. 问题:失去使用控件的能力,仅充当飞溅屏幕. 本文的客观:找到解决此问题的中间解决方案或一个更好的解决方案. . . . 长版: (编辑:我指的是沿着任何窗口形式的边界的落下阴影,如果不清楚). 我知道有一种方法可以在C#中制作XP样式Dropshadows: C#代码1-简单XP风格的Dropshadow(问题:点亮,弱,丑陋) // Define the CS_DROPSHADOW constant private const int CS_DROPSHADOW = 0x00020000; // Override the CreateParams prop
0 2024-04-14
编程技术问答社区
VS 2010设计器错误 '无法找到XYZ类型'在Windows7中。在XP中运行良好
我遇到了VS 2010 C#.NET的问题.我在Windows XP上有一个项目,其中包括表格,类和少数我自己的自定义组件.这些组件是内置MS组件的简单扩展(例如DataGridViewEx作为DataGridView的扩展).一切都在XP中效果很好.我正在尝试将该项目移植到Windows 7/x64上的VS 2010.我已经可以在Windows 7上编译确定的解决方案,但是在设计模式下,当我打开包含一个自定义控件之一的表单时,我会发现一个错误'无法找到type type xyz.datagridviewex.请确保引用包含此类型的组件." XYZ是我用于这些控件的命名空间,它与使用控件的表单相同.所有这些都是同一VS项目的一部分. 当我在同一项目中打开一个不包含这些自定义控件之一的表单时,该表单在设计器中打开正常,并且我看到工具箱中左侧的自定义控件.但是,如果我尝试将这些控件之一拖动到该表单中,它将弹出一个错误消息框"无法加载工具箱项目'datagridviewex'.它将从工具
2 2024-04-14
编程技术问答社区
IsLittleEndian现场报告是假的,但一定是Little-Endian?
im在英特尔计算机(Win7 64位)上运行,根据我所读的英特尔,正在使用Little-endian.我在C#中尝试使用以下代码: byte[] b2 = new byte[] { 0, 1 }; short b2short = BitConverter.ToInt16(b2, 0); 和b2short == 256,如一个小末日所预期的. 然后,我在.net中读到bitconverter.islittleendian应该反映系统正在使用的endian,当我检查Visual Studio中的变量时,它报告了 false ,即不是很少 - endian. 这与64位OS有关系吗?有什么想法吗? 编辑: 我的同事坐在我对面,进行了相同的测试(赢得Vista 32位),并获得了相同的结果 编辑2: 这真的很奇怪.每当我运行代码,然后在BitConverter完成其操作后打破时,Islittleendian == false. 但是,如果我添加行 console
0 2024-04-14
编程技术问答社区
改变Windows 7上的默认音频设备
我希望能够使用C#编程中的Windows 7上的默认音频输出设备(以及一些基础Win32 API调用).我已经完成了作业,并且听到了很多来自不同来源的混合评论,所以我想再次问这个问题以直接得到答案.这实际上是可能的(通过任何的含义)吗?如果是这样,我该怎么做? ,请不要建议使用"自动IT"或其他类似程序的解决方案...这是一个c#/.网络特定问题. 解决方案 以防万一任何人在将来偶然发现该线程...这是一些C ++代码,可以通过调用一些无证件的Win32 API来做到这一点.可以将其编译到EXE中,然后从.NET应用程序中静静地调用,因此您可以围绕此代码构建.NET程序. http://web.archive.org/web/20190317012739/http://www.daveamenta.com/2011-05/programmatically- OR-Command-line-Change-default-sound-playback-evice-in-w
0 2024-04-14
编程技术问答社区
Visual Studio注册表捕获工具已停止工作,在Windows7中编译C#项目时出现错误
Visual Studio登记工作室注册表捕获实用程序已停止工作.... http://easycaptures.com/fs/fs/uploaded/256/9376236710.png Windows 7显示构建错误,如下面我每次编译项目时. 解决方案 : 在此处找到regcap.exe:c:\ program Files \ Microsoft Visual Studio 9.0 \ CONSION7 \ tools \ deployment 右键单击并选择属性. 选择兼容性选项卡 复选框以兼容模式运行此程序. 在操作系统下拉中选择Windows Vista SP2并作为管理员运行. 单击确定并重新编译. 此解决方案还可以在Windows 7上使用Visual Studio 2008(32位版本),在第五步中,您只需要在最后一个组框"特权级别"中选择"将此程序作为一个"的复选框选择管理员" 其他解决方案 另一个原因 长路径(缓冲区溢出?)
0 2024-04-14
编程技术问答社区
在C#中向MathInputControl加载墨水
我正在尝试使用MathInputControl的LoadInk方法,但我无法弄清楚在哪里创建IIDISPINK对象,因为它似乎是一个接口. 在en-us/library/dd372605(vs.85).aspx 任何指导都将不胜感激. 谢谢:) 编辑:为了清楚地说,这是我到目前为止的代码[编辑2:由" SO so",我的意思是添加的内容.几乎所有我的代码的其余部分都可以找到,因此如何在C#中创建MIC](感谢Hans Passant) ) MSINKAUTLib.InkDispClass loadInkTest = new MSINKAUTLib.InkDispClass(); Stream stream = File.Open("C:\\Tim\\bytes.isf", FileMode.Open); byte[] bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); l
0 2024-04-14
编程技术问答社区
在偏移量258处的请求BLR无效,函数HASHMD5没有定义?
我正在使用c#的firebird 2_5数据库, 在将数据插入firebird数据库时,我有一个错误,请如何解决此r? "FirebirdSql.Data.FirebirdCliente.FbException (0x80004005):invalid request BLR at offset 258 function HASHMD5 is not defined No message for error code 335544932 found" ' 解决方案 火鸟本身没有称为HASHMD5的函数. Firebird还具有UDFS(用户定义的功能),您可以添加功能(在Firebird应用程序的搜索路径上使用库,并且数据库中的定义). 错误消息指示您的数据库具有称为HASHMD5定义的UDF(并在存储过程,触发或计算字段中使用),但是Firebird无法访问UDF库.原因可能是它不在服务器上,或者Firebird的配置不允许对UDF库的访问,或者UDF库为32位
0 2024-04-14
编程技术问答社区
是否有可能在自己的应用程序中使用Windows 7任务调度程序?
我正在开发基于附加的应用程序.每个附加组件都使用调度程序.加载附加时间表任务.我的应用程序仅运行一个实例.有时应用程序关闭,有时运行.因此,我需要使用Windows 7任务调度程序 如何在自己的应用程序上使用任务调度程序? 我需要从应用程序创建新任务 我需要在任务完成时,将消息发送到我的应用程序或调用我的应用程序的任何功能 有可能吗? 如何做? 解决方案 在Codeproject上查看此项目. for .net 其他解决方案 如果要与Windows 7计划的任务系统进行交互,以创建,管理或删除这没有问题的任务. (我在为PluralSight写的Windows 7课程中介绍了此内容.)添加com引用到Taskscheduler,然后您进行此类操作: ITaskService scheduler = new TaskSchedulerClass(); scheduler.Connect(null, null, null, null); ITa
0 2024-04-14
编程技术问答社区
如何创建一个在任务管理器或服务列表中不可见的进程?
可能的重复: 从任务管理器中隐藏一个C#程序? 我需要创建一个企业级活动监视过程,其中用户无法使用任务管理器或其他方法杀死.也许应该是一个隐藏的过程.这可能吗?有解决方法吗?我更喜欢使用C#然后C++(带有Visual C ++编译器). 谢谢 解决方案 相关: 从任务管理器隐藏一个C#程序? https://stackoverflow.com/Question/759466/IS-IS-it-it-it-it-to-console-c-c-c-application-from-Task-Manager 简短的答案是:不,除非您用Windows服务包装,否则您不能(合法地)将其隐藏在任务管理器中.有多种阻止您的应用程序关闭的方法. 其他解决方案 关于"如何防止用户执行X"的主题,答案是安全性.如果您希望用户可以完全访问他们的机器,那么您将无法限制它们.如果您想限制用户,请相应地更改您的安全策略. "但是我的员工不喜欢我们不信任他们拥有
0 2024-04-14
编程技术问答社区
WCF客户端在响应时挂起
我有一个指向WebSphere服务的WCF客户端(在Win7上运行). 从测试线束(我的Web应用程序之外的一个小测试固定装置)都很好分钟与秒)和不仅是第一次. 我可以从提琴手看到响应很快又回来了客户遇到了挑剔的困难.只有在响应中,我有一个给定的PDF字符串(该操作生成PDF),base64编码块.例如,如果该服务会引起故障(因此不存在PDF字符串),则立即进行响应. 再次,如果我通过SOAP-UI或Web项目外部发送完全相同的信封,则一切都很好. 我很茫然 - 我应该寻找什么,并且是否有一些可以解决问题的配置设置? 任何帮助! 编辑: 我针对同一服务合同编码了一个存根.使用完全相同的basichttpbinding并返回完全相同的PDF字符串,没有延迟注册.我认为这排除了字符串和绑定是可能的原因.剩下什么? 解决方案 将transferMode="Buffered"更改为transferMode="Streamed"在绑定上做到了!
0 2024-04-14
编程技术问答社区
用Windows防火墙实现自动化
我有C#应用程序,该应用程序使用端口777进行异步通信和端口3306与我的SQL Server通信.当端口被防火墙阻塞时会出现问题.我尝试创建一个程序来在Windows 7的防火墙列表中添加一个例外. 运行程序时,我会得到错误:"灾难性故障(Hresult的例外:0x8000ffff(E_UNEDECTED))". 我不明白这些错误的含义,欢迎任何建议,谢谢. protected internal void AddExceptionToFirewall(){ try { INetFwMgr fireWall = null; INetFwAuthorizedApplications apps = null; INetFwAuthorizedApplication app = null; Type progID = null; INetFwOpenPorts ports = null;
0 2024-04-14
编程技术问答社区
在Windows Explorer中打开一个Windows 7图书馆
如何打开Windows 7库,例如Documents,Pictures,Music,Videos以及我的应用程序中的所有其他自定义库? 我尝试打开explorer.exe Libraries\Documents,但它不起作用. 解决方案 查找AppData目录: Dim appData As String = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) 找到文档快捷方式并在Explorer中打开: For Each file As String In Directory.GetFiles(appData, "Documents.library-ms", SearchOption.AllDirectories) Process.Start(file) Next 其他解决方案 看 this 查看Windows 7库上最常见的操作是如何执行的. 编辑:
0 2024-04-14
编程技术问答社区
在文件搜索过程中更新进度条
this 问题提供了一种快速使用kernel.dll递归查找文件属性的方法,例如文件名.问题是报告进度(例如Windows表单应用程序中)仅限于当前使用的文件或目录,因为它没有有关总文件计数的信息. 不过,我在Windows 7中知道,如果您使用文件资源管理器搜索文件,它显示了一个用于搜索的进度栏: 那么他们在这里做得如何?此处的总文件计数是否提前知道?是否有可能在上面链接的问题中模仿答案中的这种进度报告?我不确定如果没有总计计数的总数,该怎么做. 我能找到的最接近的问题是这个似乎已经拥有的这种递归方法的一些问题,因为我没有预先计数文件夹计数,并且对于许多文件的单个目录而言,这种行为将非常奇怪. 解决方案 取决于您需要获得的准确性,可能会有一个简单的两通道解决方案(对于网络驱动器而不是最佳的解决方案,因此您可能需要在此处调整). 对于第一个目录级别(例如4,包括驱动器),计数子目录的数量.这通常是一个快速的操作,尽管您只能在说5个子目录或类似的情况下将其调
0 2024-04-14
编程技术问答社区