C#操作系统的安装目录
如何使用C#找到驱动器,在该驱动器中安装了操作系统(例如Windows 7)?然后我必须获取程序文件目录. 解决方案 使用Environment.GetFolderPath(Environment.SpecialFolder.System);,用于程序文件文件夹Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);. 其他解决方案 请看一下此链接. Environment.GetEnvironmentVariable希望,能为您完成这项工作. 其他解决方案 string systemDrive = Path.GetRoot(Environment.GetFolderPath(Environment.SpecialFolder.System)); string progamFilesPath = Environment.GetFolderPath(Environment.SpecialFo
6 2024-04-26
编程技术问答社区
我如何从Request.UserAgent中只获得操作系统?
好吧,所以我在ASP.NET网站上工作(背后C#代码),出于故障排除的原因(我们呼吁技术支持的大多数客户都不知道他们正在使用的OS/浏览器/浏览器),我们要记录一个"系统配置文件",以便我们可以更轻松地解决与OS/浏览器相关的问题进行故障. 目前,我正在使用Request.UserAgent.问题在于,它返回了我们支持人员无济于事的字符串: mozilla/5.0(Windows NT 6.1; RV:24.0)壁虎/20100101 Firefox/24.0 我想做的是仅将OS(Windows NT 6.1或用户拥有的任何OS)拉动,而没有其他浏览器信息,因为我已经在将其他系统信息隔离为: |用户ID | USEROS | Browsertype |浏览| Majorversion |次要| isbeta | | 11111 | USEROS* | * Firefox24.0 * | * * Firefox * * | * * * * * * 24 * *
4 2024-04-25
编程技术问答社区
我如何从C#代码中以编程方式使用Aero snap功能
我有一个简单的问题.如何从我的C#代码编程访问Aero快照.就像,如果我单击一个按钮"左将",我希望我的程序窗口向左捕捉,就像手动毒品手动一样.我看了一眼,但是所有问题似乎都是关于Aero Snap不使用表格,并防止其捕捉表格.没有编程性地捕捉表单.我很高兴使用介入.谢谢 解决方案 假设您在Windows 7上,可以将Asosnap Keypress发送到当前活动的窗口. codeproject codeproject关于这样做的非常好的文章. 还请查看 this 如此问题. 看来,这样做的一种方法是在用户32.dll中使用sendmessage 这是一个例子,假设"记事本"是您要将击键发送到的程序: [DllImport("user32.dll", EntryPoint = "FindWindowEx")] public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwnd
4 2024-04-23
编程技术问答社区
'utf-8'解码器无法解码位置 972 中的字节 0xca:无效连续字节:使用操作系统、shutil、字典移动文件
我有一个问题,我不知道我是否可以在Python上执行它 所以我有cik number.txt的形式的文件 我创建了文件名匹配的公司名称的目录 而且我有一个匹配cik 的文件名的电子表格 我编写了一件应该执行我描述的代码,但是我遇到了一个错误,该错误指出unicodeDecodeError:'utf-8'编解码器无法在位置972中解码字节0xCA:无效的持续字节 这是我试图读取的CSV文件 公司名称,CIK,CIK 2,缺少,笔记 Deere,315189 ,, H.J. Heinz,46640,1637459 ,, BestFoods,25350,, 拜耳公司 密封空气,1012100,失踪1994-1997, Eli Lilly,59478 ,, 坎贝尔汤,16732年,"失踪96、97、98、99,00、01", 霍尼韦尔(Honeywell),48305,773840,与霍尼韦尔中央和霍尼韦尔国际 Kellogg,55067 ,, Union Carbide,100
14 2024-04-22
编程技术问答社区
如何使用 python 脚本同步两个文件夹
目前,我正在研究一个正在同步两个文件夹的项目.我的文件夹在以下示例名称中 folder_1作为源和 folder_2作为目标我想做以下操作. 如果folder_1中存在的文件不存在,则文件夹中不存在 将文件从文件夹_1复制到文件夹_2, VICE反之亦然. 如果我在两个文件夹中重命名任何文件,则在其他文件夹中进行更新,而不是复制具有更新名称的新文件. 如果我从任何文件夹中删除任何文件,则应从其他文件夹中删除. 我已经完成了点第一部分的一半,在该部分中,我可以将文件从folfer_1复制到folder_2.发送部分可以将文件从文件夹_2复制到文件夹_1仍保留的部分. 以下是我的代码 import os, shutil path = 'C:/Users/saqibshakeel035/Desktop/Folder_1/' copyto = 'C:/Users/saqibshakeel035/Desktop/Folder_2/' files =os.listdir
22 2024-04-22
编程技术问答社区
使用c#获取应用程序的安装版本
我将使用C#安装应用程序(例如MyApp)的安装版本. 我会这样做, 1.为5.6版的MyApp创建一个"设置" 2.安装myApp. 我将创建另一个应用程序(例如版本跟踪器)以获取已安装应用程序的版本.因此,如果我将" MyApp"名称传递给我,我想将版本称为" 5.6".如果另一个应用程序说Adobe读取器已安装在我的系统中,则如果我通过" Adob​​e Reader",我想获得Adobe Reader的版本. 我需要知道如何构建'版tracker' 解决方案 第一个也是最重要的是,并非所有应用程序都在系统中的某个地方保存其版本.老实说,其中只有少数这样做.您应该查看的地方是Windows注册表.大多数安装应用程序都将其安装数据放入以下位置: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 但是,这并不容易 - 在64位窗口上,32位(x86)应用程序将其安装
4 2024-04-22
编程技术问答社区
如何区分USB设备的类型?
阅读这个问题关于使用USB设备,I想知道操作系统正在使用哪种方法来区分USB设备的类型? 例如,我可以插入USB鼠标,并且计算机"只是知道"是鼠标.如果我插入1GB USB驱动器"只知道"它是1GB可移动存储的价值. 该设备正在使用哪种代码来"宣布"它是什么类型?还是操作系统是对设备进行轮询并获得一些标准化响应的? 我将如何编程设备以识别自己为键盘? 解决方案 为了构建通过USB工作的设备,您几乎可以肯定必须读取从 http://www.usb.org/developers/docs/ 关于您的特定问题,有与各种标准USB变量相关的方法.这些存储在设备的固件中,并在要求时提供.例如,get_descriptor,get_status等是可以发送到设备的请求类型. USB有自己的一套协议集,这将是全部实施的一项任务,因此大多数设备制造商从某些第三方购买USB控制器芯片. 如果您只是有兴趣将某些东西一起黑客入侵,那么我认为规范足以让您发送一些数据包
4 2024-04-21
编程技术问答社区
为所有的文本框添加上下文菜单项,操作系统范围内。
我知道可以扩展标准文件的上下文菜单,但是是否有一种方法可以将项目添加到系统范围的文本框上下文菜单? 这将是这样的新项目出现在每个文本框中,用户可以在Windows中的任何地方输入? 例如,允许添加与拼写检查器查找所选文本的功能. 解决方案 C#从技术上讲这是不可能的. 让我们想象下一个情况.假设您已Sucessfuly编写了托管扩展,并且它"扩展"了系统中的任何文本框上下文菜单.当然,您应该处理添加的每个新菜单项.为了实现这一目标,您应该将托管代码注入具有文本框并替换其WindProc的每个过程.好的,假设系统中有托管应用程序,该应用程序是为.NET版本编写的,与用于扩展的版本不同.因此,在这种情况下,您会在扩展注入期间遇到关键错误,因为每个过程只能加载一个.NET.因此,没有办法编写可靠的托管低级钩子或壳扩展名.来自 在这里 : 全局挂钩不支持 .NET框架 除了 wh_keyboard_ll低级挂钩和 wh_mouse_ll低级钩,你不能 在 Micros
2 2024-04-18
编程技术问答社区
你只能用C语言编写操作系统吗?
我得到的C及其超级集可以使您可以使用较低的级别访问权限,但是您可以使用其他语言.例如Visual Basic,C#甚至Java?我只是好奇,因为自C诞生以来似乎应该出现更好的事情. 解决方案 您可以使用您选择的任何语言编写操作系统 - 只要您拥有将其编译到该平台所需的引导程序. 例如, jnode 是一个基于Java的OS(带有少量汇编器). 其他解决方案 您可以使用其中任何一个来编写操作系统.但是,您需要一个引导程序(可能是用C编写)来加载和运行您的语言的运行时. Google Scholar显示了一些研究的好起点:其他解决方案 http://de.wikipedia.org/wiki/wiki/javaos P>
2 2024-04-18
编程技术问答社区
用C#语言在Windows 10中获取当前版本的操作系统
我使用C#.我尝试获取OS的当前版本: OperatingSystem os = Environment.OSVersion; Version ver = os.Version; 我上了 Windows 10 : 6.2 . 但 6.2 是 Windows 8 或 Windowsserver 2012 (在.net中检测Windows版本) 我找到了以下解决方案(如何检测我的应用程序是否在Windows 10上运行). static bool IsWindows10() { var reg = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion"); string productName = (string)reg.GetValue("ProductName"); return productName.StartsWith("Windows
18 2024-04-15
编程技术问答社区
c#中的Windows版本
我想知道PC具有哪个Windows版本..在C#Framework 3.5 中 我尝试使用 peratatingsystem os = emoverunt.osversion; 版本ver = os.version; 但结果是 plataform:win32nt 版本6.2.9200 版本未成年人:2 版本专业:6 问题是我有" Windows 8 Pro" ... 如何检测到它? 谢谢 解决方案 您必须自己匹配版本号与适当的字符串值匹配. 这是最新Windows OS及其相应版本编号的列表: Windows Server 2016&2019- 10.0 * Windows 10- 10.0 * Windows 8.1- 6.3 * Windows Server 2012 R2- 6.3 * Windows 8- 6.2 Windows Server 2012- 6.2 Windows 7-
4 2024-04-15
编程技术问答社区
禁用内置语音识别命令?
我正在尝试构建以自定义方式来解释各种文本命令的软件.我使用system.speech.reventition,它的效果很好,但是我无法弄清楚如何每当我说"删除"," close","正确"等时,我将最终会默认情况下Windows(7)实现.有什么办法可以通过system.speech.revention解决这个问题?如果没有,您将最多推荐哪个C#.NET库? 解决方案 使用SependRecognitionEngine代替语音识别器. 尝试以下操作: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Speech.Recognition; namespace speech { class Program { static void Main(string[] args) { SpeechReco
0 2024-04-15
编程技术问答社区
SysInternal'的ProcessMonitor如何工作?
有人可以给我一个高级解释,他们如何能够监视每个注册表访问? /a> 足够的细节,以便我可以在各种子主题上进行谷歌搜索并尝试写自己的详细信息?我知道他们已经使用了某种DLL注入/API钩,但是我不确定它们如何到达所有内核模式活动. 解决方案 它在启动上加载了一个虚拟驱动程序,该驱动程序可以在低级别上进行监视.因此,它不必在其他过程中注入任何内容. on /filemon.htm 关于procmon的前辈之一,有一个简短的解释. filemon的作品 对于Windows 9X驱动程序,Filemon的心脏是虚拟的 设备驱动程序,filevxd.vxd.它是动态加载的,在它的 初始化它通过VXD服务安装文件系统过滤器, ifsmgr_installfilesystemapihook,插入呼叫链 所有文件系统请求.在Windows NT上,Filemon的心脏是 创建和附加过滤器设备的文件系统驱动程序驱动程序 目标文件系统设备对象的对象,以便filemon会
6 2024-04-12
编程技术问答社区
在WinRT Metro应用程序中获取操作系统版本C#。
我正在编程使用C#和Visual Studio 11 Beta的Metro Style应用程序. 现在,我想获得操作系统的操作系统.我该如何得到这个? 我发现了如何在"正常"应用程序中进行操作. 在那里,您将带有属性放射的环境类别级,但在.net核心中没有此属性 解决方案 对于新应用程序,您应该检查特定功能,而不是OS版本. 据我所知,没有理由检查OS版本,因为Metro应用程序仅可用于Win8. 编辑:现在可以在多个Windows版本上使用存储应用程序,但仍建议测试功能而不是OS版本.创建该项目时,将最小OS版本设置为项目的构建目标. 编辑#2:如果您有兴趣在应用程序安装基础中跟踪OS版本,则可以将应用程序洞察力集成到项目中,从Windows 8.1的应用程序开始.这是开始的方法: http://azure.microsoft.microsoft . 其他解决方案 您可以通过使用设备API获取低级系统组件的驱动程序版本编号来获得OS版本号,以致
8 2024-04-12
编程技术问答社区
获取Windows机器上的PC(系统)信息
有没有办法使用C#? 获取以下信息 PC名称, 服务标签, CPU类型, CPU速度, c:\ drive的大小, 安装RAM, OS名称, OS产品密钥, Office版本和办公产品密钥. 解决方案 WMI是您要寻找的. P> 让我也将链接添加到第3部分,该链接通过WMI 集中在硬件上 P> MSDN也是WMI范围的绝佳资源... http://msdn.microsoft.com/en-en-us/库/AA394554(v = vs.85).aspx 其他解决方案 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Management; //This namespace is used to work with WMI classes. For using this namespac
6 2024-04-12
编程技术问答社区
以编程方式获取Windows操作系统版本
我正在尝试在Windows 10机器上使用C#获取Windows版本. 我总是得到这些值(带有C#\ c ++): 主要:6 未成年人:2 是Windows 8 OS,/a> c#代码: var major = OperatingSystem.Version.Major var minor = OperatingSystem.Version.Minor C ++代码 void print_os_info() { //http://stackoverflow.com/questions/1963992/check-windows-version OSVERSIONINFOW info; ZeroMemory(&info, sizeof(OSVERSIONINFOW)); info.dwOSVersionInfoSize = sizeof(OSVERSIONINFOW); LPOSVERSIONINFO
4 2024-04-11
编程技术问答社区
我如何禁用一个系统设备?
有什么方法可以从c#.net禁用系统设备. 当您去设备管理器并以这种方式禁用设备时,基本上是模拟的? 我假设有一个可以调用的Winapi功能,但我不知道它是哪一个? 我需要这样做的原因是,我需要在再次启用设备之后就需要禁用和直接. 我需要在Windows XP和Vista(X86&X64)中工作.我看了一个叫做" devcon"的东西,但它似乎对Vista x64不起作用. 谢谢. 有关答案,请参阅此处:如何禁用系统设备在程序上? 解决方案 要为Futher Mel Green的答案,硬件助手库使用Interop调用Windows API(SetupaPi),特别是SetupDisetClassInstallParams方法.当然,这里还有其他电话来查找设备详细信息等. 要考虑的一件事,如果您是作为标准用户或非特权帐户运行的,您将无法使用它来控制(启用/禁用等)硬件设备. 有关更多详细信息,请查看 http://www.pinvok
8 2024-04-11
编程技术问答社区
在C#中获取操作系统版本/友好名称
我目前正在从事C#项目.我想收集用户统计信息以更好地开发软件.我正在使用C#的Environment.OS功能,但它仅显示OS名称为 Microsoft Windows NT 我想要能够检索是是OS 的实际已知名称是否是Windows XP, Windows Vista or Windows 7和等. 这是可能的吗? 解决方案 添加参考和使用System.Management的语句,然后: public static string GetOSFriendlyName() { string result = string.Empty; ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT Caption FROM Win32_OperatingSystem"); foreach (ManagementObject os in searcher.Get
14 2024-04-10
编程技术问答社区
如何获得 "友好 "的操作系统版本名称?
我正在寻找一种优雅的方式来获取OS版本,例如:" Windows XP Professional Service Pack 1"或" Windows Server 2008 Standard Edition"等. 有一种优雅的方式吗? 我也对处理器体系结构感兴趣(例如x86或x64). 解决方案 您可以使用WMI获取产品名称("Microsoft®WindowsServer®2008Enterprise"): using System.Management; var name = (from x in new ManagementObjectSearcher("SELECT Caption FROM Win32_OperatingSystem").Get().Cast() select x.GetPropertyValue("Caption")).FirstOrDefault();
6 2024-04-10
编程技术问答社区
在.NET中检测Windows版本
如何在.NET中检测Windows OS版本? 我可以使用什么代码? 解决方案 +------------------------------------------------------------------------------+ | | PlatformID | Major version | Minor version | +------------------------------------------------------------------------------+ | Windows 95 | Win32Windows | 4 | 0 | | Windows 98 | Win32Windows | 4 | 10 | | Windows Me | Win32Windows | 4 | 90 | | Windows NT 4.0 | Win32NT | 4 | 0 | | Windows 2000 | Win32NT | 5 | 0 | | Wi
4 2024-04-10
编程技术问答社区