小编jos*_*736的帖子

Windows 7开始菜单搜索的自定义源

我最近发现了一篇关于Windows 7新的联合搜索和搜索连接器的文章.基本上,您为用户提供了一个小型XML文件(.osdx;一个OpenSearch XML文件),然后他们可以使用资源管理器搜索您所拥有的任何内容.这些搜索连接器实际上非常容易实现 - 资源管理器使用查询调用您的URL,您只需将结果作为RSS返回.

大.我目前工作的一个Web应用程序,其中这种功能可能是一个不错的额外的功能提供给我的用户.所以我安装了样本.osdx并试了一下.它的工作原理与广告一样:

http://blogs.msdn.com/blogfiles/jimoneil/WindowsLiveWriter/7ON7FederatedSearch_14072/image_thumb_15.png

这很酷,但我希望我的搜索结果可以从"开始"菜单中获得.我(在我看来)的观点是,当应用程序本身尚未打开时,可以轻松,快速地直接访问我的Web应用程序中的项目.如果我必须打开资源管理器窗口,单击我的搜索连接器,然后搜索,只是打开浏览器并在Web应用程序中进行搜索有什么区别?

这是我尝试过的:

  • 安装.osdx后,连接器将另存为%UserProfile%\Searches\name.searchConnector-ms.此文件夹中的其他项目包括Outlook的连接器.查看该文件,有一个非常有前途的节点<includeInStartMenuScope>.我将此节点的值添加true到Channel 9 Connector,但没有运气.(我甚至试过重启.)
  • 我遇到了一个长达一年的问题,问了同样的事情.接受的答案将我们引导至Windows API代码包,但仅提供用于使用 Windows搜索的类,而不是实现搜索提供程序.
  • 来自Scott Hanselman的注册表技巧.但是,这个(a)只链接一个链接来运行搜索,而不是包含内联结果,并且(b)对我来说不起作用,因为我(我也不能指望我的用户)拥有Windows 7旗舰版.

那么,如何在"开始"菜单的即时搜索中提供项目?理想情况下,我只想配置搜索连接器的结果,但我不反对在C#中连接将安装在客户端计算机上的东西.

c# search web-services startmenu windows-7

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

如何在IE中禁用Modal对话框上的缓存?

我们使用IE方法将弹出窗口实现为模式对话框:

window.showModalDialog('...aspx')
Run Code Online (Sandbox Code Playgroud)

弹出窗口的目标本身就是一个ASP.Net网页.

假设以下步骤从未启动过弹出窗口:

  1. 启动弹出窗口.
  2. Page_Load事件处理程序在服务器端执行.
  3. 关闭弹出窗口.
  4. 立即再次启动弹出窗口.
  5. 这次Page_Load事件处理程序不执行.

很明显弹出内容正在被缓存,因为如果在步骤4我们清除临时Internet文件,则第二次执行Page_Load事件处理程序.

我们已经尝试将以下内容添加到网页的主管中(正如其他几个来源所推荐的那样),但它们似乎都没有效果.

<meta http-equiv="Cache-Control" content="no-cache" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />
Run Code Online (Sandbox Code Playgroud)

我们也看到过不鼓励使用这些的地方

有人可以帮忙吗?

html internet-explorer caching modal-dialog

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

如何在nodejs插件中抽取窗口消息?

在Windows nodejs插件中,我创建了一个用于接收消息的窗口.

Handle<Value> MakeMessageWindow(const Arguments &args) { // exposed to JS
    ...
    CreateWindow(L"ClassName", NULL, 0, 0, 0, 0, 0, HWND_MESSAGE, 0, 0, 0);
    ...
}
Run Code Online (Sandbox Code Playgroud)

我有一个wndproc函数.

Local<Function> wndProc;
LRESULT APIENTRY WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
    // pack up the arguments into Local<Value> argv
    wndProc->Call(Context::GetCurrent()->Global(), 3, argv);
}
Run Code Online (Sandbox Code Playgroud)

现在我需要抽取消息.通常,你会做类似的事情

MSG msg;
while (GetMessage(&msg, NULL, 0, 0)) 
{
     TranslateMessage(&msg);
     DispatchMessage(&msg);
}
Run Code Online (Sandbox Code Playgroud)

...但这不起作用,因为它只会阻止v8事件循环.

如何以不阻止v8的方式提取Windows消息,并允许我在窗口收到消息时调用JS函数?

我假设libuv将扮演一个角色,但我不确定如何安全地从C运行在一个单独的线程上调用JS函数,特别是因为uv_async_send不保证每次调用它时都会调用一个回调,我需要确保每次收到窗口消息时都会调用我的JS回调.

c++ winapi v8 node.js libuv

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

如何使用PROXY协议获取客户端的真实IP地址?

AWS刚刚为ELX添加了对PROXY协议的支持,该协议包装TCP流并添加客户端IP地址(由代理看到),以便后端服务器可以访问客户端的IP(因为否则只能看到ELB的IP) .

我知道ELB可以在HTTP(S)模式下运行,其中ELB插入X-Forwarded-For标头,但我在TCP模式下运行我的ELB,以便我可以通过SPDY服务我的站点.

如何修改我的node.js应用程序(使用Express)以使用PROXY协议?

proxy node.js

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

DeflateStream不解压缩数据(第一次)

所以这是一个奇怪的.我有这个方法来采取Base64编码的缩小字符串并返回原始数据:

public static string Base64Decompress(string base64data)
{
    byte[] b = Convert.FromBase64String(base64data);
    using (var orig = new MemoryStream(b))
    {
        using (var inflate = new MemoryStream())
        {
            using (var ds = new DeflateStream(orig, CompressionMode.Decompress))
            {
                ds.CopyTo(inflate);
                return Encoding.ASCII.GetString(inflate.ToArray());
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这将返回一个空字符串,除非我添加第二个调用ds.CopyTo(inflate).(WTF?)

   ...
            using (var ds = new DeflateStream(orig, CompressionMode.Decompress))
            {
                ds.CopyTo(inflate);
                ds.CopyTo(inflate);
                return Encoding.ASCII.GetString(inflate.ToArray());
            }
   ...
Run Code Online (Sandbox Code Playgroud)

(Flush/ Close/ Disposeds没有任何效果.)

为什么DeflateStream第一次调用时复制0个字节?我也尝试过循环Read(),但它在第一次调用时也返回零,然后在第二次调用时工作.


更新:这是我用来压缩数据的方法.

public static string Base64Compress(string …
Run Code Online (Sandbox Code Playgroud)

c# .net-4.0 deflatestream

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

嵌入式字体声明(@ font-face)中的数据URI会破坏IE <9

我有一个CSS文件,其@font-face声明通过数据URI嵌入字体文件:

@font-face {
    font-family: 'Custom-Font';
    src: url('eot/font.eot');
    src: url('eot/font.eot?#iefix') format('embedded-opentype'),
        /* ugly FF same-Origin workaround... */
        url("data:application/octet-stream;base64,d09GRgABAAAAA ... ") format('woff'),
        url('ttf/font.ttf') format('truetype'),
        url('svg/font.svg#Custom-Font') format('svg');
    }
Run Code Online (Sandbox Code Playgroud)

使用数据URI嵌入字体会导致IE <9无法加载字体.如果我删除该行(或将其更改为引用该.woff文件),IE将加载该字体.

这个CSS怎么会混淆IE?

背景:我有一个页面,可以从不同的域(CDN)加载嵌入的字体.不幸的是,Mozilla 需要Access-Control-Allow-Origin在不同域提供的嵌入式字体上使用CORS头()(在我看来,滥用 CORS和糟糕的想法).由于我无法控制的原因(官僚主义),我无法在字体文件上发送CORS标题,所以我坚持通过数据URI将字体文件嵌入CSS文件的次优情况.

css internet-explorer embedded-fonts font-face

8
推荐指数
2
解决办法
6927
查看次数

有没有办法找出分支来自哪里?

有没有一种方法可以像创建分支的树结构一样显示?

假设我从MASTER开始然后到SONAR-VIOLATIONS再到PROJECT_ONE_VIOLATION,那么显示新分支从何处分支的命令/方法是什么?在某种树形结构?

git

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

如何跟踪和可视化JavaScript Promises?

在编写一个包含大量异步操作的相当大的JavaScript模块时,所有这些都处理promises,调试并遵循promises的流程/状态变得非常困难.

是否有任何工具或框架用于检测测试或模块代码,以便为我的系统中的所有Promise提供流量?如果它重要的话,我正在使用jQuery promises.

javascript testing jquery promise

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

Npm错误 - Windows NT - 如何解决

我尝试npm install时出现以下错误:

npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs
\\node_modules\\npm\\bin\\npm-cli.js" "install"
npm ERR! node v0.10.36
npm ERR! npm  v2.12.1

npm ERR! Cannot read property 'latest' of undefined
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs
\\node_modules\\npm\\bin\\npm-cli.js" "install"
npm ERR! node v0.10.36
npm ERR! npm  v2.12.1

npm ERR! Cannot read property 'latest' of undefined
npm ERR!
npm …
Run Code Online (Sandbox Code Playgroud)

node.js npm

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

大约4分钟后,MySqlDataReader停止读取并返回

我有一个简单的查询返回25,026行:

MySqlCommand cmd = new MySqlCommand("SELECT ID FROM People", DB);
MySqlDataReader reader = cmd.ExecuteReader();
Run Code Online (Sandbox Code Playgroud)

(ID是一个int.)如果我这样做:

int i = 0;
while (reader.Read()) i++;
Run Code Online (Sandbox Code Playgroud)

i将等于25026.但是,我需要对循环中的每个ID进行一些处理; 每次迭代最终都会在数百毫秒内完成.

int i = 0;
MySqlCommand updater = new MySqlCommand("INSERT INTO OtherTable (...)", anotherConnection);
updater.Prepare();
while (reader.Read()) {
     int id = reader.getInt32(0);
     // do stuff, then
     updater.ExecuteNonQuery();
     i++;
}
Run Code Online (Sandbox Code Playgroud)

但是,在处理大约4:15之后,reader.Read()只返回false.在我的大多数测试运行中,i等于14896,但它有时也停在11920. DataReader在相同数量的记录之后退出是可疑的,并且在不同行数之后它停止的时间似乎更奇怪.

为什么reader.Read()在肯定有更多行时返回false?没有例外被抛出 - 甚至没有第一次机会异常.


更新:我在回答Shaun的回答中提到我确信MySqlDataReader.Read()吞下异常,所以我下载了Connector/Net的源代码(bzr branch lp:connectornet/6.2 …

c# mysql sql

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