有没有办法在没有.exe安装程序的情况下在Windows中安装python 2.6的setuptools?
目前还没有一个内置,而setuptools的维护者已经声明可能还需要一段时间才能实现它.
有没有人知道安装它的方法?
我正在尝试读取 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-
我有一个 F# 库项目,它依赖于一个 C# 类库项目,两者都在同一个解决方案中。基本上在 F# 代码中,我会这样做open MyLib(其中 MyLib 是 C# 项目的名称),并访问 C# 项目中定义的一些代码。
我编译并且两个项目都没有错误或警告地构建。如果我随后将两个项目上的目标从 Any CPU 更改为 x64,C# 项目仍然可以正常构建,但 F# 项目无法构建,错误消息告诉我它找不到模块 MyLib。重建解决方案无济于事。删除所有 bin og obj 文件夹也无济于事。如果我将平台目标更改回 Any CPU 或 x86,一切都会再次编译。
我在一个玩具解决方案中复制了这个,其中有两个只包含琐碎代码的小项目,所以我知道它与我的特定代码无关。
还有其他人经历过吗?任何已知的解决方法?
好好的-h-
更新:根据要求,这里是我的确切复制步骤。
int GetAnswer() { return 42; }在 Class1 类中添加静态方法将此代码添加到 Module1.fsmodule Module1行下方:
打开我的图书馆
让答案 = Class1.GetAnswer()
编译。一切都应该干净利落。
我正在为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) 我想在异步任务成功完成时运行一些代码.
从阅读网络上的文档和示例,我想我可以使用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,但输出现在是: …
我想匹配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方式?
我有这样格式化的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)
我有很多这样的节点,所以我想知道是否有通过“ []”或某种方式访问这些属性的简便方法。
有没有办法获得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)