小编Ste*_*ins的帖子

无法在Win7 x64上从32位进程启动屏幕键盘(osk.exe)

90%的时间我无法osk.exe从32位进程启动Win7 x64.最初代码只是使用:

Process.Launch("osk.exe");
Run Code Online (Sandbox Code Playgroud)

由于目录虚拟化,这对x64无效.不是我想的问题,我只是禁用虚拟化,启动应用程序,然后再次启用它,我认为这是正确的做事方式.我还添加了一些代码,如果它已经被最小化(这可以正常工作)使键盘恢复 - 代码(在示例WPF应用程序中)现在看起来如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;using System.Diagnostics;
using System.Runtime.InteropServices;

namespace KeyboardTest
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        [DllImport("kernel32.dll", SetLastError = true)]
        private static extern bool Wow64DisableWow64FsRedirection(ref IntPtr ptr);
        [DllImport("kernel32.dll", SetLastError = true)]
        public static extern bool Wow64RevertWow64FsRedirection(IntPtr ptr);

        private …
Run Code Online (Sandbox Code Playgroud)

c# wpf 64-bit exception on-screen-keyboard

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

是否可以在WPF/Touch应用程序中使用弹出窗口忽略MenuDropAlignment?

作为一个背景--Windows有一个Touch/TabletPCs工具,它可以根据你的"用手"移动弹出菜单/菜单的位置(以防止菜单出现在你的手下).

基本上这是做什么的,如果你被设置为"右手"(它似乎默认为你连接了一个触摸设备),你打开的每个弹出窗口被人为地踢到左边 - 这会导致我们尝试的大量布局问题并将弹出窗口与"弹出"项目对齐:

平板电脑设置设置为左手 - 不从Windows进行人工修正 平板电脑设置设置为左手 - 不从Windows进行人工修正

平板电脑设置设置为右手 - Windows人工调整我们的定位 平板电脑设置设置为右手 -  Windows人工调整我们的定位

我们可以使用SystemParameters.MenuDropAlignment来检测此设置的设置,对于普通的弹出窗口,我们可以使用弹出窗口的实际宽度来调整它 - 但是对于动态弹出窗口以及当我们将右向左支撑放入混合时,这只是没有'工作.

目前看起来我们更有可能必须经历每个弹出窗口,手动设计一个值来调整踢,并为每个弹出一个类似的东西:

<MultiDataTrigger>
    <MultiDataTrigger.Conditions>
        <Condition Binding="{Binding Source={x:Static SystemParameters.MenuDropAlignment}}" Value="True"/>
        <Condition Binding="{Binding RelativeSource={RelativeSource Mode=Self}, Path=FlowDirection}" Value="RightToLeft"/>
    </MultiDataTrigger.Conditions>
    <MultiDataTrigger.Setters>
        <Setter Property="HorizontalOffset" Value="-50"/> <!-- Set to arbitrary value to test -->
    </MultiDataTrigger.Setters>
</MultiDataTrigger>
Run Code Online (Sandbox Code Playgroud)

那么..回到问题:-)有没有人知道如何停止WPF弹出窗口看这个设置呢?

对于那些没有触摸设备的用户,您可以通过运行以下方式访问Tablet PC设置:

C:\ Windows\explorer.exe shell ::: {80F3F1D5-FECA-45F3-BC32-752C152E456E}

并看到它为自己造成的混乱:-)

wpf xaml multi-touch touch multidatatrigger

16
推荐指数
1
解决办法
1961
查看次数

Mono/MonoTouch上的Moq(或可能是另一个框架)

我刚开始一些MonoTouch开发,我已经尝试过,并且失败了,让Moq为我的单元测试工作.二进制版本失败了,因为它正在寻找System v2.0,我认为它已达到Castle要求,并且从源代码构建它会使编译器崩溃!

我的问题是,有没有人让Moq在Mono上工作(触摸部分应该是无关紧要的,我没有将它部署到手机上!),或者对任何其他模拟框架有任何乐趣?如果没有我回到自己的身边,这有点痛苦.

mono moq mocking xamarin.ios

8
推荐指数
1
解决办法
2122
查看次数

无法在Mono 3上的xsp上运行asp.net 4.5应用程序

我从源代码(tarball)构建了Mono 3.0.2,并使用最新的tarball和最新的Github构建了XSP,但是我无法使用.net 4.5运行一个相对简单的asp.net应用程序,因为它看到' web.config中的targetFramework ="4.5"'无效.构建应用程序,并运行控制台.net 4.5应用程序工作正常.

这是有问题的web.config:

<?xml version="1.0"?>

<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->

<configuration>
  <appSettings>
    <add key="owin:HandleAllRequests" value="true" />
    <add key="owin:SetCurrentDirectory" value="true" />
  </appSettings>

  <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />
  </system.web>

</configuration>
Run Code Online (Sandbox Code Playgroud)

这是xsp4抛出的例外:

An exception has occurred while generating HttpException page:
System.NullReferenceException: Object reference not set to an instance of an object
  at System.Web.Util.HttpEncoder.GetCustomEncoderFromConfig () [0x00000] in <filename unknown>:0
  at System.Lazy`1[System.Web.Util.HttpEncoder].InitValue () [0x00000] in <filename unknown>:0

The …
Run Code Online (Sandbox Code Playgroud)

asp.net mono xsp owin katana

8
推荐指数
1
解决办法
7968
查看次数

你还有什么古老的学校代码?

最近几天因为工作生病而厌倦了我的大脑,我决定尝试挖掘一些旧代码.我可以找到一些我写过的古代Atari ST的二进制版本,但我找不到任何来源.我确实设法挖掘了一个旧的ModeX库,这个库是我在很久以前从传奇的旧x2ftp站点的存档中编写的.

http://ftp.lanet.lv/ftp/mirror/x2ftp/msdos

爆炸从过去:-)

; Actually Sticks Us Into ModeX - With 240 Scanlines Per Page
; Set The Variable LSCAN To The Virtual Scanline Length You Want
; Trashes AX, CX, DX, DS, SI
; Shouldn't Matter Though As This Should Be The First Thing You Call!
Set_X_240   PROC
        Call    Set_Graph       ; Set Mode 13h
        mov     dx, Seq_Port
        mov     ax, 00604h      ; Index 4 (Memory Mode Reg.) In AL
                                ; Bit 3 = Chain 4
        out     dx, ax          ; …
Run Code Online (Sandbox Code Playgroud)

assembly 68000 legacy-code

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

使用Century代替Century Gothic停止WPF

我们的设计更喜欢使用Century Gothic(如果它已安装),但如果没有,则可以回到Arial或Lucidia.这在大多数情况下正常工作,除非机器没有安装世纪的哥特式的,但确实有世纪(这似乎是很多XP的机器没有Office)."有帮助"它代替Century,这对于Century Gothic来说是可怕的,并且完全忽略了我们的后备字体.

通过拥有Century而非Century Gothic的机器可以轻松重现,然后创建一个TextBlock,例如:

<TextBlock FontFamily="Century Gothic, Wingdings">Should be gibberish</TextBlock>
Run Code Online (Sandbox Code Playgroud)

应该显示为胡言乱语的Wingdings,但它显示在丑陋但可读的世纪.

我试过用复合材料包装Century Gothic,但这有同样的问题:

<FontFamily
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/composite-font"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:System="clr-namespace:System;assembly=mscorlib">
  <FontFamily.FamilyNames>
    <System:String x:Key="en-US">CenturyGothic</System:String>
  </FontFamily.FamilyNames>
  <FontFamily.FamilyTypefaces>
    <FamilyTypeface Weight="Normal" Stretch="Normal" Style="Normal" />
    <FamilyTypeface Weight="Bold" Stretch="Normal" Style="Normal" />
  </FontFamily.FamilyTypefaces>
  <FontFamily.FamilyMaps>
    <FontFamilyMap Target="Century Gothic" Scale="1" />
  </FontFamily.FamilyMaps>
</FontFamily>
Run Code Online (Sandbox Code Playgroud)

嵌入字体不是一种选择(许可) - 有什么方法可以强制它忽略Century,还是我不得不改变它来使用不同的字体?

编辑:我刚刚尝试使用FontFace ="'Century Gothic',Wingdings",但即使安装了它也不会显示Century Gothic.

wpf fonts

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

响应WPF中的"后退"和"前进"按钮

我计划在我的WPF应用程序中添加对许多键盘上的后退和前进按钮的支持,但我很难让它们工作.

我尝试过使用标准的KeyBinding来浏览BrowserBack和BrowserForward,没有任何乐趣.我用ESC键测试了代码,以确保它在原理上工作,并且该密钥很好.

Nextup我处理了KeyUp事件,但是发送的密钥是"System",这是没用的,如果我使用KeyInterop.VirtualKeyFromKey,我只返回0.

我开始认为PInvoke /陷阱真正的窗口消息将是唯一的选择,但我宁愿避免,如果有人有任何好主意?

哦,钥匙本身肯定会工作,我的键盘插入;-)

更新:他们建议使用SystemKey让我明白我可以使用它:

new KeyBinding(TestCommand, new KeyGesture(Key.Left, ModifierKeys.Alt));
Run Code Online (Sandbox Code Playgroud)

这似乎适用于键盘按钮,但它不适用于相应的触摸"轻弹"(模拟下一个和后面).这些电影在浏览器中运行良好,但根据我的KeyUp事件,他们发送的所有内容都是"LeftAlt"而不是其他内容!

**再次更新**:Rich的评论让我这样:

this.CommandBindings.Add(new CommandBinding(NavigationCommands.BrowseBack, BrowseBack_Executed));
this.CommandBindings.Add(new CommandBinding(NavigationCommands.BrowseForward, BrowseForward_Executed));
Run Code Online (Sandbox Code Playgroud)

这似乎是一种享受...也轻弹!

keyboard wpf key-bindings back next

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

桌面的多点触控界面有真正的价值吗?

最近我很幸运地参与了微软为即将到来的"贸易展"编写教育游戏的Surface项目.我真的可以看到Surface的协作性和自然交互如何在教育空间中是巨大的,我真的不能对"普通"机器上的触摸或多点触摸感到兴奋.

我可以看到多点触控在iPhone这样的移动机器中是多么有用,但我只是看不出为什么或者为什么我要把我的粘手指放在我的台式机或笔记本电脑上,或者什么软件会真正利用它它(特别是如果它被限制为"仅仅"2个输入.我想我用鼠标调整图片的速度比从鼠标到屏幕调整图片要快得多:)

我不明白吗?是否有人正致力于激动人心的多点触控应用程序?:)

multi-touch pixelsense

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

如何在Mac上为我的Flash开发人员设置ASP.Net/IIS开发环境?

不,不,我没有荨麻疹;).

我可以在IIS上运行我的.NET 3.5站点的本地版本,并在我开发时进行故障排除.但是,当他想看看他的工作是怎么做的时候,我的flash开发人员被迫登录我们的Windows 2003并弄乱我们的登台服务器.这是不可接受的,我理解,但是现在有时间问题,所以这个黑客将不得不飞一点.

如何为我的Flash开发人员设置开发环境以便能够在本地计算机上运行?我确信这可以在其他地方完成.

asp.net flash macos development-environment

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

从指定基类的 catch 中捕获派生类异常

所以老实说,这是一个家庭作业。我知道如何使用 try 和 catch,但我不太确定这个问题在问什么,我不是在要求答案,只是澄清一下。

问题: 使用继承来创建异常基类和各种异常派生类。编写一个程序来演示指定基类的捕获捕获派生类异常。

我的基本思路是,我只是创建一个名为 say.. "Exceptionz" 的新类并从 System.Exception 继承,创建几个名为“Derived 1”、“Derived 2”的类,然后让每个类继承自“例外”。在那之后,我不确定问题要求我做什么。

我在这里先向您的帮助表示感谢!

c# oop inheritance exception-handling

0
推荐指数
1
解决办法
4026
查看次数