标签: windows-shell

如何通过C#重现"在文件夹中显示"/"查找目标"

使用Chrome时,如果您下载文件,则可以选择一个选项(在文件夹中显示),该选项将打开包含目录并突出显示该文件.同样,如果您查看快捷方式的属性,则可以为相同的功能选择"查找目标"按钮.我已经尝试了大量的搜索,以及查看Shell函数的MSDN条目的相当部分,但无济于事.我认为它只是一个简单的API调用或其系列,但我找不到它.

c# windows windows-shell

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

windows shell中右键上下文菜单的操作

我一直在尝试使用注册表在窗口内操作我的右键单击。我设法在外壳内添加了单行。

[HKEY_CLASSES_ROOT\Directory\shell\Notepad
[HKEY_CLASSES_ROOT\Directory\shell\notepad\Command]    
@="\"notepad.exe" \"%1\""
Run Code Online (Sandbox Code Playgroud)

例如会启动记事本。

现在,我真正想要的是上下文菜单中的子目录。

任何人都知道我可以在哪里阅读此内容,或者知道如何实际操作?

registry windows-shell

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

如何在 Windows 资源管理器中为 Windows 7 上的文档文件创建缩略图预览图标?

我正在为 Windows 7 创建一个读取文档的应用程序,并且我想启用可以在缩略图图标中预览文档封面的功能。我知道我必须创建缩略图,但是如何将该图像提供给资源管理器,以便它为该特定文件使用该缩略图?

windows-shell thumbnails visual-c++

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

WindowChrome ResizeBorderThickness问题

我正在构建一个Window,但我注意到WindowChrome的这种奇怪的行为(在.NET FW 4.0中,来自外部的Microsoft.Windows.Shell dll).

我使用AllowTransparency = true和WindowStyle = None设置WindowChrome.

如果我设置WindowChrome的ResizeBorderThickness <= 7一切都很完美,但如果我这样做

ResizeBorderThickness="8"

或者更多,当窗口最大化时,我无法将其从屏幕上边缘附近的最后一个顶部像素拖动,并且对于每个超过7的+1,我必须开始从边缘向下拖动1个像素.

这很烦人,因为它在关闭窗口时禁用了常见的行为,迫使我将其设置为7或更低.

有人可以解释我这种行为吗?

谢谢!

wpf xaml windows-shell .net-4.0 window-chrome

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

通过右键单击桌面或目录背景来创建 Shell ContextMenu

名为SharpShell的 .NET Shell 扩展框架很棒;我开发了一个“非常容易”的右键单击文件 Shell ContextMenu,它可以同时选择文件和目录。

现在,我想通过右键单击空白区域(即,在桌面上或在文件夹内的白点上)来开发 Shell ContextMenu。是否有可能仍然使用 SharpShell?或者我需要转向不同的解决方案吗?......在第二种情况下......你有什么建议?

谢谢

c# contextmenu windows-shell shell-extensions sharpshell

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

在Windows Shell中将包含*(星号)字符的字符串作为命令行参数传递

我正在寻找一种方法,通过命令行将包含"*"字符的字符串传递给可执行文件.

  command.exe 3*2
Run Code Online (Sandbox Code Playgroud)

我想传递字符串3*2.相反,Windows会在当前目录中搜索与文件掩码"3*2"匹配的文件,并将找到的所有文件传递给command.exe

在双引号之间加上"3*2"也没有用,仍然是同样的问题.

我也试过'3*2'(在单引号之间),但随后传递了整个字符串(包括单引号),这不是我需要的.

有没有办法将字符串3*2(没有任何引号)传递给命令?

windows shell windows-shell

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

如何使用Windows shell获取文件扩展名的大图标?

我找到了关于获取文件甚至文件扩展名的系统映像的各种文章.我有以下方法,用于获取小型16x16和大型32x32图像.

    // DLL Import
    [DllImport("shell32")]
    private static extern IntPtr SHGetFileInfo(
        string pszPath,
        uint dwFileAttributes,
        ref SHFILEINFO psfi,
        uint cbFileInfo,
        uint uFlags);

    // Constants/Enums
    private const int FILE_ATTRIBUTE_NORMAL = 0x80;

    private enum SHGetFileInfoConstants : int
    {
        SHGFI_ICON = 0x100,                // get icon
        SHGFI_DISPLAYNAME = 0x200,         // get display name
        SHGFI_TYPENAME = 0x400,            // get type name
        SHGFI_ATTRIBUTES = 0x800,          // get attributes
        SHGFI_ICONLOCATION = 0x1000,       // get icon location
        SHGFI_EXETYPE = 0x2000,            // return exe type
        SHGFI_SYSICONINDEX = 0x4000,       // get …
Run Code Online (Sandbox Code Playgroud)

c# shell pinvoke winapi windows-shell

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

如何在OS加载所有应用程序\服务时以编程方式检测?

编辑:我改述了我的问题,请忽略下面的所有评论(截至5月7日).

首先,我将尝试解释这个问题:
我的过程是尝试使用ITrayDeskBand :: ShowDeskBand以编程方式显示Deskband.
除了操作系统加载所有进程(重置或注销后)之外,它在任何时候都可以正常工作.

Windows启动并开始加载各种应用程序\服务后,鼠标光标设置为等待几秒钟(取决于运行的应用程序数量\所有内容的速度).

如果鼠标光标设置为wait并且进程在此期间运行,则调用将失败.
但是,如果我的进程等待几秒钟(在此之后光标变为常规)然后调用该调用,一切都很好.

在Windows 7和Windows Vista上都重现了此行为.

基本上我要问的是:

1)仅仅为了基本知识,当光标设置为忙时操作系统会做什么?
2)更重要的问题:如何在此过程结束时以编程方式检测?

起初,我认为资源管理器没有正确加载,所以我使用了WaitForInputIdle,但事实并非如此.

后来我认为忙碌的光标表示CPU正忙,所以我创建了我的进程,IDLE_PRIORITY_CLASS但是在光标忙的时候收到了空闲时间.

windows com winapi operating-system windows-shell

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

setx设置带空格的PATH

我试图在win32 shell脚本中更新系统Path变量,但仅在没有值的情况下更新.

我当前的版本看起来像这样:

for %%f in (xyz.exe) DO if [%%~$PATH:f]==[]; setx Path "%PATH%;%GRADLE_HOME%\bin" -m
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是

setx Path "%PATH%;%GRADLE_HOME%\bin"  
Run Code Online (Sandbox Code Playgroud)

这不起作用,但如果我将引号更改为单引号

setx Path '%PATH%;%GRADLE_HOME%\bin'
Run Code Online (Sandbox Code Playgroud)

它确实有效但Path在第一次出现Program Files时结束.即abc; def;程序

有没有办法克服这个问题?

windows windows-shell setx

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

从CMD检测命令行应用程序而不会弄乱PATH变量或System32/SysWow64目录

脚本

我想在外面的文件夹上安装x86 CommandLine应用程序,C:\Windows\System32或者C:\Windows\Syswow64仍然可以在CMD下访问我的应用程序,而无需在PATH环境变量中添加我的应用程序路径.

这可能吗?也许触摸所需的注册表项?

注意:我知道如何将我的应用程序添加到PATH变量/ regvalue或如何从CMD访问我的应用程序,将所需的.exe放在System32/ SysWow64文件夹中.这个问题只是为了学习替代方案,而不是解决问题PATH系统目的.

我试着从@Sertac Akyuz在评论这一建议的方法这个答案,我已存储MyApp.exeC:\根目录下,但我不能检测应用程序只是把MyApp.exe在CMD下.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\App Paths\MyApp.exe]
@="C:\\MyApp.exe"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths\MyApp.exe]
@="C:\\MyApp.exe"

[HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\App Paths\MyApp.exe]
@="C:\\MyApp.exe"

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\MyApp.exe]
@="C:\\MyApp.exe"
Run Code Online (Sandbox Code Playgroud)

windows registry cmd windows-shell windows-8

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