小编Wel*_*bog的帖子

如何聚焦外窗?

我有一个应用程序,一次只能打开一个自己的实例.为了强制执行此操作,我使用以下代码:

        System.Diagnostics.Process[] myProcesses = System.Diagnostics.Process.GetProcesses();
        System.Diagnostics.Process me = System.Diagnostics.Process.GetCurrentProcess();
        foreach (System.Diagnostics.Process p in myProcesses)
        {
            if (p.ProcessName == me.ProcessName)
                if (p.Id != me.Id)
                {
                    //if already running, abort this copy.
                    return;
                }
        }
        //launch the application.
        //...
Run Code Online (Sandbox Code Playgroud)

它工作正常.我还希望它能够集中已经运行的副本的形式.也就是说,在返回之前,我想将此应用程序的其他实例置于前台.

我怎么做?

Re:SetForeGroundWindow:

SetForeGroundWindow工作,到一点:

    [System.Runtime.InteropServices.DllImport("user32.dll")]
    public static extern bool SetForegroundWindow(IntPtr hWnd); 

    //...
                if (p.Id != me.Id)
                {
                    //if already running, focus it, and then abort this copy.
                    SetForegroundWindow(p.MainWindowHandle);
                    return;
                }
    //...
Run Code Online (Sandbox Code Playgroud)

如果窗口没有最小化,这会将窗口置于前台.真棒.但是,如果窗口IS最小化,它将保持最小化.

它需要取消最小化.

通过SwitchToThisWindow解决方案(Works!):

    [System.Runtime.InteropServices.DllImport("user32.dll")]
    public static extern void SwitchToThisWindow(IntPtr hWnd, bool fAltTab); …
Run Code Online (Sandbox Code Playgroud)

.net c# focus

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

如何确保DIV伸展以适应其内容?

我有一个表格的HTML:

<div
  class="currentDesignDiv"
  style="margin-bottom:5px;">
  <div>
    <img
      alt="Thumbnail"
      src="http://www.propertyware.com/templates/
        <bean:write name="currentTemplate" property="primaryKey"/>
      /thumb.gif"/>
  </div>
  <div>
    <table>
      <tr>
        <th>Your Current Design: </th>
        <td>Template #: 
          <bean:write name="currentTemplate" property="primaryKey"/>
        </td>
      </tr>
      <tr>
        <th>Last Updated: </th>
        <td>
          <bean:write name="currentTemplate" property="modifiedByAsString"/>
        </td>
      </tr>
      <tr>
        <th>Total Pages: </th>
        <td>
          <bean:write name="numberOfPages"/>
        </td>
      </tr>
    </table>
  </div>
Run Code Online (Sandbox Code Playgroud)

由这个CSS风格:

 .currentDesignDiv{
   background-color:#e7e7e7;
   border:1px solid #9c9c9c;
   padding:5px;
   width:100%;
   min-width:860px;
 }
 .currentDesignDiv div{
   float:left;
   width:33%;
 }
 .currentDesignDiv div table{
   font-size:9pt;
   text-align:left;
   margin:17px;
 }
 .currentDesignDiv div:first-child img{
   margin:17px;
   width:80px;
 }
Run Code Online (Sandbox Code Playgroud)

它在我的大显示器上看起来还不错,但是当我换到我的小显示器时,最右边的显示器div里面有一个图像,浮在父母的外面div …

html css

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

15
推荐指数
5
解决办法
13万
查看次数

如何在Java中有效地使用SAXParseException

我正在验证Java中的XMLSchema,并且当我有无效的内容模型时会抛出SAXParseExceptions.

我将使用这些异常来突出验证失败的位置 - 但SAXParseExceptions似乎有点过低.

例如,对于枚举失败,我得到的有效性错误是所提供的值与一个例外中的内容模型不匹配,以及它在下一个例子中应用的元素.

我想我需要一个实用程序抽象一点将相关的错误合并在一起,并将异常文本解析为可用的异常属性.

这是一种合理的方法,还是我只是缺少某些东西,或者是图书馆或助手班?


更新@timgilbert,感谢您的回复.

例如,我在t'internet上找到了一个SAXParseException

cvc-pattern-valid: Value 'en' is not facet-valid
with respect to pattern '([a-zA-Z]{1,8})(-[a-zA-Z0-9]{1,8})*'
Run Code Online (Sandbox Code Playgroud)

对我来说关键的事情是

  • 此例外适用的元素'en'.为什么我不能调用exception.getElement()或者其他东西,为什么不对有问题的元素进行XPath?内存文档比行号和列号更有用!
  • 这是模式验证失败.为什么我不能得到类似可能类型的失败的枚举和对适当的失败的引用?
  • 验证失败的实际模式.
  • 接下来会抛出另一个异常告诉我'en'元素的值导致我需要合并的问题

我希望能够做的一个例子就是让人们提交一份文件,并通过用户友好的消息突出显示验证失败的文件 - 上面的错误消息似乎不太友好......必须解析单引号就像是一场等待发生的事故:)

我想我可能做错了"引用元素"的事情,也许我应该默认将文档的身份转换作为验证的一部分,并使用验证错误属性来扩充转换可以用CSS挑选出来.如果我需要解析消息以使它们更友好,那仍然无济于事......

Re:紧密绑定,javax.xml.validation.Validator.validate()抛出org.xml.sax.SAXException无论如何 - 不知道如何摆脱假设绑定...

干杯

java validation xsd sax saxparseexception

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

为什么以及如何有效地测试R作为普通用户的beta分布?

这个问题的灵感来自于Duncan Murdoch在r-devel邮件列表中回应关于Sweave的错误报告的评论:

这是在R-patched中修复的.(如果更多的人测试了测试版,它将在2.12.0中得到修复......).

老实说,出于多种原因,我已远离beta -aka开发版本,这些是我听到更多人的原因:

  1. 我有点害怕它会以某种方式导致与我目前的R发行版冲突.因为我需要它来工作,不得不经常修理它是我无法向老板解释的时间
  2. 我不知道如何有效地测试.我认为我能想到的每一项测试都已经由开发团队运行.
  3. 我仍然觉得很难弄清楚什么时候是一个bug,而且(最常见的)这是我自己的愚蠢行为.

但正如我所理解的那样,这将是对R社区的宝贵贡献,而且如果我能以某种方式将其融入我自己的工作中,我也愿意进行一些测试.我正在考虑将测试版保留在一边并通过它运行我的脚本以及检查.保存构造的对象可以快速,轻松all.equal()地查看是否有错误.

关于如何以最少的努力和最大的效率帮助测试的任何人有更多/更好的想法?

我也想在我们的部门推广这一点.除了"现在是回馈社区的时候"之外,为什么测试贝塔值得努力的其他任何好理由呢?我怎样才能反驳上面给出的论点?

编辑:

正如Dirk Eddelbuettel在评论中指出的那样,部分交易正在阻止Windows中的路径变量.我对此有一些想法,但是关于如何实际组织计算机以测试R-devel版本的提示也非常受欢迎.

r beta-testing

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

在C#中解析骰子表达式(例如3d6 + 5):从哪里开始?

所以我希望能够在C#中解析和评估"骰子表达式".骰子表达式定义如下:

<expr> :=   <expr> + <expr>
            | <expr> - <expr>
            | [<number>]d(<number>|%)
            | <number>
<number> := positive integer
Run Code Online (Sandbox Code Playgroud)

所以例如d6+20-2d3是允许的,并且应该评估为

rand.Next(1, 7) + 20 - (rand.Next(1, 4) + rand.Next(1, 4))
Run Code Online (Sandbox Code Playgroud)

d%应该相当于d100.

我知道我可以解决一些解决方案,但我也知道这似乎是一个非常典型的计算机科学类型的问题,所以必须有一些我应该研究的超优雅解决方案.

我希望我的解析结果具有以下功能:

  • 我应该能够输出表达式的规范化形式; 我首先考虑骰子,按骰子大小排序,并始终使用前缀.所以例如上面的样本会变成1d6-2d3+20.任何实例d%也会变成d100标准化形式.
  • 我应该能够随意评估表达式,每次滚动不同的随机数.
  • 我应该能够用最大化的所有骰子卷来评估表达式,因此例如上面的样本将给出(确定性地)1*6+20+2*3 = 32.

我知道这正是Haskell的类型,可能还有其他功能类型的语言,但是如果可能的话,我想留在C#中.

我最初的想法倾向于递归,列表,也许还有一些LINQ,但是,如果我尝试没有知道事物的人的一些指示,我肯定它最终会成为一个不优雅的混乱.

另一种可能有效的策略是一些基于正则表达式的初始字符串替换,将骰子表达式转换为rand.Next调用,然后进行即时评估或编译......这实际上有用吗?我怎么能避免rand每次都创建一个新对象?

c# math computer-science dice

12
推荐指数
3
解决办法
3237
查看次数

如何防止Django Admin中FK/MTM字段的自我(递归)选择

给定具有ForeignKeyField(FKF)或ManyToManyField(MTMF)字段的模型以及"self"的外键,如何在Django Admin(admin)中阻止自我(递归)选择.

简而言之,应该可以防止在管理员中自我(递归)选择模型实例.这适用于编辑模型的现有实例,而不是创建新实例.

例如,对新闻应用中的文章采用以下模型;

class Article(models.Model):           
    title = models.CharField(max_length=100)
    slug = models.SlugField()
    related_articles = models.ManyToManyField('self')
Run Code Online (Sandbox Code Playgroud)

如果有3个Article实例(标题:a1-3),当Article通过管理员编辑现有实例时related_articles,默认情况下由html(多个)选择框表示该字段,该框提供所有文章(Article.objects.all())的列表.用户应该只能看到并能够选择Article除自身以外的实例,例如,当编辑Articlea1时,related_articles可以选择= a2,a3.

我现在可以看到有三种方法可以做到这一点,按优先顺序递减;

  1. 提供一种方法来设置查询集,在管理表单字段中提供可用选项related_articles(通过排除查询过滤器,例如Article.objects.filter(~Q(id__iexact=self.id)),从用户可以查看和选择的related_article列表中排除正在编辑的当前实例.创建/设置要使用的queryset可能发生在__init__自定义的构造函数()中Article ModelForm,或者通过某种动态limit_choices_to Model选项.这需要一种方法来获取正在编辑的实例以用于过滤.
  2. 覆盖或类的save_model功能以在保存实例之前检查并从中删除自身.这仍然意味着管理员用户可以查看和选择所有文章,包括正在编辑的实例(对于现有文章).Article ModelModelAdminrelated_articles
  3. 当需要在管理员外部使用时,例如模板,过滤掉自我引用.

理想的解决方案(1)目前可以通过管理员之外的自定义模型表单来完成,因为可以将正在编辑的实例的过滤的查询集变量传递给模型表单构造函数.问题是,您是否可以获得Article实例,即在创建表单之前对管理员进行"自我"编辑以执行相同的操作.

我可能会以错误的方式解决这个问题,但是如果您允许将FKF/MTMF定义为同一模型,则应该有一种方法可以让管理员做正确的事情 - 并防止用户选择自己将其排除在可用选项列表中.

注意:解决方案2和3现在可以做,并提供尝试避免得到这些作为答案,理想情况下我想得到解决方案1的答案.

django many-to-many foreign-keys django-models django-admin

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

指针之间的字符串长度

我遇到了一个小问题,需要一些帮助:

如果我有一个已分配的字符缓冲区,并且我有一个位于此缓冲区内的起点和终点,并且我想要这两点之间的长度,我该如何找到它?

char * buf; //malloc of 100 chars
char * start; // some point in buff
char * end; // some point after start in buf

int length = &end-&start? or &start-&end? 
//How to grab the length between these two points.
Run Code Online (Sandbox Code Playgroud)

谢谢

c pointers char

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

将键击发送到其他控件

对你们来说很简单.

我在列表框的顶部有一个文本框.

文本框用于过滤列表框中的数据.

所以...当用户输入文本框时,我想"陷阱"向下/向上/向下/向下翻页键击并将它们发送到列表框.

我知道我可以使用Win32 API并发送WM_KeyDown消息.但必须有一些.NET方法来做到这一点.

c# forwarding keystroke

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

便携可执行结构说明

我正在学习可移植可执行文件的结构.我浏览了MSDN文章,但我对此感到有些困惑.我对它们的精确结构和功能感到困惑.

任何人都可以帮助我,或者请您参考一篇很好的文章吗?

windows portable-executable

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