问题列表 - 第30231页

实现托管属性处理程序Shell扩展的正确方法是什么?

既然.NET CLR 4.0支持并行(SxS)操作,现在应该可以在托管代码中编写shell扩展.我试过这个并成功编写了一个实现IPropertyStore,IInitializeWithStream和IPropertyStoreCapabilities的Property Handler.

处理程序工作正常,并在通过资源管理器浏览文件时按预期调用.它还可以在预览面板和文件属性"详细信息"面板中显示自定义属性.

但是,当我尝试在预览面板中编辑属性,然后单击"保存"时,出现"正在使用文件"错误,指出该文件在Windows资源管理器中已打开.

一些花絮:

  1. 当资源管理器调用IInitializeWithStream.Initialize时,STGM属性设置为STGM_SHARE_DENY_WRITE.
  2. 并且探测器决不会调用IPropertyStore.SetValue或IPropertyStore.Commit.
  3. 我看到在不同线程上对我的处理程序重复调用相同的文件属性.

那么我需要更改(或设置在注册表中)以使属性保存工作?

更新:

感谢Ben,我已经开始工作了."困难部分"(至少对我来说)是理解COM互操作永远不会在我的PropertyHandler上调用Dispose或Finalize.这使我处理的文件保持打开状态,直到GC运行.

幸运的是,"属性处理程序协议"的作用是,当为ReadValue()调用IInitializeWithSream.Initialize()时,streamMode是ReadOnly,当为SetValue()调用它时,streamMode是ReadWrite,并且将调用Commit()在末尾.

int IInitializeWithStream.Initialize( IStream stream, uint grfMode )
{
    _stream = stream;
    _streamMode = (Stgm)grfMode;

    Load();

    // We release here cause if this is a read operation we won't get called back, 
    // and our finializer isn't called. 
    if ( ( _streamMode & Stgm.ReadWrite ) != Stgm.ReadWrite )
    {
        Marshal.ReleaseComObject( _stream );
        _stream = null;
    }
    return HResult.S_OK;
}

int IPropertyStore.Commit()
{
    bool result = false;

    if …
Run Code Online (Sandbox Code Playgroud)

.net windows shell32 com-interop

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

HTML列表样式类型破折号

有没有办法用破折号(即 - 或 - –或 - —)创建HTML格式的列表样式

<ul>
  <li>abc</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

输出:

- abc
Run Code Online (Sandbox Code Playgroud)

li:before { content: "-" };虽然我不知道该选项的缺点(并且非常有必要提供反馈),但是我想到了这样的事情.

更一般地说,我不介意知道如何使用通用字符列表项.

html css xhtml html-lists

209
推荐指数
11
解决办法
29万
查看次数

如何从mercurial中的"主"存储库获取对谷歌代码上托管的项目的更改?

我从code.google.com托管的项目中创建了一个"服务器"克隆.我在我的机器中从该存储库创建一个克隆并推送一些更改; 一切顺利.

现在主存储库有一些更改,我想拉它们.如何使用这些更改更新"服务器"克隆?

mercurial google-code

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

提示用户选择带有bash脚本的目录并读取结果

我希望用bash脚本读取一个目录(实际上我使用的是zsh).

我想在同一目录中列出当前文件夹并将其显示给用户,要求他们输入一个数字以选择正确的文件夹.

Please select a Folder eg, 1,2,3.
1. Folder Name 1 (this should the actual name of the folder in the dir
2. Folder 2
3. Folder 3.
Run Code Online (Sandbox Code Playgroud)

我也希望能够转换输入,例如1.回到实际的文件夹名称,所以我可以

cd ./$foldername/
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.干杯,约翰.

macos bash shell

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

使用MVVM Light绑定后如何在列表框中设置所选项?

我在Windows Phone应用程序上使用MVVM Light.我想在数据绑定后在列表框中设置所选项目.

我认为最好的方法是在列表框上为Loaded事件设置eventToCommand并传递元素以设置所选索引,但我不确定如何将listbox元素传递给RelayCommand.

silverlight windows-phone-7 mvvm-light

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

什么是REST Web服务?

可能的重复:
SOAP或REST
为什么我们需要RESTful Web服务?

嗨伙计,

最近,提到了很多REST Web服务.使用它比其他方法的原因是什么?它们是否在WCF中使用?我们如何实施?

TIA

rest wcf web-services

13
推荐指数
2
解决办法
2699
查看次数

显示字符串的可能组合

我试图取一个字符串并显示它的可能组合(在PHP中),但同时按每个单词的顺序说.例如:"你好吗"会返回(一个数组)

How are you
How are
are you
how
you
are
Run Code Online (Sandbox Code Playgroud)

我现在的代码显示了所有组合,但我希望它能保持顺序而不是翻转单词.任何人都有任何想要分享的想法或片段吗?谢谢

php combinations

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

密码强度检查库

任何人都可以推荐一个Java库,其中包含适合在webapp中执行服务器端密码强度检查的方法.理想情况下,检查器应该是:

  • 可配置,允许部署者提供不同的词典,调整不同标准的权重,等等
  • 可扩展,允许在需要时实施新标准
  • 用纯Java实现
  • 没有从根本上与标签库,UI组件或"密码管理"功能交织在一起
  • 与GPL 3项目兼容
  • 与Spring接线兼容
  • mavenized(理想情况下通过Maven Central提供)

java passwords

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

如何从void*转换回int

如果我有

int a= 5;
long b= 10;
int count0 = 2;
void ** args0;
args0 = (void **)malloc(count0 * sizeof(void *));
args0[0] = (void *)&a;
args0[1] = (void *)&b;
Run Code Online (Sandbox Code Playgroud)

如何从args [0]和args0 [1]转换回int和long?例如

int c=(something im missing)args0[0]
long d=(something im missing)args1[0]
Run Code Online (Sandbox Code Playgroud)

c

16
推荐指数
2
解决办法
5万
查看次数

有没有办法为Android的ADB中的所有标签设置DEBUG?

我知道我可以通过键入以下内容在 Android 的 ADB 中设置 DEBUG:

adb shell setprop log.tag.MyTag 调试

我想知道是否有一种方法可以为所有进行日志记录的类设置调试,而不必多次键入上述内容:

adb shell setprop log.tag.MyTag1 调试
adb shell setprop log.tag.MyTag2 调试
adb shell setprop log.tag.MyTag3 调试
adb shell setprop log.tag.MyTag4 调试

就像是:

adb shell setprop log.tag.* 调试

我正在使用 Eclipse 进行开发,但目前我正在通过命令行 adb 设置 DEBUG。

谢谢,凯文

eclipse debugging android adb

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