我有一种情况,我想在一些Windows shell特殊文件夹(对应于CSIDL枚举中的值)上执行特殊处理.(我的解决方案必须与WinXP兼容.)我遇到的问题是当我遇到IShellFolders时我沿着heirarchy工作,我找不到将IShellFolders与CSIDL相匹配的方法.
这是我目前的做法:
将csidlToFromFullPIdl所有CSIDL 的静态一对一数据结构()初始化为其返回的pIDL SHGetSpecialFolderLocation.
foreach (CSIDL csidl in Enum.GetValues(typeof(CSIDL))
{
IntPtr fullPIdl = IntPtr.Zero;
int hResult = ShellApi.SHGetSpecialFolderLocation(IntPtr.Zero, csidl, ref fullPIdl);
if (hResult != 0)
Marshal.ThrowExceptionForHR(hResult);
csidlToFromFullPIdl.Add(csidl, fullPIdl);
}
Run Code Online (Sandbox Code Playgroud)
使用Desktop IShellFolder启动heirarchy:
int hResult = ShellApi.SHGetDesktopFolder(ref _shellFolder);
hResult = ShellApi.SHGetSpecialFolderLocation(IntPtr.Zero, CSIDL.CSIDL_DESKTOP, ref _fullPIdl);
Run Code Online (Sandbox Code Playgroud)
像这样检索孩子:
hResult = _shellFolder.EnumObjects(IntPtr.Zero, SHCONTF.SHCONTF_FOLDERS, out pEnum);
// Then repeatedly call:
pEnum.Next(1, out childRelativePIdl, out numberGotten);
Run Code Online (Sandbox Code Playgroud)
为孩子们构建新的完全合格的pIDL,如下所示:
_fullPIdl = ShellApi.ILCombine(parentFullPIdl, childRelativePIdl);
Run Code Online (Sandbox Code Playgroud)
(最后,使用:)检索孩子的IShellFolder
hResultUint = parentShellItem.ShellFolder.BindToObject(childRelativePIdl, IntPtr.Zero, ShellApi.IID_IShellFolder, out _shellFolder);
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是childRelativePIdl和_fullPIdl都不对应于任何pIDL csidlToFromFullPIdl.
TIA. …
我有一个在Drupal上开发的网站.我使用一个名为collapsiblock的模块(它基本上是一个JQuery插件)来实现类似手风琴的效果.它对我很好(虽然它是在Beta).但我想修改它,以便当用户点击手风琴的一个项目时,其他项目将崩溃.
在其当前的统计数据中,它的工作方式是,当用户点击一个项目时,它将检查项目是否已折叠或展开,并且它将使项目相反.这意味着如果用户点击一个项目,它将展开,如果他/她点击另一个项目,它也将展开,但它不会折叠先前点击的项目.
你可以看到下面的代码.我知道在哪里可以添加要折叠的代码以及如何折叠和展开.我的问题是:如何选择所有具有".collapsiblock"类的项目,除了用户点击的项目?
注意:具有".collapsiblockCollapsed"类的项目将被折叠,如果从项目中删除此类,则会扩展该项目.
// $Id: collapsiblock.js,v 1.6 2010/08/18 19:17:37 gagarine Exp $
Drupal.Collapsiblock = Drupal.Collapsiblock || {};
Drupal.behaviors.collapsiblock = function (context) {
var cookieData = Drupal.Collapsiblock.getCookieData();
var slidetype = Drupal.settings.collapsiblock.slide_type;
var defaultState = Drupal.settings.collapsiblock.default_state;
var slidespeed = parseInt(Drupal.settings.collapsiblock.slide_speed);
$('div.block:not(.collapsiblock-processed)', context).addClass('collapsiblock-processed').each(function () {
var id = this.id;
var titleElt = $(':header:first', this).not($('.content :header',this));
if (titleElt.size()) {
titleElt = titleElt[0];
// Status values: 1 = not collapsible, 2 = collapsible and expanded, 3 = collapsible and collapsed, 4 = always collapsed …Run Code Online (Sandbox Code Playgroud) javascript jquery drupal javascript-framework content-management-system
我们可以说textfile是一个数据库吗?我们知道数据库是数据集合,数据库允许轻松检索和操作,但我们可以使用文本文件来完成这些操作.那么文本文件是数据库吗?
以下是我编写的批处理脚本
@echo off
setlocal enabledelayedexpansion
set finalcontent=
For /F "tokens=1-2* delims= " %%I in (abc.txt) do (
IF %%J EQU MAJORVER (
set currentline=%%I %%J %1
set finalcontent=!finalcontent!!currentline!
) ELSE IF %%J EQU MINORVER (
set currentline=%%I %%J %2
set finalcontent=!finalcontent!!currentline!
) ELSE IF %%J EQU BUILDNUM (
set currentline=%%I %%J %3
set finalcontent=!finalcontent!!currentline!
) ELSE (
set currentline=%%I %%J %%K%NL%
set finalcontent=!finalcontent!!currentline!
)
)
echo %finalcontent%>>xyz.txt
Run Code Online (Sandbox Code Playgroud)
我想在变量当前行的每个出现的末尾追加一个换行符.任何人都可以指导我吗?
关于C++/Qt的两个[希望]快速问题.以下是否适合在多行上写字符串?
QString strQuery;
strQuery="\
CREATE TABLE foo\
(bar integer primary key,\
baz varchar(20))";
Run Code Online (Sandbox Code Playgroud)
我相信这是对的,但是在Qt Creator中它没有突出显示它好像是一个大字符串.
其次,QSqlQuery.exec()会在一次执行中运行多个查询,还是需要通过exec()运行每个查询?例如,我正在尝试这样的事情:
QSqlQuery query;
QString strQuery;
strQuery="\
CREATE TABLE foo \
(bar integer primary key,\
baz varchar(10));\
CREATE TABLE herp\
(de integer primary key, \
derp varchar(10))";
query.exec(strQuery);
Run Code Online (Sandbox Code Playgroud)
从我所看到的,只有第一个表被创建.我不知道这是否与我的多行字符串,我的数据库类型(SQLite)或一般的QSqlQuery有关.
谢谢您的帮助!
我想为"Items"创建一个接口.Typicaly我会通过在基本单词中添加"I"前缀来命名接口.但在这种情况下,我的基本单词已经以I开头.这里有几个想法
什么看起来最好?有没有其他人遇到这个问题.如果是这样你做了什么?
当我试着把注意力集中在我的"autocompletetextbox"上时,我写的很失败,autocompletetextbox.focus()
但是光标仍然集中在另一个我应该做什么或写什么以便能够写入或焦点?
有人可以帮助我理解如何在C中实现memmove.我只有一个特殊条件吗?
if((src<dst)&&((src+sz) > dst))
copy from the back
Run Code Online (Sandbox Code Playgroud)
它还取决于堆栈增长的方式吗?
我需要将一个字符传递给第一行.2:我试过的第一种方法,
1) unichar dicttxt = [[myword lowercaseString] characterAtIndex:0];
2) fileName = [[NSBundle mainBundle] pathForResource:dicttxt ofType: @"txt"];
Run Code Online (Sandbox Code Playgroud)
我试过的第二种方法,
NSString *dicttxt = [[myword lowercaseString] characterAtIndex:0];
fileName = [[NSBundle mainBundle] pathForResource:dicttxt ofType: @"txt"];
Run Code Online (Sandbox Code Playgroud)
两种方法都提示错误 Make pointer from integer without a cast.
我在我的生产服务器上运行了一个asp.net网站.我想获得在生产服务器中分析asp.net网站的可能方法,因为我的应用程序非常慢?正如我所说的慢,我不是指静态内容的传递,而是数据库操作和我的c#代码?那有什么建议吗?
asp.net performance profiling query-optimization production-environment
c# ×3
.net ×1
asp.net ×1
autocomplete ×1
batch-file ×1
c ×1
c++ ×1
cocoa ×1
database ×1
drupal ×1
interface ×1
iphone ×1
javascript ×1
jquery ×1
memmove ×1
objective-c ×1
performance ×1
profiling ×1
qt ×1
sqlite ×1
wpf ×1