小编Phi*_*hil的帖子

在WPF或Console C#app中接收WM_COPYDATA结构

我正在编写一个C#应用程序,需要与用本机C编写的另一个应用程序进行通信.到目前为止,我已经想出如何使用User32.dll SendMessage将消息从我的C#应用​​程序发送到C应用程序.但是,我无法弄清楚如何让C#应用程序从C应用程序接收消息.

我已经看到了覆盖WndProc方法的WinForms示例,但是在WPF或Console应用程序中没有要覆盖的WndProc方法.当然,至少可以在控制台应用程序中执行此操作.对?

c# wpf console interop interprocess

7
推荐指数
1
解决办法
3531
查看次数

通过USB或其他方式连接新驱动器时获取通知(C#)

我需要检测新驱动器何时通过USB端口,火线端口等插入Windows系统.我知道WM_DEVICECHANGE消息,但这需要打开一个窗口才能使用它.有没有办法在C#中创建后台进程来检测插入新驱动器的时间?

背景信息:我想编写此应用程序以从公司可移动驱动器中删除蠕虫.常规防病毒软件无法删除它.我们有一个将删除蠕虫的脚本,但它必须手动运行,这不足以控制爆发.

c# antivirus usb-drive removable-drive

7
推荐指数
1
解决办法
2105
查看次数

为什么我的.Net应用程序与Verisign联系?

我写了一个与网络通信无关的.Net应用程序.在使用NIC的整个应用程序中没有一行代码,但我的防火墙已经发现它在应用程序启动时因某些原因尝试联系Verisign.这不会经常发生; 事实上,它只发生过两次.

最后一次,我告诉我的防火墙允许访问网络之前,我能够启动Wireshark.我没有真正的数据传输.它只捕获了9个TCP数据包:一些SYN数据包,一些SYN/ACK和一些RST数据包(RST数据包被破坏).我怀疑我的第三方dll之一,但我不明白为什么数学库或图像处理库会尝试与Verisign建立连接,然后对该连接不做任何处理.

我的客户在安全严密的组织中; 我想要的最后一件事是打电话询问为什么我的应用程序连接到Internet.

有谁知道为什么会这样?有没有办法防止它发生?

Wireshark生成的.pcap文件在这里.

.net networking startup unauthorized verisign

7
推荐指数
1
解决办法
852
查看次数

WP7 Virtualizing WrapPanel

我想在我的WP7应用程序中使用WrapPanel,因此我使用了Silverlight for Windows Phone Toolkit中包含的wrappanel .这个包装的问题在于它不支持UI虚拟化.

您能否就如何为WrapPanel实施UI虚拟化提供一些指导?

windows-phone-7

7
推荐指数
1
解决办法
1355
查看次数

PowerShell脚本参数作为数组传递

编辑:我已经将代码更改为一个简单的测试用例,而不是出现此问题的完整实现.

我试图从另一个脚本中调用一个Powershell脚本,但事情并没有像我期待的那样成功.据我所知,"&"运算符应该将数组扩展为不同的参数.那不是我的事.

caller.ps1

$scriptfile = ".\callee.ps1"
$scriptargs = @(
    "a",
    "b",
    "c"
)

& $scriptfile $scriptargs
Run Code Online (Sandbox Code Playgroud)

callee.ps1

Param (
    [string]$one,
    [string]$two,
    [string]$three
)

"Parameter one:   $one"
"Parameter two:   $two"
"Parameter three: $three"
Run Code Online (Sandbox Code Playgroud)

.\caller.ps1在以下输出中运行结果:

Parameter one:   a b c
Parameter two:
Parameter three:
Run Code Online (Sandbox Code Playgroud)

我认为我遇到的问题是 $scriptargs数组没有扩展,而是作为参数传递.我正在使用PowerShell 2.

如何让caller.ps1运行带有参数数组的callee.ps1?

powershell

7
推荐指数
1
解决办法
6914
查看次数

.Net Windows服务向用户报告错误的最佳方式

我正在编写一个将进行大量网络通信的Windows服务,我需要一种方法来通知用户(如果已登录)任何异常/错误.我知道允许服务与桌面交互是不好的做法,那么是否有另一种方法来通知用户发生了错误?我知道事件记录,但我也希望能够从系统托盘中显示通知气泡或引起用户注意的事情.

c# windows-services exception-handling error-reporting

6
推荐指数
2
解决办法
2472
查看次数

在UnityContainer中注册NUnit DynamicMock实例

我对Unity和依赖注入有些新意.我正在尝试编写一个类似于下面的单元测试:

[Test]
public void Test()
{
    UnityContainer container = new UnityContainer();
    DynamicMock myMock = new DynamicMock(typeof(IMyInterface));
    container.RegisterInstance(typeof(IMyInterface), myMock.MockInstance);  //Error here

    // Continue unit test...
}
Run Code Online (Sandbox Code Playgroud)

执行此测试时,容器会在RegisterInstance方法中使用该消息抛出ArgumentNullException Value cannot be null. Parameter name: assignmentValueType.

堆栈跟踪的顶行是at Microsoft.Practices.Unity.Utility.Guard.TypeIsAssignable(Type assignmentTargetType, Type assignmentValueType, String argumentName).

为什么我不能在UnityContainer中注册MockInstance,我该如何解决这个问题呢?

nunit dependency-injection mocking ioc-container unity-container

6
推荐指数
1
解决办法
1323
查看次数

使用 Powershell 的 Out-Host 时保留颜色

我有一个命令行可执行文件,可以将彩色文本打印为标准输出。当我做以下...

my_executable.exe | Out-Host

...我发现 Out-Host 删除了所有彩色输出。当我想显示程序的彩色输出而不通过管道发送它时,这是一个问题。

有没有另一种方法可以让我显示控制台程序/批处理文件的彩色输出而不通过管道发送?

编辑:

换句话说,我想要的是:

带颜色的输出

但是 Out-Host 会导致这个:

无着色输出

编辑2:

这就是为什么我不能只调用 my_executable.exe 的原因:

我在 .ps1 文件中有一个类似于以下内容的脚本

param($someValue)

# do some things
.\my_executable.exe | Out-Host 
# do some more things
return 1
Run Code Online (Sandbox Code Playgroud)

现在,当我执行以下操作时:

$result = .\my-script.ps1
Run Code Online (Sandbox Code Playgroud)

$result 为 1。如果我不使用 Out-Host,$result 将是 my_executable.exe 的输出,最后为 1。Out-Host 允许我显示 my_executable.exe 的输出而不将其返回给调用者。我想要的是一种显示 my_executable.exe 的彩色输出而不将其返回给调用者的方法。

powershell scripting

6
推荐指数
1
解决办法
1426
查看次数

在网络服务帐户下访问 Windows 共享

我有两台装有 Windows Server 2003 的计算机。一台计算机在网络上有一些共享文件夹,另一台计算机有一个 Windows 服务(用 C# 编写,在网络服务帐户下运行)需要访问这些共享文件夹。

以下代码作为登录用户工作正常,但在网络服务帐户下执行时会引发异常。

File.WriteAllText(@"C:\temp\temp.txt", File.ReadAllLines(@"\\NetworkServer\Test\test.txt")[0]);
Run Code Online (Sandbox Code Playgroud)

异常消息是Logon failure: unknown user name or bad password。如何让此代码在网络服务帐户下工作?它是 Windows Server 2003 中的一个设置,还是我需要为此添加一些代码才能使其工作?

c# windows-services credentials windows-share network-share

5
推荐指数
1
解决办法
6453
查看次数

做性能记录的好方法(C#)

我试图从我公司正在开发的应用程序中获取一些详细的性能信息.我想要获得的信息示例包括网络事务需要多长时间,应用程序使用多少CPU /内存,给定方法完成所需的时间等.

我过去曾尝试过一些失败的尝试(比如尝试使用DateTime.Now来测量小时间段).最重要的是,我对获取CPU和内存统计信息知之甚少.是否有任何好的.Net类,库或框架可以帮助我收集这类信息和/或将其记录到文本文件中?

c# performance logging frameworks

5
推荐指数
1
解决办法
4332
查看次数