小编moo*_*ogs的帖子

RunAs在Visual Studio中进行调试时的其他用户

我正在尝试运行我正在调试的程序作为不同的用户.现在,这可以通过运行exe并从Visual Studio附加来完成,但这很麻烦.

我试图做的是使用"RunAs"命令:

command.com /C runas /env /user:OtherUser DebugTarget.Exe 
Run Code Online (Sandbox Code Playgroud)

但这附在command.com上,Visual Studio需要一个exe.现在我可以创建一个虚拟应用....但任何人都有更好的解决方案吗?

visual-studio

75
推荐指数
4
解决办法
9万
查看次数

上下文菜单的捕获窗口(Alt-Print屏幕)

众所周知,有时开发人员必须记录内容.或者捕获一些用于提交错误报告的内容.

我的问题是在MS Windows中.

我正在尝试捕获应用程序的几个区域的上下文菜单(右键单击项目后出现的弹出菜单).按下Alt以启动Alt+ PrintScreen进程将关闭上下文菜单.

(只有按下有PrintScreen帮助,但每次删除非窗口区域都很痛苦).

奖励:要捕获菜单,Alt还要关闭菜单.但是,如果您首先使用该Alt键打开菜单,它的工作原理如下:

  1. Alt+ F(用于打开"文件"菜单),不要释放Alt
  2. PrintScreen
  3. 田田!

windows bug-tracking screenshot screen-capture printscreen

34
推荐指数
4
解决办法
4万
查看次数

客户端图像处理

我们正在构建一个需要大量图像处理的基于Web的应用程序.我们希望这个处理负载尽可能地在客户端上,我们希望尽可能多地支持平台(甚至是移动设备).

是的,我知道,一厢情愿

这是信息:

  1. 图像处理是来自某些数据的光栅化.想像从PDF文件创建PNG图像.

  2. 我们没有很多服务器电源.所以客户端处理是必须的.

所以,我们正在考虑:

  1. Flash - 最普遍,但从我读到的开发工具乏善可陈.(目前还没有iPhone/iPad支持).

  2. Silverlight - 允许我们使用.NET CLR,因此是一个很大的++(很多代码都在.NET中).但大多数手机都不支持(未来传闻的Android支持)

  3. HTML5 + Javascript - 可能是最"便携"的选项.问题是必须在Javascript中重写所有图像处理代码.

任何可能有帮助的想法或架构?澄清:我不需要进一步了解哪些库可用于Silverlight和Javascript.我的困境是

  • 选择Silverlight意味着不支持大多数手机
  • 选择Flash意味着我们必须重新开发大部分代码而不支持iPhone/iPad
  • HTML5 + Javascript我们必须重新开发大部分代码,并且尚未在所有浏览器中完全支持
  • 选择两个(Silverlight + Flash)将太昂贵

我可能会缺少任何开箱即用或明智的想法/替代方案?

flash silverlight html5 ria image-processing

32
推荐指数
2
解决办法
5434
查看次数

C#的对象缓存

我正在为一些文档格式做文档查看器.为了更容易,让我们说这是一个PDF查看器,一个桌面应用程序.该软件的一个要求是渲染速度.所以,现在,当用户滚动文档时,我正在为下一页缓存图像.

这是有效的,UI非常敏感,似乎应用程序几乎可以立即呈现页面......但代价是:内存使用量有时会达到600MB.我将它全部缓存在内存中.

现在,我知道,我可以缓存到磁盘,但是这样做总是明显变慢.我想要做的是实现一些缓存(LRU?),其中一些缓存页面(图像对象)在内存中,大多数都在磁盘上.

在我开始这个之前,框架中有什么东西或某些库可以为我做这个吗?这似乎是一个非常普遍的问题.(这是一个桌面应用程序,而不是ASP.NET)

或者,您对此问题有其他想法吗?

.net c# caching

22
推荐指数
4
解决办法
2万
查看次数

避免.NET版本地狱

所以有时(通常!)你想要定位一个特定的.NET版本(比如3.0),但是由于某些.NET服务包你会遇到如下问题:

  • Dispatcher.BeginInvoke(Delegate, Object[]) < - 这是在3.0 SP2(3.0.30618)中添加的
  • System.Threading.WaitHandle.WaitOne(Int32) < - 这是在3.5 SP1,3.0 SP2,2.0 SP2中添加的

现在,这些都是由JIT编译器检测到的,因此在Visual Studio中针对.NET 3.0进行构建将无法保证它将仅在.NET 3.0系统上运行.

缺乏

  • 确认您使用的每个功能,或
  • 将您的开发环境限制为.NET 3.0(因为您必须为其他项目开发,因此很糟糕)

什么是避免使用扩展的最佳方法?

谢谢!

.net dll visual-studio

15
推荐指数
2
解决办法
540
查看次数

WPF RichTextBox性能

加载50KB文本文档时,WPF的RichTextBox控件的性能非常慢.滚动滞后并按Ctrl-A选择所有文本需要10秒以上.(这是在记事本上的表示).

我没有做任何奇特的位图效果.这是正常的吗?即使在空的RichTextBox上打字,也似乎比正常情况有点滞后.

有没有解决这个问题?备择方案?谢谢!

wpf performance controls

14
推荐指数
1
解决办法
5583
查看次数

Ruby中的RAII(或者,如何在Ruby中管理资源)

我知道你的设计是无法控制物体被摧毁时发生的事情.我也知道将一些类方法定义为终结器.

然而,C++的RAII的ruby习惯用法(资源在构造函数中初始化,在析构函数中关闭)?即使发生错误或异常,人们如何管理对象内部使用的资源?

使用确保工作:

f = File.open("testfile")
begin
  # .. process
rescue
  # .. handle error
ensure
  f.close unless f.nil?
end
Run Code Online (Sandbox Code Playgroud)

但是每次需要调用open方法时,班级用户必须记住做整个begin-rescue-ensure chacha.

例如,我将有以下课程:

class SomeResource
 def initialize(connection_string)
   @resource_handle = ...some mojo here...
 end

 def do_something()
   begin
    @resource_handle.do_that()
    ...
   rescue
    ...
   ensure
 end

 def close
  @resource_handle.close
 end

end
Run Code Online (Sandbox Code Playgroud)

如果异常是由某个其他类引起并且脚本退出,则不会关闭resource_handle.

或者更多的问题我还在做这个C++ - 比如?

ruby resources destructor raii finalizer

10
推荐指数
2
解决办法
1774
查看次数

有人发现除了LINQ之外还使用"var"吗?

只是好奇.我大约99.999%肯定没有...但是什么?

编辑:这些是好的答案(节省打字时间或使代码更简洁"可读性").我想我应该澄清"使用"的意思 - 一些没有"var"就无法完成的构造/设计.

c# linq

10
推荐指数
3
解决办法
565
查看次数

无法访问封闭流

我正在尝试使用缓存应用程序块来缓存一些图像(这些图像需要很长时间才能渲染)

  BitmapSource bitmapSource; ///some bitmap source already created
  _cache ///  Caching Application Block
  String someId; //id for this image, used as the key for the cache

  using (var stream = new MemoryStream())
    {
        PngBitmapEncoder encoder = new PngBitmapEncoder();
        encoder.Interlace = PngInterlaceOption.On;
        encoder.Frames.Add(BitmapFrame.Create(bitmapSource));             
        encoder.Save(stream);
        _cache.Add(someId, stream);
    }
Run Code Online (Sandbox Code Playgroud)

然后使用以下方法加载它们

imStream = (Stream)_cache.GetData(someId));
if (imStream != null)
{
    PngBitmapDecoder decoder = new PngBitmapDecoder(imStream,  BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
    return decoder.Frames[0];  //return the bitmap source
}
Run Code Online (Sandbox Code Playgroud)

但在加载过程中,我在"新的PngBitmapDecoder"行中得到以下异常:

"无法访问封闭的流.

我理解我在上面的代码中关闭了流,但是在退出之前是不是_cache.Add()制作副本(通过序列化)?序列化流的正确过程是什么?

谢谢!

.net c# serialization caching-application-block

10
推荐指数
2
解决办法
2万
查看次数

COM,VARIANT包含BSTR.谁分配?

好的,所以我真的不能想到一个总结这个的apropos标题.

IPrintPipelinePropertyBag接口具有AddProperty方法,该方法恰当地"将属性添加到属性包".

http://msdn.microsoft.com/en-us/library/aa506384.aspx

AddProperty([in,string] const wchar_t*pszName,[in] const VARIANT*pVar);

我们使用以下代码将字符串添加到属性包中.

CComVariant varProperty = CComBSTR(someString);
pPrintPropertyBag->AddProperty(L"SOME_PROPERTY", &varFilename);
Run Code Online (Sandbox Code Playgroud)

但是很明显,创建的CComBSTR和CComVariant在一段时间后超出了范围.我不确定PropertyBag是否处理字符串并制作自己的副本.由于我们可以在VARIANT中存储各种内容,因此情况并非如此.

假设没有处理字符串,我的问题是,在COM中执行此操作的模式是什么?我应该如何传递包含已分配字符串的VARIANT,使该字符串可用于其他线程,即使调用AddProperty的线程首先死亡,并正确地取消分配字符串?

c++ windows com bstr variant

9
推荐指数
1
解决办法
4312
查看次数