-
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA--------------BBB
AAAAAAAAAAAAAAAA--------------BBB
AAAAAAAAAAAAAAAA--------------BBB
AAAAAAAAAAAAAAAA--------------BBB
BBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBB
BBBBBB-----------CCCCCCCC
BBBBBB-----------CCCCCCCC
BBBBBB-----------CCCCCCCC
CCCCCCCCCCCCCCCCCCC
CCCCCCCCCCCCCCCCCCC
CCCCCCCCCCCCCCCCCCC
CCCCCCCCCCCCCCCCCCC
Run Code Online (Sandbox Code Playgroud) 这是来自原始文章.
static Bitmap CaptureCursor(ref int x, ref int y)
{
Bitmap bmp;
IntPtr hicon;
Win32Stuff.CURSORINFO ci = new Win32Stuff.CURSORINFO();
Win32Stuff.ICONINFO icInfo;
ci.cbSize = Marshal.SizeOf(ci);
if (Win32Stuff.GetCursorInfo(out ci))
{
if (ci.flags == Win32Stuff.CURSOR_SHOWING)
{
hicon = Win32Stuff.CopyIcon(ci.hCursor);
if (Win32Stuff.GetIconInfo(hicon, out icInfo))
{
x = ci.ptScreenPos.x - ((int)icInfo.xHotspot);
y = ci.ptScreenPos.y - ((int)icInfo.yHotspot);
Icon …
Run Code Online (Sandbox Code Playgroud) [STAThread]
static void Main(string[] args)
{
var fmt_csv = System.Windows.Forms.DataFormats.CommaSeparatedValue;
// read the CSV
var dataobject = System.Windows.Forms.Clipboard.GetDataObject();
var stream = (System.IO.Stream)dataobject.GetData(fmt_csv);
var enc = new System.Text.UTF8Encoding();
var reader = new System.IO.StreamReader(stream,enc);
string data_csv = reader.ReadToEnd();
// read the unicode string
string data_string = System.Windows.Forms.Clipboard.GetText();
}
Run Code Online (Sandbox Code Playgroud)
在查看评论并密切关注Excel在剪贴板上放置CSV之后,Excel可能会使用"遗留"编码而不是UTF-8来放置内容.所以我尝试使用Windows 1252代码页作为编码,它工作.请参阅下面的代码
Clipboard.SetText()
System.Windows.Forms.Clipboard.SetText(
"1,2,3,4\n5,6,7,8",
System.Windows.Forms.TextDataFormat.CommaSeparatedValue
);
Run Code Online (Sandbox Code Playgroud)
Clipboard.SetData()
System.Windows.Forms.Clipboard.SetData(
System.Windows.Forms.DataFormats.CommaSeparatedValue,
"1,2,3,4\n5,6,7,8",
);
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,都会在剪贴板上放置一些内容,但是当粘贴到Excel中时,它会显示为一个加载文本的单元格:" - §žý; pC |yVk²û"
正如BFree的答案所示,SetText与TextDataFormat一起作为一种解决方法
System.Windows.Forms.Clipboard.SetText(
"1\t2\t3\t4\n5\t6\t7\t8",
System.Windows.Forms.TextDataFormat.Text
);
Run Code Online (Sandbox Code Playgroud)
我已经尝试了这一点,并确认现在粘贴到Excel和Word正常工作.在每种情况下,它都会粘贴为带有单元格而不是纯文本的表格.
仍然好奇,为什么CommaSeparatedValue是不工作的.
我想要的cmdlet语法是这样的:
cmdletname [foo|bar] p1, p2
Run Code Online (Sandbox Code Playgroud)
cmdletname -foo xxx -p1 hello -p2 world
cmdletname -bar yyy -p1 hello -p2 world
Run Code Online (Sandbox Code Playgroud)
cmdletname -foo xxx -bar yyy -p1 hello -p2 world
Run Code Online (Sandbox Code Playgroud)
这是我实际代码的简化版本 - 我尽可能小,以便您可以清楚地看到问题:
using System;
using System.Management.Automation;
namespace DemoCmdLet1
{
class Program
{
static void Main(string[] args)
{
var cmd = new GetColorsCommand();
foreach ( var i in cmd.Invoke<string>())
{
Console.WriteLine("- " + i );
}
}
}
[Cmdlet("Get", "Colors")]
public class GetColorsCommand : Cmdlet
{
protected override void ProcessRecord()
{
this.WriteObject("Hello");
this.WriteVerbose("World");
}
}
}
Run Code Online (Sandbox Code Playgroud)以下是基于以下答案的源代码.
有些事情对我来说仍然不清楚:*如何调用"Get-Colors"cmdlet(理想情况下无需将其作为字符串传递给ps对象)*如何获取详细输出,因为它生成而不是获取最后收集它们.
using …
Run Code Online (Sandbox Code Playgroud) 如何制定执行此分组的简单LINQ查询(使用查询语法)?
在我正在编写的C#命令行应用程序中,有几个参数的"是"和"否"是可能的值.
我使用下面显示的Enum类型存储他们的输入.
enum YesNo
{
Yes,
No
}
Run Code Online (Sandbox Code Playgroud)
哪个好 - 代码有效.没问题.
注意:是的,我可以将它们存储为bool(这是它以前的工作方式).我的设计选择是明确用户做出的是/否选择,因为他们会在其他情况下看到这个选项,我希望它更明显的选择是什么.
我在StackOverflow的生命中相对较早地问过这个问题.这不是假问题 - 我确实遇到过这种情况.我只是觉得用它看看社区会做什么会很好.因为它,我承认一个有点奇怪的问题.
首先,感谢所有花时间回复的人.我试图用一个深思熟虑的结论来回报这个问题.
评论答案
切换到布尔.我理解你的动机,但我觉得我需要指出一个二元选择(并且我的意思是任意两个值之间的选择 - 活着/死亡,已婚/未婚等)与布尔选择之间的选择不同真假.我们发现程序员在yes/no和true/false之间切换容易 - 足够公平.如果我在这种情况下的选择是例如"民主党人"或"复制""(我知道的人为例子)那么你可以看到混淆或至少尴尬的可能性.我认为bool选项在这种情况下是有效的,但是更少所以在其他二元选择中.
本地化 - 伟大的观点.在我的具体情况下,它并不重要 - 这不是也不会被本地化,但对于其他情况,这是需要考虑的事情.
三个以上的选项 - 事实上,后来我不得不添加第三个值来表示用户的有效(在我的应用程序中)条件,特别是没有做出选择.
有很多好评,谢谢大家!
c# ×6
clipboard ×2
csv ×2
powershell ×2
algorithm ×1
cmdlet ×1
coding-style ×1
cursor ×1
diacritics ×1
excel ×1
fonts ×1
geometry ×1
grouping ×1
icons ×1
ironpython ×1
layout ×1
linq ×1
mouse ×1
naming ×1
optimization ×1
parameters ×1
paste ×1
performance ×1
screenshot ×1
tag-cloud ×1
typography ×1
windows ×1
wordle-game ×1