问题列表 - 第19442页

我可以更改用户的键盘输入吗?

我找到了这个键盘钩子代码,我试图为我的目的略微修改:http://blogs.msdn.com/toub/archive/2006/05/03/589423.aspx

作为概述,我想让用户按一个键,说'E',并让键盘返回一个不同的字符'Z',对任何焦点的应用程序.

我改变的相关方法现在看起来像:

    private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
    {
        if (nCode >= 0 && wParam == (IntPtr)WM_KEYDOWN)
        {
            //The truely typed character:
            int vkCode = Marshal.ReadInt32(lParam);
            Console.WriteLine((Keys)vkCode);

            KBDLLHOOKSTRUCT replacementKey = (KBDLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(KBDLLHOOKSTRUCT));
            replacementKey.vkCode = 90; // char 'Z'
            Marshal.StructureToPtr(replacementKey, lParam, false);

            //Now changed to my set character
            vkCode = Marshal.ReadInt32(lParam);
            Console.WriteLine((Keys)vkCode);
        }
        return CallNextHookEx(_hookID, nCode, wParam, lParam);
    }
Run Code Online (Sandbox Code Playgroud)

控制台正确输出为:

E
Z
T
Z
G
Z
etc.
Run Code Online (Sandbox Code Playgroud)

但是,焦点应用程序仍然键入"E"而不是"Z".为什么?我更改了钩子键盘输入以包含'Z'而不是'E',并且控制台线显示它已正确更改!

据我了解,调用return CallNextHookEx(_hookID, nCode, wParam, lParam); …

c# keyboard-hook keyboard-layout low-level

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

Java Servlets:当用户离开页面时,文件下载中断

我有一个servlet,允许用户从网页下载(可能很大)zip文件.如果用户单击链接以下载zip文件,则在servlet中执行类似以下的代码:

response.setContentType("application/zip");
response.setHeader("Content-disposition", "attachment; filename=foo.zip");
response.setHeader("Pragma", "");
response.setHeader("Cache-Control", "no-store");

ZipOutputStream out = new ZipOutputStream(response.getOutputStream());
// write entries to the zip file...
...
out.close()
Run Code Online (Sandbox Code Playgroud)

但是,如果用户在下载开始后和完成之前刷新或导航离开页面(在Firefox 3.5.7中),则下载将失败.弹出以下错误:

无法保存C:\ blah\foo.zip.part,因为无法读取源文件.

请稍后重试,或与服务器管理员联系.

关于如何确保在这种情况下继续下载的任何想法?

更新:启动下载的链接是一个简单的vanilla链接.有趣的是,IE上的行为是不同的.似乎没有加载网站上其他位置的链接(从当前加载的屏幕)(浏览器状态栏显示"正在等待https://mysite/clicked_linky.do ..."),阻塞直到下载完成.在地址栏中键入不同的URL或使用快捷方式/收藏夹链接导航离开页面,但下载按预期继续.只有Firefox似乎显示我上面描述的确切行为,尽管IE阻止不是最佳的.

java servlets http download

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

慢慢启动没有互联网的PowerShell脚本

我在没有Internet连接的计算机上运行Powershell脚本.但它需要大约30秒才能启动它.我该如何解决?我跑了ngen.

powershell

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

Android力水平(横向)布局

我已经接近完成了我的第一款Android游戏了,我遇到了一个很简单的问题,我确信我会因为不知道如何解决它而感到愚蠢,但我怎么能强迫应用程序保持水平布局?现在,如果你打开手机(模拟器),它会翻转图形并挤压它们.无论用户如何转动手机,我都希望游戏能够水平启动并保持这种状态.

谢谢.

layout android

38
推荐指数
3
解决办法
6万
查看次数

将MYSQL时间戳转换为time_t

我正在编写一个多线程程序,需要能够检查行是否需要更新并相应地执行操作.

我在使用MySql的内置日期/时间函数时遇到了问题,因此决定只将"lastupdate"时间戳存储为表中的整数.但是,我在将此时间戳转换为time_t时遇到问题,因此我可以使用时间函数.

任何帮助是极大的赞赏.

c++ mysql datetime time-t

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

文件名中的井号(#)导致错误

我有一个非常简单的文件上传,允许用户上传PDF文件.在另一页上,我然后通过锚标记引用这些文件.但是,似乎当用户上传包含井号(#)的文件时,它会破坏锚标记.它不会导致任何类型的Coldfusion错误,它只是找不到文件.如果我删除了#,它就可以了.我相信还有很多其他角色会遇到同样的问题.

我已经尝试URLEncodedFormat()在锚点内放置文件名,但这没有帮助.我唯一能想到的是每次上传时重命名文件并删除"#"字符(以及任何其他"坏"字符).

必须有一个更简单的解决方案.有任何想法吗?

anchor coldfusion file-upload

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

什么是JSONP,为什么创建它?

我理解JSON,但不了解JSONP.维基百科关于JSON的文档是JSONP的最佳搜索结果.它说:

JSONP或"带填充的JSON"是JSON扩展,其中前缀被指定为调用本身的输入参数.

咦?什么电话?这对我没有任何意义.JSON是一种数据格式.没有电话.

第二个搜索结果是由某些人叫雷米,谁写的这个约JSONP:

JSONP是脚本标记注入,将响应从服务器传递到用户指定的函数.

我可以理解这一点,但它仍然没有任何意义.


那么什么是JSONP?它为什么被创建(它解决了什么问题)?为什么我会用它?


附录:我刚刚在维基百科上为JSONP创建了一个新页面 ; 根据jvenema的回答,它现在对JSONP进行了清晰而全面的描述.

javascript json jsonp terminology

2040
推荐指数
8
解决办法
46万
查看次数

是否有任何理由说STL不提供通过索引返回迭代器的函数?

有没有理由说STL没有提供通过索引将迭代器返回到容器的函数?

例如,假设我想将元素插入到std::list第n个位置.看来我必须通过类似的东西检索迭代器begin()并添加n到该迭代器.我认为如果我能在第n个位置获得一个迭代器会更容易,例如,std::list::get_nth_iterator(n).

我怀疑我误解了STL的原理.谁能帮忙解释一下?

谢谢BeeBand

c++ iterator stl

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

用于翻译XML的bash脚本

嗨,我有几十个XML文件,
我需要这个:

<p begin="00:06:28;12" end="00:00:02;26">
Run Code Online (Sandbox Code Playgroud)

翻译成这个:

<p begin="628.12" end="631.08">
Run Code Online (Sandbox Code Playgroud)

我知道我需要一个简单的awk或sed来做这个,但是要成为新的; 有人可以帮忙吗

xml bash scripting

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

WIX属性值替换和CAQuietExec

到目前为止,我发现WIX不是我最喜欢的最直观,易用的语言/系统.

我创建了一个自定义对话框,输入了数据,并查看了安装日志中的值.

MSI (c) (C8:A4) [14:42:37:137]: PROPERTY CHANGE: Modifying VARRADIOBUTTONENVIRONMENT property. Its current value is 'Dev'. Its new value: 'QA'.
MSI (c) (C8:A4) [14:42:41:448]: PROPERTY CHANGE: Modifying VARTEXTSETTINGSFILENAME property. Its current value is 'C:\Path\SettingsFileGenerator.xml'. Its new value: 'Test1234.txt'.
Run Code Online (Sandbox Code Playgroud)

稍后,当我需要使用该值时,我会看到:

Action ended 14:42:43: InstallFinalize. Return value 1.
MSI (s) (BC:F8) [14:42:43:676]: Doing action: QtExec1
Action 14:42:43: QtExec1. 
Action start 14:42:43: QtExec1.
MSI (s) (BC:F4) [14:42:43:682]: Invoking remote custom action. DLL: C:\Windows\Installer\MSIC4A7.tmp, Entrypoint: CAQuietExec
MSI (s) (BC!BC) [14:42:43:690]: PROPERTY CHANGE: Deleting QtExecCmdLine …
Run Code Online (Sandbox Code Playgroud)

windows-installer wix

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