小编Boh*_*nov的帖子

Windows 8托盘通知错误

我正在尝试在Windows 8上创建简单的Powershell脚本,它将通过系统托盘通知气球通知我.代码很简单:

[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")

$objNotifyIcon = New-Object System.Windows.Forms.NotifyIcon

$objNotifyIcon.Icon = "D:\1.ico"
$objNotifyIcon.BalloonTipIcon = "Info"
$objNotifyIcon.BalloonTipText = "I'm there"
$objNotifyIcon.BalloonTipTitle = "Hello!"

$objNotifyIcon.Visible = $True
$objNotifyIcon.ShowBalloonTip(10000)
Run Code Online (Sandbox Code Playgroud)

1.ico是光盘上真正存在的自定义图标.

除了一件小事之外,它应该工作.我更喜欢在我的窗口上放置任务栏,它似乎会给气球带来麻烦:它被绘制任务栏下面(屏幕:https://dl.dropbox.com/u/1138313/systraybug.PNG).我使用notifyIcon在C#中进行了测试应用,结果相同.但是像Dropbox或Skydrive这样的其他应用程序没有这样的问题,我的底部任务栏的脚本也很完美.我没有在NotifyIcon的文档中找到任何样式选项.这是烦人的bug还是我可以解决它?

问候.

UPS:看来,Dropbox应用程序有同样的问题(对我很羞耻,第一次看不到).所以这是系统错误,我想.

windows powershell notifications

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

使用结构的默认特征作为枚举选项

我有一个这样的枚举:

enum States {
    A { opts: Vec<States> },
    B { opts: Vec<States> },
    C { opts: Vec<States> },
}
Run Code Online (Sandbox Code Playgroud)

我想Default为它实现特性。不适用于枚举本身:

impl Default for States {
    fn default() -> States {
        States::A { vec![] }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是对于States::AStates::BStates::C, 具有默认值opts。是否可以?

enums default rust

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

如何避免球拍中的加载循环?

我有一组非常简单的.rkt来源,比如“a.rkt”和“b.rkt”。我希望能够写(require "a.rkt")在“b.rkt”中,反之亦然。现在我面临关于“加载周期”的错误。

我可以在不添加单元的情况下使用裸模块解决这个问题吗?Racket 是否有任何类似于前向声明的东西,所以我可以简单地添加缺少的签名而不是要求?如果两个答案是“否”,没有人知道好和易于理解的教程就如何落实与单位typed/racket预留的官方文档)?

scheme racket

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

可以抛出和不可抛出的方法中的Swift类型推断

您可能知道,Swift可以根据用途推断出类型.例如,只要编译器能够推断类型,您就可以使重载方法仅在返回类型上有所不同并自由使用它们.例如,借助于附加的显式类型变量,它将保存此类方法的返回值.

我发现了一些有趣的时刻.想象一下这堂课:

class MyClass {
    enum MyError: Error {
        case notImplemented
        case someException
    }

    func fun1() throws -> Any {
        throw MyError.notImplemented
    }

    func fun1() -> Int {
        return 1
    }

    func fun2() throws -> Any {
        throw MyError.notImplemented
    }

    func fun2() throws -> Int {
        if false {
            throw MyError.someException
        } else {
            return 2
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当然,它会像:

let myClass = MyClass()
// let resul1 = myClass.fun1() // error: ambiguous use of 'fun1()'
let result1: Int = myClass.fun1() …
Run Code Online (Sandbox Code Playgroud)

overloading swift

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

Racket 中的 REST API JSON 解析

我正在 Racket 中开发休息服务,用于教育目的,并面临 JSON 解析问题。我有以下正文的 POST 请求

"{\"word\": \"a\", \"desc\": \"b\"}"
Run Code Online (Sandbox Code Playgroud)

我还有此请求的请求处理程序,例如

 (define (add-word-req req)
     (define post-data (request-post-data/raw req))
     (display post-data)
     (newline)

     (define post-data-expr1 (bytes->jsexpr post-data))
     (display post-data-expr1)
     (newline)
     (display (jsexpr? post-data-expr1))
     (display (hash? post-data-expr1))
     (newline)

     (define post-data-expr (string->jsexpr "{\"word\": \"a\", \"desc\": \"b\"}"))
     (display post-data-expr)
     (newline)

     (display (hash? post-data-expr))
     (newline)

     (for (((key val) (in-hash post-data-expr)))
       (printf "~a = ~a~%" key val))

     (cond 
       [(jsexpr? post-data-expr)
       ;; some conditional work
       ...
      ]
       [else 
       ...]
      )
     )
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,请求正文和硬编码的 JSON 是相同的。

在处理请求时,我得到下一个输出:

 "{\"word\": \"a\", …
Run Code Online (Sandbox Code Playgroud)

rest scheme json racket

3
推荐指数
1
解决办法
982
查看次数

球拍:在合同中使用的自定义谓词

我正在用球拍编写小型宠物项目,并使用Gregor lib处理日期。

我有接受两个日期(来自Gregor,而不是标准库)的函数,我想为其添加合同。合同应该说,第一个参数的日期必须小于/早于第二个参数的日期。

在Gregor中,我们可以使用(date <=?xy)或类似谓词来实现它,但是我不明白如何将其与合同结合使用。

 (contract-out
          [process-dates (->i ([x date?]
                               [y (x) (and/c date?
                                             (date>=? x))])])
Run Code Online (Sandbox Code Playgroud)

将不起作用,并且没有现成的date>=?/c谓词。

因此,我想我需要自己编写这样的谓词,因此我想知道如何去做。我已经通过球拍来源看,发现标准功能是相当复杂的重现。

有更简单的方法来实现我想要的吗?

scheme date predicate contract racket

3
推荐指数
1
解决办法
50
查看次数