小编Ric*_*fen的帖子

如何在C#中捕获Windows应用商店应用的窗口内容

我有一些代码来捕获Windows桌面应用程序内容并保存到.NET中的Bitmap对象.它使用User32.dll和Gdi32.dll(BitBlt)并且工作得很好.但是,当我为代码提供一个包含Windows应用商店应用程序的窗口的句柄时,代码会生成全黑位图.我不确定这是安全功能还是什么.我不能使用ScreenCapture api作为窗口的内容,在调整大小后,几乎总是比屏幕更高/更大.对于Windows应用商店应用,有没有人有幸获取窗口内容,即使它们比屏幕大?

编辑:就像一个笔记我试图捕捉不同的程序的窗口,而不是我自己的程序.我的程序可以假定为.NET 4.6.1/C#中的Windows控制台应用程序

此外,我知道在Windows API中必须以某种方式实现这一点,因为Aero Peek功能,如果您将鼠标悬停在正在运行的程序图标上的任务栏上,则会显示窗口的完整高度,包括屏幕外组件.(见右边的高窗,设置为比我的显示器高出6000px)

看到右边的高大的窗户,设置为比我的显示器高出6000px

c# screen-capture windows-store-apps

26
推荐指数
1
解决办法
1119
查看次数

自动化Blackberry 10模拟器操作

我正在使用VMWare Player和Blackberry 10模拟器图像; 我需要自动进行一些单元/集成测试.我知道我可以使用VIX api来启动一个新的模拟器并加载Blackberry图像.

我希望能够做的是发送'按键',启动特定的应用程序,也许发送手势.在Android上有monkeyrunner和其他类似的应用程序.但是我对BB10没有太多了解,我知道它是新的,但我不能成为唯一有这个要求的人.

此外,telnet选项有多强大?我可以telnet到模拟器并将目录更改为apps目录,但我无法列出其内容,SUDO或运行任何东西.

*****UPDATE*******

我已经取得了一些进展,但并不多.您似乎可以使用Windows API将mouse_evt消息发送到VMWare模拟器; 它不是100%可靠,但足以打开应用程序.我现在拥有的一个大洞就是能够在执行动作/滑动/触摸后检测状态,也就是"刷卡我刚刚执行工作?我们是否在正确的应用中?".查询设备的进程列表非常有用,但telnet示例中给出的"devuser"帐户实际上无法执行任何操作.

这个要点有基于我的经验触摸和滑动屏幕的基础知识. https://gist.github.com/edgiardina/6188074

simulator vmware-player blackberry-10

13
推荐指数
1
解决办法
257
查看次数

实体框架代码首先,非空的setter或getter?

我正在使用EF Code First项目,一切都很顺利.我有一个简单的类,客户.在我的客户类中,我有一个我想要加密的字段(是的,我知道我可以在数据库级别进行加密,但要求我在域/代码级别加密),所以我希望我可以执行以下操作:

public class Customer
{
    public int CustomerID { get; set; }      
    public string FieldToEncrypt { get; set { _FieldToEncrypt = MyEncryptionFunction.Encrypt(); } }
}
Run Code Online (Sandbox Code Playgroud)

但是,我假设如果setter有一个定义,实体框架代码首先可能在生成模式时忽略该属性.所以我的问题是,有没有办法用提供的getter/setter来做EF Code First,还是应该将这个功能转移到构造函数中?我应该覆盖上下文保存时发生的一个方法/事件吗?

编辑********************

请注意,我使用DataService通过OData协议服务传输数据.这会自动生成插入/更新/选择方法.一些建议需要创建第二个属性,但DataService类似乎没有通过NotMapped属性.这引起我先前问题的一些纠结.

c# entity-framework ef-code-first

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

ASP.NET MVC; 使用EditorTemplates编辑集合,这是动态字段创建的最佳方式

我是ASP.NET MVC的新手,如果这比它看起来更容易,那么道歉.我一直在谷歌搜索,我有一个这样的:

public class Search : IAuditable
{
    [Key]
    public int SearchID { get; set; }
    public int UserID { get; set; }

    ...

    public ICollection<SearchTerm> SearchTerms { get; set; }   
}
Run Code Online (Sandbox Code Playgroud)

Create.cshtml中,我有以下内容

<div class="editor-label">
    @Html.LabelFor(model => model.Search.SearchTerms)
</div>
<div class="editor-field">
    @Html.EditorFor(model => model.Search.SearchTerms, "SearchTerm")
    @Html.ValidationMessageFor(model => model.Search.SearchTerms)
</div>
Run Code Online (Sandbox Code Playgroud)

SearchTerm EditorTemplate是一个简单的表单,如下所示:

@model Core.Search.Parameters.SearchTerm

@Html.HiddenFor(n => n.SearchTermID)
<div class="editor-label">
    @Html.LabelFor(n => n.Text, "Term")
</div>
<div class="editor-field">
    @Html.EditorFor(n => n.Text)
    @Html.ValidationMessageFor(n => n.Text)
</div>
Run Code Online (Sandbox Code Playgroud)

它似乎工作,我在创建时看到一个文本框(默认模型为空时).不过,我想要做的是能够添加/删除SearchTerms与 …

asp.net-mvc mvc-editor-templates

8
推荐指数
2
解决办法
1250
查看次数

Microsoft.Smartdevice.Connectivity和Windows Phone 8,启动本机应用程序,发送输入?

我编写了一个小型.NET控制台程序,它将启动Windows 8模拟器.很简单:

using Microsoft.SmartDevice.Connectivity;
using Microsoft.SmartDevice.Connectivity.Interface;
using Microsoft.SmartDevice.MultiTargeting.Connectivity;

MultiTargetingConnectivity connectivity = new MultiTargetingConnectivity(CultureInfo.CurrentUICulture.LCID);
var devices = connectivity.GetConnectableDevices();
ConnectableDevice connectableDevice = devices[2];
Console.WriteLine("Found Connectable Device \'" + connectableDevice.Name + "\' for Device id {" + connectableDevice.Id + "}.");
Run Code Online (Sandbox Code Playgroud)

非常直截了当.但是,我现在要做的是以编程方式与设备进行交互.我知道我可以使用iDevice.installApplication启动我自己的应用程序,但我真正想做的是运行模拟器附带的内置应用程序(邮件应用程序).我可以使用SmartDevice.Connectivitylibs发送触摸,还是启动未显示在GetInstalledApplications()方法中的"隐藏"应用程序?API很稀疏,似乎没有大量开发人员使用它.

smart-device-framework windows-phone-8

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

黑莓10截图错误

我正在尝试使用bb:system :: screenshot

request.setTarget("sys.pim.uib.email.previewer");

  // Set the action that the target app should execute
  request.setAction("bb.action.VIEW");

  // Set the MIME type of the data
  request.setMimeType("message/rfc822");

  // Specify the location of the data
  request.setUri(QUrl("pim:message/rfc822:" + QString::number(accountId) +":" + QString::number(messageId)));

  InvokeTargetReply *reply = invokeManager.invoke(request);

  sleep( 2 );

  //Screenshot
  bb::system::Screenshot screenshot;
  QString filename = screenshot.captureDisplay();
  if (filename.isEmpty()) {
      // Something went wrong
      bb::system::ScreenshotError::Type error = screenshot.error();
  }

  //Close Email
  invokeManager.closeChildCard();
Run Code Online (Sandbox Code Playgroud)

问题是文件名始终为空,screenshot.error()始终具有错误值.以下是调试器在"出错"行中所说的内容:

screenshot.error()错误:报告了多个错误.\无法执行MI命令:-var-create - *screenshot.error()来自调试器后端的错误消息:无法找到方法bb :: system :: screenshot ::错误\无法创建变量对象

不确定这意味着什么?

编辑:我在if语句之外移动了屏幕截图变量定义并看到此错误:

Name : error …
Run Code Online (Sandbox Code Playgroud)

c++ screenshot blackberry blackberry-cascades

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

在CAM中将后期绑定到XAML/Store应用程序中的Word Control

以前我已经能够在另一个应用程序中找到一个Word文档

[DllImport("Oleacc.dll")]
private static extern long AccessibleObjectFromWindow(int windowHandle, int objectID, Guid refID, ref IntPtr accessibleObject);
Run Code Online (Sandbox Code Playgroud)

并将结果对象返回到一个

Microsoft.Office.Interop.Word.Window
Run Code Online (Sandbox Code Playgroud)

这非常有效,因为我可以在Microsoft Outlook中检查有关Word的不同属性,因为MS Outlook使用Word窗口来呈现其电子邮件内容.

但是,它在XAML/Windows Store应用程序中有点棘手,因为看起来Word文档是在没有直接窗口句柄的情况下嵌入的.下面是Window的inspector.exe输出.选定的"消息"项是我的Word实例.但是,根据辅助功能检查器,具有NativeWindowHandles的树中的唯一项目是"邮件"窗口和标题窗口.

有谁知道如何将外部XAML /商店应用程序中的Word控件编组到C#对象中?

在此输入图像描述

c# binding ms-word

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

CAKE构建和NUNIT3生成空结果文件

我正在使用蛋糕构建并尝试将蛋糕单元测试结果上传到AppVeyor,但是当我在本地运行时,Cake/Nunit3正在生成空结果,我认为这是导致我在AppVeyor上出错的原因.在下面的块中,生成NUnitResults.xml但始终为空.

Task("UnitTest")
.IsDependentOn("Build")
.IsDependentOn("Setup")
.Does(() => {
    var resultsFile = artifactsDirectory + "/NUnitResults.xml";
    NUnit3("./StatusPageIo/StatusPageIo.UnitTests/bin/Release/StatusPageIo.UnitTests.dll", new NUnit3Settings()
    {
        OutputFile = resultsFile,           
    });

    if(AppVeyor.IsRunningOnAppVeyor)
    {
        AppVeyor.UploadTestResults(resultsFile, AppVeyorTestResultsType.NUnit3);
    }
});
Run Code Online (Sandbox Code Playgroud)

我知道测试运行是因为当我在本地运行build.ps1时,我看到测试输出,但无论出于何种原因,我的特定输出文件的测试输出都是空的.如果我明确地将NoResults设置为false,我会得到一个TestResults.xml文件,但是在项目的根目录中,而不是在resultsFile路径中.

nunit build cakebuild

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

Blackberry Native SDK在调用窗口中捕获scrollview

我正在BB10模拟器上编写一个简单的应用程序来捕获调用预览窗口的内容(其中包含电子邮件的可滚动视图).我想要捕获调用的窗口/电子邮件的整个滚动视图,而不仅仅是屏幕上的内容.在下面的代码中,我可以获取整个应用程序的窗口句柄和screen_read_window其内容,但是如何迭代调用窗口的控件并找到scrollview的句柄,并捕获它?

InvokeRequest request;

  // Set the target app
  request.setTarget("sys.pim.uib.email.previewer");

  // Set the action that the target app should execute
  request.setAction("bb.action.VIEW");

  // Set the MIME type of the data
  request.setMimeType("message/rfc822");

  // Specify the location of the data
  request.setUri(QUrl("pim:message/rfc822:" + QString::number(accountId) + ":" + QString::number(messageId)));

  //InvokeTargetReply *reply =
  invokeManager->invoke(request);

  sleep(2);

    screen_context_t    screenshot_ctx = 0;
if (screen_create_context(&screenshot_ctx,
                          SCREEN_APPLICATION_CONTEXT) != 0) {
   return;
}

   screen_pixmap_t screen_pix;
   screen_buffer_t screenshot_buf;
   char *screenshot_ptr = NULL;
   int screenshot_stride = 0;

   int usage, format;
   int size[2];

   screen_create_pixmap(&screen_pix, screenshot_ctx);

   usage …
Run Code Online (Sandbox Code Playgroud)

blackberry blackberry-simulator blackberry-10

5
推荐指数
0
解决办法
44
查看次数

Apple Mail plist条目加载远程内容

所以我知道如何让apple mail 9始终加载远程内容,但我需要以编程方式设置该首选项.我正在浏览apple mail plist文件,但似乎无法找到它的价值.有没有人知道这个设置可能在哪里?

plist apple-mail

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

Mac上的单声道控制台应用程序:如何从MacOS Mojave上的〜/ Library文件中读取/更改

尝试将我的单声道控制台应用程序迁移到最新的MacOS(Mojave,10.14).不幸的是,似乎读取或更改〜/ Library中的文件的操作被锁定.

我知道你可以在安全/隐私设置中添加特定的应用程序"完全磁盘访问",但是在那里添加了单声道可执行文件,它仍然给我一个System.UnauthorizedAccessException我的应用程序运行时它试图调用File.ExistsFile.Delete.我已经通过Visual Studio for Mac Debug模式尝试了这一点,并通过手动运行终端的调试输出.

mono access-control visual-studio-mac macos-mojave

5
推荐指数
0
解决办法
137
查看次数

Powershell返回包含特定文件但不完全递归的目录

使用以下Powershell代码,我试图找到根目录中不包含robots.txt的文件夹.通常情况下,我可以递归地执行此操作,但是它需要FOREVER来递归这个庞大的文件夹结构.我真正需要的只是第一级,AKA只搜索C:\ Projects中找到的文件夹.

基本上我需要从每组孩子中获取孩子,然后只返回没有robots.txt文件的父母.我在这里遇到的问题是我在嵌套for循环中的$ _给了我CWD,而不是我正在搜索的目录的子代.我知道我可能不得不使用 - 在这里,但我有点过头了,对PowerShell很新.任何帮助表示赞赏!

$drv = gci C:\Projects | %{
    $parent = $_; gci -exclude "robots.txt" | %{$_.parent}} | gu
Run Code Online (Sandbox Code Playgroud)

powershell

4
推荐指数
1
解决办法
2636
查看次数