Tag: shell

使用SHFILEINFO获取文件图标

我一直在搜索ac#library,它获取了许多大小的给定路径的图标,最后当我得到我需要的类时,它有一个问题: 此方法获取给定路径的图标: public static BitmapSource GetIcon(string FileName, bool small, bool checkDisk, bool addOverlay) { SHFILEINFO shinfo = new SHFILEINFO(); uint SHGFI_USEFILEATTRIBUTES = 0x000000010; uint SHGFI_LINKOVERLAY = 0x000008000; uint flags; if (small) { flags = SHGFI_ICON | SHGFI_SMALLICON; } else { flags = SHGFI_ICON | SHGFI_LARGEICON; } if (!checkDisk) flags |= SHGFI_USEFILEATTRIBUTES; if (addOverlay) flags |= […]

索引28中的“比特率”属性是否固定?

我试图读取音频文件的“比特率”属性。 我知道如何获得价值,但我这样做的方式我认为不是最有效的。 Shell shell = new Shell32.Shell(); Folder objFolder = shell.NameSpace(path); for (int i = 0; i < short.MaxValue; i++) { string property = objFolder.GetDetailsOf(null, i); if (String.IsNullOrEmpty(property)) break; if (property.Equals("Bit rate")) { index = i; break; } } FolderItem item = objFolder.ParseName(fileName); string bitRateValue = objFolder.GetDetailsOf(item, index); 我担心的是,我需要得到“比特率”索引的循环,所以我的所有测试都返回索引28,因此我开始怀疑是否可以始终在索引28找到比特率? 如果没有那么有没有更好的方法来找出比特率位于哪个位置?

在ASP.NET中运行shell命令

我如何在asp.net中运行shell命令? 我基本上想要像system(“netstat -an”) ; 我不希望输出显示给用户。 只想运行一些维护命令。

尝试从chrome实现拖放gmail附件

我一直在尝试将chrome中的gmail附件拖放到我的应用程序中。 可以将文件从电子邮件拖到桌面,然后在那里创建附件,所以我知道这一定是可能的。 我已经能够让它读取文件名,但是当我从数据对象中读取FileContents时,我得到一个带有文件链接的Internet快捷方式。 有人有过这个工作吗? 目前的代码是.txt文件的硬编码 示例项目可以从以下位置下载: https://www.dropbox.com/s/jz4zde0mvgxzn1g/DragDropTest.zip?dl=0 我的主要DataObjectWrapper类如下: 发布所有内容的字符太多但主要方法是: public object GetDataNative(string format, bool autoConvert) { switch (format) { case CFSTR_FILEDESCRIPTOR_A: IntPtr fileGroupDescriptorAPointer = IntPtr.Zero; try { //use the underlying IDataObject to get the FileGroupDescriptor as a MemoryStream MemoryStream fileGroupDescriptorStream = (MemoryStream)this.underlyingDataObject.GetData(CFSTR_FILEDESCRIPTOR_A, autoConvert); byte[] fileGroupDescriptorBytes = new byte[fileGroupDescriptorStream.Length]; fileGroupDescriptorStream.Read(fileGroupDescriptorBytes, 0, fileGroupDescriptorBytes.Length); fileGroupDescriptorStream.Close(); //copy the file […]

如何使用Windows shell获取文件扩展名的大图标?

我找到了关于获取文件甚至文件扩展名的系统映像的各种文章。 我有以下方法,用于获取小型16×16和大型32×32图像。 // DLL Import [DllImport(“shell32”)] private static extern IntPtr SHGetFileInfo( string pszPath, uint dwFileAttributes, ref SHFILEINFO psfi, uint cbFileInfo, uint uFlags); // Constants/Enums private const int FILE_ATTRIBUTE_NORMAL = 0x80; private enum SHGetFileInfoConstants : int { SHGFI_ICON = 0x100, // get icon SHGFI_DISPLAYNAME = 0x200, // get display name SHGFI_TYPENAME = 0x400, // get type […]

C#:运行shell命令时出现问题

我正在尝试让PHP解析器运行一个页面,然后将结果返回给我的服务器,但是当我通过我的代码运行命令时,它什么都不返回。 我知道命令是正确的,因为如果我用相同的路径手动运行它,它工作正常。 inheritance我的代码: var p = new Process { StartInfo = new ProcessStartInfo(“C:\\xampp\\php\\php.exe”, path) { RedirectStandardOutput = true, RedirectStandardError = true, UseShellExecute = false, CreateNoWindow = true } }; var output = new StringWriter(); var error = new StringWriter(); p.OutputDataReceived += (sender, args) => output.WriteLine(args.Data); p.ErrorDataReceived += (sender, args) => error.WriteLine(args.Data); p.Start(); p.BeginOutputReadLine(); p.BeginErrorReadLine(); p.WaitForExit(); […]

在C#中编写批处理脚本的好方法是什么?

我想用C#编写简单的脚本。 我通常会使用.bat或4NT .btm文件。 复制文件,解析文本,询问用户输入等。 相当简单,但在批处理文件中执行此操作非常困难(例如,没有例外)。 我熟悉像AxScript这样的命令行“脚本”包装器,这样我就可以使用它。 我缺少的是简单的文件操作框架。 我希望能够做cd(“..”),copy(srcFile,destFile)类型的function。 我试过的工具: NANT,我们在构建过程中使用它。 不是一个好的脚本工具。 疯狂冗长的XML语法并添加一个简单的函数,您必须编写扩展程序集。 不能内联。 电源shell。 看起来很棒,但我只是无法切换到我的主要shell。 与4NT有太多不同。 无论我做什么都需要从普通的命令提示符运行而不需要特殊的shell来运行它。 PowerShell可以用作脚本执行程序吗? 的Perl / Python的/ruby。 真的讨厌学习一种全新的语言和框架来进行批处理文件操作。 我没有能够把时间花在我需要的时间上。 另外,我们的工具链是99%的.NET商店,我真的想利用我们现有的经验和代码库。 是否有那些试图解决你用过的“在C#中制作批处理文件”问题的框架? 我希望C#/ .NET的强大function具有典型cmd.exe shell语言的立即模式类型function。 我一个人想要这样的东西吗?

有谁知道ShellHook消息HSHELL_RUDEAPPACTIVATED是什么意思?

我正在编写应用程序,它建立shell钩子来获取shell事件(如果重要的话,我正在使用C#)。 我正在使用这个例子: http : //msbob.spaces.live.com/blog/cns!DAFD19BC5D669D8F!1,332.entry Hook工作正常,但我没有收到我感兴趣的消息:HSHELL_WINDOWACTIVATED(所有其他与窗口相关的事件都运行良好)。 相反,我收到的代码为32772的消息应该是HSHELL_RUDEAPPACTIVATED(一些谷歌搜索帮助)。 但我无法理解为什么我根本没有收到HSHELL_WINDOWACTIVATED以及这个HSHELL_RUDEAPPACTIVATED消息的含义。 MSDN没有提及它。 任何人都可以向我解释一下吗?

如何检测当前登录用户的进程是否正在运行?

环境 – C#,。net 4.0,VS 2010 您好,我已经为Windows编写了一个简单的shell替代品。 用户登录时会自动启动shell。当用户退出shell时,会启动正常的Windows“explorer.exe”。 现在,当用户退出(并正确支持)时,我需要能够检查当前登录用户是否正在运行“explorer.exe”。 这可以防止代码再次不必要地启动它,从而导致“Windows资源管理器”应用程序窗口。 我已经看到了无数的如何检查并查看进程是否正在运行的示例…但没有看到它是否正在为当前登录用户运行。 下面的代码将检查“explorer.exe”是否已经在运行,如果不是,它将启动它。 但有些情况下,当不需要时,此代码将测试为正! 例如,使用快速用户切换时…另一个用户登录到计算机,因此,“explorer.exe”显示在进程列表中。 但是,当“explorer.exe”正在运行时,它不会为当前登录用户运行! 因此,当我的shell退出时,代码测试为正,并且“explorer.exe”未启动。 用户留下黑屏,没有shell! 那么,我如何修改下面的代码来测试当前登录用户是否正在运行“explorer.exe”? Process[] Processes = Process.GetProcessesByName(“explorer”); if (Processes.Length == 0) { string ExplorerShell = string.Format(“{0}\\{1}”, Environment.GetEnvironmentVariable(“WINDIR”), “explorer.exe”); System.Diagnostics.Process prcExplorerShell = new System.Diagnostics.Process(); prcExplorerShell.StartInfo.FileName = ExplorerShell; prcExplorerShell.StartInfo.UseShellExecute = true; prcExplorerShell.Start(); }

使用C#MongoDB驱动程序的嵌套数组$ pull查询

我按照预期在mongo shell上运行以下查询。 db.getCollection(‘personnels’).update( { _id: ObjectId(“55f6728b9d73a15807885de8”), “Devices._id”:ObjectId(“55fa5f7ac9e7863a3836e331”) }, { $pull:{ “Devices.$.DeviceCloudFolders”: { “CloudFolderId”: ObjectId(“5615124b06275f072040c4f1”)}} } ); 这是我的文档结构: { “_id” : ObjectId(“55f6728b9d73a15807885de8”), “FirstName” : “Tolga”, “Devices” : [ { “_id” : ObjectId(“55fa5f7ac9e7863a3836e331”), “Name” : “tolga-laptop”, “DeviceCloudFolders” : [{ “AuthorityType” : 1, “CloudFolderId” : ObjectId(“55f96db5c9e7863a3836e310”), “Status” : 1 }], “Status” : 1 } ], “Status” : 1 […]