小编cor*_*rax的帖子

如何在Windows上为python 2.6设置setuptools?

有没有办法在没有.exe安装程序的情况下在Windows中安装python 2.6的setuptools?

目前还没有一个内置,而setuptools的维护者已经声明可能还需要一段时间才能实现它.

有没有人知道安装它的方法?

python windows setuptools

85
推荐指数
5
解决办法
9万
查看次数

为什么我在通过 Shell32 读取公共快捷方式时会得到 E_ACCESSDENIED?

我正在尝试读取 C# 4 应用程序中所有桌面快捷方式的目标。Windows 桌面上的快捷方式可以来自多个位置,具体取决于快捷方式是为所有用户创建还是仅为当前用户创建。在这种特定情况下,我试图从公共桌面读取快捷方式,例如从 C:\Users\Public\Desktop\shortcut.lnk。

代码是这样的(路径是一个包含 lnk 文件路径的字符串):

var shell = new Shell32.ShellClass();
var folder = shell.NameSpace(Path.GetDirectoryName(path));
var folderItem = folder.ParseName(Path.GetFileName(path));
if (folderItem != null)
{
    var link = (Shell32.ShellLinkObject)folderItem.GetLink;
Run Code Online (Sandbox Code Playgroud)

最后一行抛出 System.UnauthorizedAccessException,表示不允许读取快捷方式文件的内容。我已尝试在用户的私人桌面 (c:\Users\username\Desktop) 上使用快捷方式文件,效果很好。

所以,我的问题是:

(1) 为什么我的应用程序不允许 /read/ 代码中的快捷方式,当我作为用户可以清楚地阅读内容时?

(2) 有没有办法解决这个问题?也许为应用程序使用特殊的清单文件?

而且,顺便说一下,我的操作系统是 Windows 7,64 位。

好好的

-H-

.net c# windows shell32

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

在 Visual Studio 2010 中面向 x64 平台时,F# 项目引用不起作用

我有一个 F# 库项目,它依赖于一个 C# 类库项目,两者都在同一个解决方案中。基本上在 F# 代码中,我会这样做open MyLib(其中 MyLib 是 C# 项目的名称),并访问 C# 项目中定义的一些代码。

我编译并且两个项目都没有错误或警告地构建。如果我随后将两个项目上的目标从 Any CPU 更改为 x64,C# 项目仍然可以正常构建,但 F# 项目无法构建,错误消息告诉我它找不到模块 MyLib。重建解决方案无济于事。删除所有 bin og obj 文件夹也无济于事。如果我将平台目标更改回 Any CPU 或 x86,一切都会再次编译。

我在一个玩具解决方案中复制了这个,其中有两个只包含琐碎代码的小项目,所以我知道它与我的特定代码无关。

还有其他人经历过吗?任何已知的解决方法?

好好的-h-

更新:根据要求,这里是我的确切复制步骤。

  1. 在 Visual Studio 2010 中创建一个新的空解决方案
  2. 在解决方案中添加一个新的 C# 类库项目,将其命名为 MyLib
  3. int GetAnswer() { return 42; }在 Class1 类中添加静态方法
  4. 向解决方案中添加一个新的 F# 库项目,将其命名为 MyOtherLib
  5. 添加从 F# 库项目到 C# 类库项目的引用
  6. 将此代码添加到 Module1.fsmodule Module1行下方:

    打开我的图书馆

    让答案 = Class1.GetAnswer()

  7. 编译。一切都应该干净利落。

  8. 转到 MyLib 项目属性中的构建选项卡。将平台目标更改为 x64。
  9. 对 MyOtherLib …

msbuild f# visual-studio-2010

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

从F#异步工作流中删除命令性代码

我正在为Logitech媒体服务器(以前称为Squeezebox服务器)编写控件应用程序.

其中一小部分是发现哪些服务器在本地网络上运行.这是通过向端口3483广播特殊的UDP包并等待回复来完成的.如果服务器在给定时间后没有回复(或首选服务器回复),则应用程序应该停止侦听.

我使用C#5的async/await功能在C#中工作,但我很想知道它在F#中的外观.我有以下功能(或多或少直接从C#翻译):

let broadCast (timeout:TimeSpan) onServerDiscovered = async {
  use udp = new UdpClient ( EnableBroadcast = true )
  let endPoint = new IPEndPoint(IPAddress.Broadcast, 3483)
  let! _ = udp.SendAsync(discoveryPacket, discoveryPacket.Length, endPoint) 
           |> Async.AwaitTask

  let timeoutTask = Task.Delay(timeout)
  let finished = ref false
  while not !finished do
    let recvTask = udp.ReceiveAsync()
    let! _ = Task.WhenAny(timeoutTask, recvTask) |> Async.AwaitTask
    finished := if not recvTask.IsCompleted then true
                else let udpResult = recvTask.Result
                     let hostName = udpResult.RemoteEndPoint.Address.ToString()
                     let serverName = udpResult.Buffer |> getServerName …
Run Code Online (Sandbox Code Playgroud)

f# asynchronous

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

即使指定TaskContinuationOptions,任务延续也始终运行

我想在异步任务成功完成时运行一些代码.

从阅读网络上的文档和示例,我想我可以使用Task.ContinueWith和指定TaskContinuationOptions.OnlyOnRanToCompletion.

但是,这并不像我预期的那样.

以下代码是在Visual Studio 2012中创建的控制台程序.Net 4.5:

using System;
using System.Threading.Tasks;

namespace TaskContinueTest
{
    class Program
    {
        static void Main(string[] args)
        {
            var jobTask = Task.Factory.StartNew(() => { });

            jobTask.ContinueWith((task, options) =>
            {
                Console.WriteLine("Completed handler. Task status is {0}", task.Status);
            }, TaskContinuationOptions.OnlyOnRanToCompletion);

            jobTask.ContinueWith((task, options) =>
            {
                Console.WriteLine("Faulted handler. Task status is {0}", task.Status);
            }, TaskContinuationOptions.OnlyOnFaulted);

            Console.ReadLine();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

运行时,我得到输出:

Completed handler. Task status is RanToCompletion
Faulted handler. Task status is RanToCompletion
Run Code Online (Sandbox Code Playgroud)

这是非常令人惊讶的(至少对我而言).为什么两个延期都安排好了?

如果我抛出异常,我会得到相同的行为jobTask,但输出现在是: …

c# asynchronous task-parallel-library .net-4.5

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

在Racket中进行模式匹配时的替代方案

我想匹配Racket(以前的PLT Scheme)中的以下两个列表之一:

'(somename : (_ptr o sometype))
Run Code Online (Sandbox Code Playgroud)

要么

'(somename : (_ptr io sometype))
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,唯一的区别是嵌入式列表中的文字"o"和"io".

我可以看到两种基本方法来做到这一点.

或者:

(match myexpr 
    [(list name ': (list '_ptr 'o _)) name]
    [(list name ': (list '_ptr 'io _)) name]
    [_ 0])
Run Code Online (Sandbox Code Playgroud)

这似乎是重复的努力,但非常清楚.要么:

(match myexpr 
    [(list name ': (list '_ptr mode _)) 
      (if (or (eq? mode 'o) 
              (eq? mode 'io))
     name
     0)]
    [_ 0])
Run Code Online (Sandbox Code Playgroud)

这避免了几乎重复的模式,但不太清楚.

我的问题是,有没有办法在球拍模式匹配中指定替代品,类似{'o | "IO}?而且,如果没有,上面列出的两种方式中的哪一种将是最惯用的Racket方式?

pattern-matching racket

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

如何从嵌套的xml节点获取属性值?

我有这样格式化的XElement对象:

<Setting guid="3bcedf55-b75f-456b-b90a-a92cbbb022ga">
    <PatientFieldList>
        <PatientFieldSetting PatientName="UserDecision" PatentFieldLength="64" />
        <PatientFieldSetting PatientName="prohibited" PatentFieldLength="128" />
    </PatientFieldList>
</Setting>
Run Code Online (Sandbox Code Playgroud)

我必须获取所有节点中所有属性的值,但我不知道如何:/我尝试过

xml.Elements("PatientFieldList")

xml.Descendants("PatientsSettingsFieldsList").Where(x => x.Attribute("PatentFieldLength").Value == 64)`
Run Code Online (Sandbox Code Playgroud)

我有很多这样的节点,所以我想知道是否有通过“ []”或某种方式访问​​这些属性的简便方法。

c# xml xelement linq-to-xml

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

Firebase在Android中以编程方式获取子值的索引

有没有办法获得FirebaseAndroid 中的孩子的索引?不幸的是我没有10个声誉所以我会在这里发布我的照片:http://gyazo.com/70d095cfac4fa92ea344e137fa44ef6d

我想要的是在某种程度上获取某个子节点中的值以循环索引:

//For loop/Iterator to get value to store in an array
FireBase.child("Europe").child("Albania").child("answers).child(i).getValue();
Run Code Online (Sandbox Code Playgroud)

android firebase

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