我从我在互联网上发现的代码中找到了自己的WH_KEYBOARD_LL
帮助类:
将以下代码放到一些utils库中,让它成为YourUtils.cs:
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
using System.Windows.Input;
namespace MYCOMPANYHERE.WPF.KeyboardHelper
{
public class KeyboardListener : IDisposable
{
private static IntPtr hookId = IntPtr.Zero;
[MethodImpl(MethodImplOptions.NoInlining)]
private IntPtr HookCallback(
int nCode, IntPtr wParam, IntPtr lParam)
{
try
{
return HookCallbackInner(nCode, wParam, lParam);
}
catch
{
Console.WriteLine("There was some error somewhere...");
}
return InterceptKeys.CallNextHookEx(hookId, nCode, wParam, lParam);
}
private IntPtr HookCallbackInner(int nCode, IntPtr wParam, IntPtr lParam)
{
if (nCode >= 0)
{
if (wParam == …
Run Code Online (Sandbox Code Playgroud) 如何在主窗口之前显示对话窗口(例如登录/选项等)?
这是我尝试过的(它显然曾经有过,但现在不再有了):
XAML:
<Application ...
Startup="Application_Startup">
Run Code Online (Sandbox Code Playgroud)
申请:
public partial class App : Application
{
private void Application_Startup(object sender, StartupEventArgs e)
{
Window1 myMainWindow = new Window1();
DialogWindow myDialogWindow = new DialogWindow();
myDialogWindow.ShowDialog();
}
}
Run Code Online (Sandbox Code Playgroud)
结果:首先显示myDialogWindow.关闭时,Window1将按预期显示.但是当我关闭Window1时,应用程序根本没有关闭.
以下是来自pylint的文档:
--ignore=<file>
Add <file or directory> to the black list. It should be a base name, not a path. You may set this option multiple times. [current: %default]
Run Code Online (Sandbox Code Playgroud)
然而,我没有运气让目录部分工作.
我有一个名为migrations的目录,它有django-south迁移文件.当我输入--ignore = migrations时,它仍然会在迁移目录中的文件中向我提供错误/警告.
难道这--ignore
不适用于目录吗?
如果我甚至可以使用regexp来匹配被忽略的文件,那么django-south文件都被命名为0001_something,0002_something ...
由于我无法通过目录来忽略工作,我只是简单地放在# pylint: disable-msg-cat=WCREFI
每个迁移文件的顶部,忽略所有的pylint错误,警告和信息.
假设我有这个:
void func(WCHAR* pythonStatement) {
// Do something with pythonStatement
}
Run Code Online (Sandbox Code Playgroud)
我需要将它转换为void function(void),如下所示:
bind(func, TEXT("console.write('test')"))
Run Code Online (Sandbox Code Playgroud)
现在我有这样的结构:
typedef void (__cdecl * PFUNCPLUGINCMD)();
struct FuncItem {
PFUNCPLUGINCMD pFunc;
// ...
};
Run Code Online (Sandbox Code Playgroud)
如何设置我的struct的pFunc bind(func, "something")
?绑定返回lambda_functor而不是函数指针,那么如何将此函子转换为函数指针?
谢谢.
结束使用包装"解决方案"(GitHub)
可能重复:
如何(xml)序列化uri
据我所知,Uri
实现了ISerializable,但在使用时抛出错误:
XmlSerializer xs = new XmlSerializer(typeof(Server));
xs.Serialize(Console.Out, new Server { Name = "test", URI = new Uri("http://localhost/") });
public class Server
{
public string Name { get; set; }
public Uri URI { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如果Uri
类型更改为,则工作正常string
.
谁知道罪魁祸首是什么?
public class Server
{
public string Name { get; set; }
[XmlIgnore()]
public Uri Uri;
[XmlElement("URI")]
public string _URI // Unfortunately this has to be public to be xml serialized. …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在.NET核心csproj应用程序中使用PhantomJS NuGet包.但我认为使用PackageReference
NuGet的新语法是不可能的.
当我像这样引用PhantomJS包时:
<PackageReference Include="PhantomJS" Version="2.1.1">
<IncludeAssets>all</IncludeAssets>
</PackageReference>
Run Code Online (Sandbox Code Playgroud)
我跑的时候什么也没做dotnet build
.
我希望它将PhantomJS包中的文件复制到输出目录(或项目中的任何位置),这样我就可以使用PhantomJS包提供的二进制文件.
有没有其他方法将PhantomJS NuGet包的内容复制到MSBuild的输出目录?
看起来ControlTemplate中的以下Ellipse没有获得BorderThickness,但为什么呢?
<Window.Resources>
<ControlTemplate x:Key="EllipseControlTemplate" TargetType="{x:Type TextBox}">
<Grid>
<Ellipse
Width="{TemplateBinding ActualWidth}"
Height="{TemplateBinding ActualHeight}"
Stroke="{TemplateBinding Foreground}"
StrokeThickness="{TemplateBinding BorderThickness}" />
<ScrollViewer Margin="0" x:Name="PART_ContentHost" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</ControlTemplate>
</Window.Resources>
<Grid>
<TextBox
Template="{DynamicResource EllipseControlTemplate}"
Foreground="Green"
BorderThickness="15" />
</Grid>
Run Code Online (Sandbox Code Playgroud)
TemplateBinding Foreground
工作得很好,椭圆是绿色的.但StrokeThickness
它似乎不起作用,为什么?
注意:e.IsRepeat
确认可行.存在的问题是因为我使用从Ubuntu到Windows的远程桌面.
我找到了此远程桌面问题的解决方法:
HKEY_CURRENT_USER\Control Panel\Accessibility\Keyboard Response
AutoRepeatDelay
,AutoRepeatRate
,和 Last Valid Delay
,Last Valid Repeat
足够小.如何检测KeyUp
/ KeyDown
(或PreviewKeyDown
/ PreviewKeyUp
)事件中的密钥重复?
我有以下测试用例:
public Window1() {
InitializeComponent();
this.KeyDown += new KeyEventHandler(Window1_KeyDown);
this.KeyUp += new KeyEventHandler(Window1_KeyUp);
}
void Window1_KeyUp(object sender, KeyEventArgs e) {
if (e.Key == Key.D) {
Console.WriteLine("DOWN: key: {0}, rep{1}, togg{2}, dow{3}, up{4}", e.Key, e.IsRepeat, e.IsToggled, e.IsDown, e.IsUp);
}
}
void Window1_KeyDown(object sender, KeyEventArgs e) …
Run Code Online (Sandbox Code Playgroud) 我必须在PHP中反序列化使用Python中的cPickle序列化的字典.
在这个特定情况下,我可能只是想要获取所需信息,但是有更好的方法吗?PHP的任何扩展都允许我在整个字典中更加原生地反序列化?
显然它在Python中被序列化,如下所示:
import cPickle as pickle
data = { 'user_id' : 5 }
pickled = pickle.dumps(data)
print pickled
Run Code Online (Sandbox Code Playgroud)
这种序列化的内容不能轻易粘贴到此处,因为它包含二进制数据.
由于Python结尾是Django,我最终创建了自己的JSONSessionStore
.
在XAML之后导致"我的东西"居中,ComboBox
直到我打开它ComboBox
,当它正确伸展自己.
<ComboBox Height="30" Width="300" HorizontalContentAlignment="Stretch" SelectedIndex="0">
<ComboBoxItem HorizontalContentAlignment="Stretch">
<Border Background="Red">
<TextBlock>My stuff...</TextBlock>
</Border>
</ComboBoxItem>
</ComboBox>
Run Code Online (Sandbox Code Playgroud)
问题是,ComboBoxItem
即使选择使用它,是否有可能被拉伸SelectedIndex
?如果SelectedIndex未触及(-1)并且使用键盘选择项目,则会发生相同的错误或功能.
解决方法可能是在app的开头以编程方式打开ComboBox,这相当丑陋.
我正在尝试使用Send命令发送压缩修改器,只有我想出的方法是将它们全部列出:
; (Note: I've remapped using registry the Capslock as F13)
F13 & h::
if GetKeyState("Control") && GetKeyState("Shift") {
Send +^{Left}
return
}
if GetKeyState("Control") {
Send ^{Left}
return
}
if GetKeyState("Shift") {
Send +{Left}
return
}
Send {Left}
return
Run Code Online (Sandbox Code Playgroud)
在Windows中如果你按ctrl + left它会向左跳一个单词,如果按ctrl + shift + left它会向左选择一个单词.类似地,我想像上面的例子一样发送现有的修饰符,但是有更简单的方法吗?伪代码:F13 & h::Send {CurrentlyPressedModifiers}{Left}
玩2.4不鼓励使用GlobalSettings.onStart
和整个Global
对象.
我正在使用Play-slick,它在GitHub中有很好的DI示例,但它缺少一个如何进行数据库初始化的示例.
如何在使用DI时以及当GlobalSettings.onStart不可用时实现数据库初始化?
数据库初始化的常见情况是:如果在DEV模式下,请添加这些行,如果PROD执行这些行.想要的例子.