如何在Visual Studio 2017 VSIX C#项目中启用/禁用命令
我正在使用C#VSIX项目为Visual Studio 2017开发扩展. 我需要根据.ini文件中的设置创建一个可变数量的命令. 我认为创建最大数量的命令(因为在VSIX项目中,每个命令都需要一个新的.cs文件), 并仅启用.ini文件中写的命令.不幸的是,我不知道如何禁用命令.当布尔人变为真时,我需要启用命令. 我已经看到我需要使用lemenucommand类,但是我没有初始化()和statusquery()方法.我如何动态启用命令? 解决方案 要在Visual Studio中启用/禁用命令,您可以订阅OleMenuCommand的BeforeQueryStatus事件: myOleMenuCommand.BeforeQueryStatus += QueryCommandHandler; private void QueryCommandHandler(object sender) { var menuCommand = sender as Mi
10 2024-04-26
编程技术问答社区
进程启动不工作的Cmd窗口C#。
我正在研究C#的Visual Studio 2017项目,我尝试使用代码过程开始.但是,当我尝试过它时,命令无法打开CMD窗口,但没有在窗口上写入任何命令.我该怎么办? private void button2_Click(object sender, EventArgs e) { Process.Start("cmd", "command"); } 解决方案 Process.Start("cmd", "/c command & pause"); 我添加了&暂停,这样您就可以看到窗口熬夜. 如果您根本不想显示窗口. ProcessStartInfo info = new ProcessStartInfo( "cmd", "/c command" ); info.CreateNoWindow = true; info.UseShellExecute = false; Process.Start( info );
12 2024-04-26
编程技术问答社区
如何在C#中向StandardInput (Process)传递文件名?
我正在使用命令行中的本机Windows应用程序spamc.exe(spamassassin -sawin32)如下: c:\ spamassassin \ spamc.exe -r 现在我想从C#拨打此过程: Process p = new Process(); p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardInput = true; p.StartInfo.FileName = @"C:\SpamAssassin\spamc.exe"; p.StartInfo.Arguments = @"-R"; p.Start(); p.StandardInput.Write(@"C:\email.eml"); p.StandardInput.Close(); Console.Write(p.StandardOu
6 2024-04-26
编程技术问答社区
WPF:将用户控制命令路由到主窗口
我必须承认我有问题了解WPF的工作方式.我有一个UserControl 底部control 嵌套在我的MainWindow 中.如果单击底部的按钮,我希望发生MainWindow中的某些更改(例如,更改文本框的内容). 很容易做的事情显然只是在Click_event中调用公共程序,但这并不是很优雅.我到了使用RoutedCommands. public static readonly RoutedCommand BottomGridReSize = new RoutedCommand(); 在usercontrol的xaml中 在MainWindow的代码中 void BottomGridReSize_CanExecute(obje
6 2024-04-26
编程技术问答社区
在不使用IF语句的情况下对命令列表执行命令 C#
我有一个TcpListener在NetworkStream上聆听命令示例. "复制,移动,删除,...." switch(command) { case "copy": // do copy break; case "delete": // do delete break; case "move": // do move break; ....................................... } 我已经使用switch - case和if语句实现了它,但是在维护或添加新命令时,特别是当命令列表超出 100命令时,它变得非常困难且乏味,所以有一种方法可以有效地做到这一点,我尝试在 Google 上进行搜索,但是我似乎无法正确地弄清楚它的行话 任何帮助:) yaser 解决方案 您正在寻找命令模式.您必须创建一个接口ICommand并实现该接口一个命令. 例如:CopyCommand,
6 2024-04-26
编程技术问答社区
CS0201在WPF应用程序的ICommand植入中的错误
我开发了WPF应用程序,显然,我使用MVVM模式.没有外部库(mvvmcross,mvvmlight,...) 我尝试实现ICommand: 选项1 public class Command : ICommand { private readonly Func _canExecute; private readonly Action _action; public Command1(Action action, Func canExecute) { _action = action; _canExecute = canExecute; } public event EventHandler CanExecuteChanged { add { CommandManager.RequerySuggested += value; }
16 2024-04-26
编程技术问答社区
什么事件触发了一个按钮中的命令?
所以我有一个与我正在从事的项目有关的问题: 使用哪些事件在按钮控件中触发命令?只是点击事件吗? 因为当我单击一个按钮时,我的命令将在发布鼠标按钮后执行?这就是为什么我想知道的原因. ViewModel中的代码 public ICommand ClickHereCommand => (new CommandHandler(() => IsGoingUp(), _canExecute)); public void IsGoingUp() { Console.WriteLine("Moving
8 2024-04-26
编程技术问答社区
在winform C#中从命令提示符中执行自定义命令
我有一个第三方可执行命令,该命令被捆绑到我的Winform应用程序中.该命令放置在执行该应用程序的目录中的名为"工具"的目录中. 例如,如果我的winform mytespapp.exe放置在d:\ apps \ mytestapp目录中,则第三方命令的路径为d:\ apps \ mytestapp \ tools \ tools \ mycommand.exe.我正在使用application.startuppath识别mytestapp.exe的位置,以便可以从任何位置运行. 我正在使用命令提示符启动过程-System.diagnostics.process.start并执行相同的操作来执行此命令.有其他参数要传递以运行命令. 我面临的问题是,如果我的应用程序的路径和命令中没有任何白色空间,则可以正常工作 例如, 如果我的应用程序和命令如下所示,则可以工作 D:\ apps \ mytestapp \ mytestapp.exe D:\ apps \ myte
4 2024-04-25
编程技术问答社区
在ServiceStack中动态地创建操作和服务
我正在研究一个ServiceStack项目,该项目需要我收集一份命令列表,其中我拥有200多个命令,并为每个命令创建一个操作和服务.本质上,我正在制作一个指挥API,该API将允许用户在不使用UI的情况下发送命令(公开我的命令). 我要做的事情的简单示例: (申请开始) Gather all commands (with some exemptions) for each command make an operation and service for that command map the commands attributes to the new operation and service 我遇到的问题是创建操作和服务.我不确定它是否在ServiceStack框架中得到支持,以允许动态创建服务和操作,但是我实际上没有运气来找到一种方法.为了澄清,通过动态,我的意思是在应用程序启动期间从列表中创建命令,而不是即时创建它们. 有人可以为我理解吗
10 2024-04-25
编程技术问答社区
通过TCP套接字发送命令的最佳方式是什么?
我目前使用的服务器和客户端正在使用简单字符串之间的命令发送给字节.基本上是这样的(作为示例将消息发送给服务器): byte[] outStream = System.Text.Encoding.UTF8.GetBytes("$msg:Test Message"); serverStream.Write(outStream, 0, outStream.Length); ,回收端编码回到字符串.它通过执行此操作来识别命令: recievedstring.Split(':')[0] 假设recievedstring.Split(':')[1]是参数.如果用户在消息中输入结肠,则将其切断.我觉得这是一种在两个端点之间发送数据的骇人听闻方法.有一个更标准的方法吗?抱歉,如果我没有提供足够的信息,我是新手! 解决方案 您不一定需要处理以字符串传达的所有数据,您可以将数据传达为字节,然后将字节转换为任何数据类型(如发件人发送). 更好的方法是为每个味精之间定义服务器和
10 2024-04-24
编程技术问答社区
UserControl中的RoutedCommand不能按预期工作
我试图在我的UserControls中使用routedCommands,遵循本文的示例: 03/18/了解路由命令/ 我在usercontrol中定义了路由命令和命令,而不是在文章的示例中.我正在尝试在MainWindow中使用它,以便在单击按钮时,执行UserControl中的命令.但是,该按钮被禁用,并且从未执行Foo_CanExecute()方法.
8 2024-04-24
编程技术问答社区
如何用c#使用net用户
我试图将网络用户与C# 一起使用 System.Diagnostics.ProcessStartInfo proccessStartInfo = new System.Diagnostics.ProcessStartInfo("net user " + id + " /domain"); proccessStartInfo.CreateNoWindow = true; System.Diagnostics.Process proc = new System.Diagnostics.Process {StartInfo = proccessStartInfo}; proc.Start(); string result = proc.StandardOutput.ReadToEnd(); textBoxOp.Text = result; 当我执行代码win32异常时,消息系统无法找到指定的文件 例外的详细信息如下 在 system.diagnostics.proces
10 2024-04-23
编程技术问答社区
WPF-CanExecute对DataGrid'的ContextMenu不起作用
我想让我的datagrids具有上下文菜单,该菜单允许用户向上或向下移动所选行.搜索后,我想出了以下有问题的代码.看来CanExecute CanExecute只有一次(我猜何时创建菜单),因此我的menuitem将在所有时间 启用或禁用.我正在努力实现的目标是使其在数据杂志中选择的行和禁用时启用时启用它.目前这不起作用. 另外,还有一个更优雅的解决方案吗?如果我使用更多代码,我认为它会变成一团糟... public class DataGridMoveRowsUpCommand : ICommand { public event EventHandler CanExecuteChanged; public bool CanExecute(object parameter) { var grid = parameter as DataGrid; if (grid != null && grid.SelectedItem
10 2024-04-23
编程技术问答社区
从命令行发出的Windows服务自定义命令
我已经实现了一个Windows服务,并用自定义命令覆盖了OncustomCommand方法. 我可以从另一个.NET应用程序中访问以下.NET应用程序: ServiceController Controller = new ServiceController("MyWindowsService"); if (Controller.Status == ServiceControllerStatus.Running) { Controller.ExecuteCommand(128); } 但是,我可以从命令行(CMD)访问这些自定义命令,就像我可以开始/停止/...服务? edit :(只需使用标准工具创建中间件应用程序来处理服务) ) 解决方案 您可以使用服务控制命令行工具sc > sc control MyWindowsService 128 (在引擎盖下,一切都使用Win32的ControlService API.)
8 2024-04-23
编程技术问答社区
在WPF,MVVM中,ViewModel应该参与打开一个窗口,例如:关于窗口?
我有一个标准的WPF TreeView,并且有绑定的项目以查看模型类. 我现在想双击项目时要处理行为(开放文档视觉studio style) 我可以让事件处理程序在控制室的控件中发射(显示的XAML),但是我如何绑定到视图模型类上的特定行为 - 例如ProjectViewModel? 优选绑定到ICommand-Implementer,因为它在其他地方使用... 感谢您的任何评论, 安德斯,丹麦
6 2024-04-22
编程技术问答社区
批处理文件显示批处理命令
我得到了一个4776行长的批处理.现在,我希望batchfile从我写的批处理本身中显示命令和文本. 预期的谢谢 vvw 解决方案 我喜欢在批处理脚本的开头添加它: @ECHO OFF IF /i {%1}=={ECHO} ECHO ON&SHIFT 这检查第一个参数是否为" Echo"(不敏感).如果是这样,它会打开回声,然后改变论点,使%2变为%1,%3变为%2. 这样,脚本就可以表现得好像您正常运行,但是带有回声. 其他解决方案 从批处理文件中删除以下行. @echo off 或通过执行 进行操作 @echo on 其他解决方案 尝试将代码放入变量中,然后打印. mycode = %Code Code Code% echo %mycode%
120 2024-04-22
编程技术问答社区
在 Cscope 搜索中使用光标下的单词
是否有一种方法可以在VIM中的cscope搜索中使用光标下的单词? 如果光标超过变量Foo,并且我想避免在命令行中再次键入Foo,但想组装:cs f s Foo. 有什么方法可以自动化? 解决方案 使用 ctrl-r ctrl-w 将光标下的单词复制到命令行: :cs f s 参见文档 P>
10 2024-04-22
编程技术问答社区
如何通过应用程序运行 traceroute 命令?
我想通过我的应用程序运行traceroute命令. 我该怎么做? Runtime.getRuntime().exec("traceroute google.com") 不工作. java.io.ioexception:错误运行exec().命令:[traceroute,-4,google.com]工作目录:null环境:null 11-02 12:51:38.399:e/trace(1604):在java.lang.processmanager.exec(processManager.java:224) 有其他方法,例如使用NDK还是其他方式. 请帮助我. 解决方案 您无法在Android中使用Traceroute命令. 如果您想在安装忙碌的箱子的扎根设备中使用它,请使用BusyBox安装的路径来运行命令. 如果要在扎根设备中使用它,则该库将很有用. http://code.google.com/p/roottools/ 其他解决方案 您可
12 2024-04-22
编程技术问答社区
没有 cd 命令的手册页
ubuntu linux 15.10-我只是注意到没有人页面cd 这似乎有点奇怪. 我尝试了: man cd 在CMD线上,我回来 No manual entry for cd 我试图在 上找到文档 cd - 在最后一个dir和当前的dir 之间翻转非常有力 和cd -- 这似乎是 的别名 cd ~ 我在这里错过了很明显的东西,还是应该在场? 解决方案 cd不是命令,它内置在您的外壳中.这是必要的,因为您当前的工作目录由以pwd或"打印工作目录"命令命名的PWD环境变量控制. 父母过程无法更改父过程的环境变量.因此,如果您的shell ran /bin/cd改变了PWD,它将仅影响/bin/cd及其运行的任何内容.它不会更改外壳的PWD. 某些系统,例如OS X和CentOS,将cd MAN页面映射到builtin,其中列出了所有内置的外壳,让您知道您应该查看Shell的Man页面. 您可以检查使用ech
8 2024-04-22
编程技术问答社区
如何在 rust 中使用管道命令?
我试图在外壳中执行命令并将返回值作为字符串获取. 我要执行的命令是ps axww | grep mongod | grep -v grep 我已经通过Internet看到了解决方案,但它们没有解释代码,因此很难根据我的需求进行自定义. 示例:如何在Rust中进行三明治管?&两个子过程之间的管道 有人可以提供解决方案,并通过行逐行说明它是如何用外行的术语来工作的. 解决方案 您需要的是文档,他们确实在其中逐行解释一切,并以详尽的示例.从中改编,这是您的代码 use std::process::{Command, Stdio}; use std::str; fn main() { let ps_child = Command::new("ps") // `ps` command... .arg("axww") // with argument `axww`... .stdout(Std
22 2024-04-22
编程技术问答社区