我正在开发一个Windows shell扩展,不幸的是,在更改DLL时,我必须重新启动Windows资源管理器(因为它将DLL保存在内存中).
我从Dino Esposito找到了这个程序,但它对我不起作用.
void SHShellRestart(void)
{
HWND hwnd;
hwnd = FindWindow("Progman", NULL );
PostMessage(hwnd, WM_QUIT, 0, 0 );
ShellExecute(NULL, NULL, "explorer.exe", NULL, NULL, SW_SHOW );
return;
}
Run Code Online (Sandbox Code Playgroud)
有人可以分享他们可以分享的东西吗?
PS我意识到我可以去任务管理器并杀死资源管理器进程,但我只是想以懒惰的方式去做.此外,这可实现自动化.
PPS我使用.NET进行开发,但shell重启功能可以是C,C++或.NET语言.它只是一个小的独立可执行文件.
我在Delphi项目中有一个表单.表格上有一个按钮.当用户单击该按钮时,我希望它打开Windows资源管理器.
我需要用什么代码来实现这个目标?
我想将列表框的元素拖放到资源管理器中.当拖放开始时,我需要按需准备文件并将其保存到内存流中.您能否提供一个使用FileGroupDescriptor数据结构的示例?谢谢.安德里亚
我刚刚意识到有一个shell:
URI,但每个搜索引擎似乎都认为shell:和shell是一回事.
我发现的唯一一件事就是你可以shell:startup
在资源管理器(XP和7测试版)中输入正确的效果.
这已经很好,因为没有%startup%
,但我想知道这还有什么能力.
有没有MS参考?
编辑(即使它不在MSDN上)
我试图通过存储过程在SQL Server FileTable中创建目录,我调用以下代码:
INSERT INTO tblMyFiles (name, is_directory, is_archive)
VALUES ('foldername', 1, 0);
Run Code Online (Sandbox Code Playgroud)
调用此代码后,如果我在SQL Server Management Studio中选择行,但是如果通过Windows资源管理器浏览到文件表目录,我可以看到文件表中的行,我看不到新创建的目录.如果我刷新Windows资源管理器,则该目录仍然不会显示.如果我在资源管理器的文件表目录中创建一个文件,它似乎唤醒了资源管理器,然后出现通过存储过程创建的所有目录.
我在同一个SQL框和另一个数据库上运行它时没有遇到这个问题,我已经比较了所有的属性,它们看起来完全相同,但我必须遗漏一些东西,不知道是什么?任何帮助将非常感激.提前致谢
我最喜欢的IDE Wing IDE有一个命令,用于在资源管理器中显示活动文件.这意味着当您启动该命令时,它会在该文件所在的文件夹上打开一个资源管理器窗口,然后选择该文件.
问题是,如果窗口已经打开,则无法选择文件.它激活窗口,但文件未被选中.那很烦人.我希望始终选择该文件
我和其中一位开发人员交谈过,他说他们正在使用它'explorer /select,%s' % filename
来显示文件,而上述烦恼可能是该命令的一个怪癖.
有谁知道如何避免这种行为?
(该解决方案需要在Windows 2000,XP,2003 Server,Vista和Windows 7中运行.)
我试图通过Eclipse的DDMS访问我的Android手机上的db文件.但是,文件资源管理器为空.我已经尝试重启adb服务器,重新启动eclipse,它仍然无法正常工作.我的手机可以在"我的设备"下看到并显示为在线.
知道为什么会发生这种情况以及可以解决的问题是什么?
谢谢.
我有一个COM shell扩展,它将一个项添加到Windows资源管理器上下文菜单中,并使用带有透明背景的BMP图像作为图标.
要像我SetMenuItemBitmaps
这样设置图像:
[DllImport("user32.dll", ExactSpelling = true)]
internal static extern int SetMenuItemBitmaps(IntPtr hMenu,uint uPosition,uint uFlags,IntPtr hBitmapUnchecked,IntPtr hBitmapChecked);
SetMenuItemBitmaps(owner.hMenu,(uint)pos,Win32.MF_BYPOSITION,bitmap.GetHbitmap(),IntPtr.Zero);
Run Code Online (Sandbox Code Playgroud)
我的问题是这个 - 当图标第一次出现时它看起来很好但是在它上面悬停后图标的背景变成白色(而不是透明)并保持白色直到我重新打开菜单.
我已经尝试在参数"hBitmapUnchecked","hBitmapChecked"中设置两个非默认值 - 但它似乎没有任何区别.结果保持不变.
这是悬停前的图标图像(缩放到400%):
这是悬停后的图标图像:
注意第二张图片周围的白色背景!
到目前为止,我没有在谷歌上找到任何相关内容.是否有其他方法来设置图标,以避免这种烦人的背景?
TortoiseSVN在Windows资源管理器中显示图标装饰,显示特定目录树中是否存在任何未提交的更改.例如:
上图显示目录树中某处Trunk
有更改的文件.
但是,我经常使用ignore-on-commit
更改列表来保存我从未想要提交的Web.config
更改- 例如,与连接字符串相关的更改.
我不能依靠图标装饰让我知道我是否有变化,因为它们也会出现红色(!),即使只有Web.config
变化.这会给Explorer带来不必要的噪音.
有没有办法改变这个,以便只有我想要提交的更改被标记为资源管理器中的更改?
我正在使用以下代码打开Samsung的My Files应用程序来选择文件...
public void openFileBrowser( ) {
Intent intent = new Intent( "com.sec.android.app.myfiles.PICK_DATA" );
try {
startActivityForResult( intent, PICKFILE_RESULT_CODE );
} catch ( ActivityNotFoundException e ) {
e.printStackTrace( );
Log.log( Log.ERROR, TAG + "MyFiles is not installed !!" );
}
}
Run Code Online (Sandbox Code Playgroud)
这将打开"我的文件"应用程序,并允许用户通过它选择文件.
但是,我希望在设备的外部存储器上打开一个特定的文件夹...并让用户从那里选择一个文件....我尝试通过这样做来实现这一点......
public void openFileBrowser( ) {
Intent intent = new Intent( "com.sec.android.app.myfiles.PICK_DATA" );
File root = new File( Environment.getExternalStorageDirectory( ).getPath( ) + "/MyFolder" );
Uri uri = Uri.fromFile( root );
intent.setData( uri );
try {
startActivityForResult( intent, PICKFILE_RESULT_CODE …
Run Code Online (Sandbox Code Playgroud) explorer ×10
windows ×3
android ×2
file ×2
.net ×1
c# ×1
contextmenu ×1
ddms ×1
delphi ×1
eclipse ×1
filestream ×1
filetable ×1
moniker ×1
protocols ×1
shell ×1
sql-server ×1
svn ×1
tortoisesvn ×1
uri ×1
winapi ×1