Articles of shell

如何以与我可以在Windows资源pipe理器中“发送到邮件收件人”相同的方式以编程方式发送电子邮件?

ShellExecute()允许我执行简单的shell任务,允许系统打开或打印文件。 我想采取类似的方式来以编程方式发送电子邮件附件。 我不想直接操纵Outlook,因为我不想假设用户默认使用哪个电子邮件客户端。 我不想直接发送电子邮件,因为我希望用户有机会使用他们的首选客户端编写电子邮件正文。 因此,当我右键单击某个文件并select“发送至” – >“邮件收件人”时,我确实希望完成Windows资源pipe理器的工作。 我正在寻找一个C ++解决scheme。

为我的应用程序创build属性处理程序,以将自定义属性添加到文件格式

我想为我的应用程序文件types添加自定义属性,就像Microsoft Word文件tyep .docx在Vista和窗口7中的详细信息窗格上的属性,显示作者属性等尝试为我的应用程序做同样的事情,但还没有线索。 在.net2.0中工作。我不知道我在做什么错, using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; using System.Runtime.CompilerServices; using System.Runtime.InteropServices.ComTypes; using Microsoft.Win32; namespace TestShell { [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("b7d14566-0509-4cce-a71f-0a554233bd9b")] interface IInitializeWithFile { [PreserveSig] int Initialize([MarshalAs(UnmanagedType.LPWStr)] string pszFilePath, uint grfMode); } [StructLayout(LayoutKind.Sequential)] public struct PROPERTYKEY { public Guid fmtid; public UIntPtr pid; } [ComImport] [Guid("c8e2d566-186e-4d49-bf41-6909ead56acc")] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] interface IPropertyStoreCapabilities { […]

如何从存储在文件中的进程列表中运行第一个进程,并删除第一行,就好像该文件是一个队列,我称之为“stream行”?

如何从存储在文件中的进程列表中运行第一个进程,并立即删除第一行,就好像该文件是一个队列,我称之为“stream行”? 我想用简单的文本文件中列出的第一个命令用\ n作为分隔符,用stream行的方式: 图1: cmdqueue.lst : proc_C1 proc_C2 proc_C3 . . 图2: 通过popcmdpopup第一个命令: proc_A | proc_B | popcmd cmdqueue.lst | proc_D 图3: cmdqueue.lst : proc_C2 proc_C3 proc_C4 . .

一个C / C ++程序如何将自己置于后台?

从命令行启动的运行C或C ++程序的最佳方式是如何将自己置于后台,等同于用户是否在命令末尾使用'&'从unix shell启动? (但用户没有。)这是一个GUI应用程序,不需要任何shellI / O,所以没有理由在发布后绑定shell。 但是我想要一个shell命令启动时自动后台没有'&'(或在Windows上)。 理想的情况下,我想要一个适用于任何Linux,OS X和Windows的解决scheme。 (或者我可以用#ifdefselect单独的解决scheme。)可以假定这应该在执行开始时正确地执行,而不是在中间的某个地方执行。 一个解决scheme是让主程序成为一个启动真实二进制文件的脚本,仔细地把它放到后台。 但是,需要这些耦合的shell/二进制对似乎并不令人满意。 另一个解决scheme是立即启动另一个执行的版本(使用“system”或CreateProcess),使用相同的命令行参数,但将subprocess放在后台,然后让父进程退出。 但是这个过程与背景相比似乎很笨重。 在几个答案后编辑 :是的,在Windows上的fork()(或system()或CreateProcess)是这样做的一种方法,我暗示在我原来的问题。 但是,所有这些解决scheme都会创build一个后台进程,然后终止原始进程。 我想知道是否有办法把EXISTING进程放到后台。 一个区别是,如果应用程序是从logging其进程ID的脚本启动的(可能是为了以后的查杀或其他目的),则新分叉或创build的进程将具有不同的id,因此不会由任何启动脚本控制,如果你看到我在做什么。 编辑#2 : fork()对于OS X来说并不是一个好的解决scheme,其中'fork'的手册页说如果使用某些框架或库,它是不安全的。 我试了一下,我的应用程序在运行时大声抱怨:“进程已经分叉了,你不能安全地使用这个CoreFoundationfunction,你必须执行exec()。 我被daemon()所吸引,但是当我在OS X上尝试它时,它给出了相同的错误信息,所以我认为它只是fork()的一个奇妙的包装,并且具有相同的限制。 请原谅OS X的中心主义,这恰好是我眼前的系统。 但是我的确在为这三个平台寻找解决scheme。

编程一个terminal模拟器,它是什么?

这与有关cmd.exe的更好的shellterminal/ gui-interface的问题有些相关 为了find一个更好的shellterminal,我遇到的唯一有用的东西是Console2 ,其他的select并不是免费的,一般都不会比Console2提供更多的价值。 我不禁想知道“怎么回事”? shellterminal对于程序员来说是一个非常有价值的工具,但是没有人来试图做比cmd.exe更好的工作(除了guys @ console2之外)? 当然,devise一个命令行shellterminal模拟器不是一件很难的事情! 有没有人试图写一个shellterminal模拟器? 这里面是什么? 那里有任何资源(比如,如果我想编写我自己的shell)? UPDATE 17/07/2009 我改述了这个问题,我所说的“shell”实际上被称为terminal模拟器(至less在Linux世界中)。 我最近才意识到这一点,所以我想我应该重新审视这个问题,并解决它。

Bash'printf'相当于命令提示符?

我正在寻求在Windows的命令提示符pipe一些stringinput到一个小型的C程序。 在bash中我可以使用 $ printf "AAAAA\x86\x08\x04\xed" | ./program 本质上,我需要在命令提示符下转义那些hex数字。 在命令提示符/ PowerShell中是否有相当于或类似的printf命令? 谢谢

我如何启动资源pipe理器使用c#中的进程类

我已经用我的应用程序取代了Windowsshell,它完美的工作,closures我的应用程序后,我必须启动Windows资源pipe理器与下面的一段代码 代码启动资源pipe理器 Process.Start(@"c:\windows\explorer.exe"); 我用来replaceshell的registry项 HKEY_Local_Machine\Software\Microsoft\WindowsNT\CurrentVersion\WinLogon\Shell 它不显示任务栏和开始菜单,它只显示mydocuments文件夹。 在资源pipe理器启动后,我需要启动菜单和任务栏

如何添加一个菜单项(在右键菜单)浏览器的所有文件(*。*)?

当Winrar安装,并用户右键单击文件时,存在一个新的小米项目:“添加到存档…” 怎么能这样做我的申请?

* .bat和* .cmd文件有什么区别?

可能重复: Windowsbatch file:.bat vs .cmd? 嗨, 我正在学习Windows批处理编程,并遇到这个问题: .bat和.cmd文件有什么区别? 如果他们是相同的,为什么需要其中2? 顺便说一句, command.com和cmd.exe有什么区别?

使用批处理(.bat)文件自动执行adb shell命令

我经常授予读/写/执行(chmod 777)权限到Android手机中的不同系统文件(rooted手机)。 有时我把chmod 777命令添加到启动脚本中,只是为了节省时间。 在Samsung Galaxy S6手机上,我正在更新文件(脚本):'/etc/init.sec.boot.sh',在文件末尾添加以下命令。 chmod 777 <filename> 这使用以下命令在adbshell内工作正常 su echo 'chmod 777 <filename>' >> /etc/init.sec.boot.sh 现在,如果我尝试使用.bat文件相同,它会给我权限错误。 我正在使用以下命令 adb shell su -c "echo \"chmod 777 <filename>\" >> /etc/init.sec.boot.sh" 由于这个命令不工作,我复制了文件到SD卡,修改它,然后用修改后的版本replace原始文件。 如果我现在读取文件的内容,它正确地读取我想要的内容,但是chmod命令从不执行。 我几次重新启动电话,但文件许可完全没有影响。 在这一点上,如果我运行相同的命令从壳内,如果工作。 su echo 'chmod 777 <filename>' >> /etc/init.sec.boot.sh 此时,init.sec.boot.sh文件中的最后两行是这样读取的。 chmod 777 <filename> chmod 777 <filename> 最后两行似乎完全一样。 chmod命令只能在shell内写入。 我能想到的唯一合理的解释是,Windows命令提示符和Android linux shell可能会使用不同的文本编码。 如何从.bat文件(甚至直接从命令提示符)成功执行chmod命令。 PS:我重新安装/系统读取/写入。