C# Visual Studio 2008 引用 system32.dll ...如何?

2023-12-21

我需要参考 system32/shell32.dll,因为我使用一些 shell 函数来读取回收站。我尝试了“添加引用 --> COM --> Microsoft Shell 控制和自动化”和“添加引用 --> 浏览 ---> [直接转到 system32/shell32.dll]。两者都将 shell32 引用添加到我的引用中但是当我查看属性时,我看到引用的路径如下所示:“C:\Users\Tim\Documents\Visual Studio 2008\Projects\Wing\FileWing\obj\Debug\Interop.Shell32.dll” ...

我不会将此 \obj\Debug\ 路径部署到我的安装程序。那么如何直接引用最终用户的shell32.dll呢?有办法吗?为什么VS2008会创建这个奇怪的路径?我可以更改此路径,使其不再位于这个奇怪的子文件夹中吗?


嗯。好吧,在重新访问 PInvoke 之后,我确定我不太明白:-/

让我说明一下我需要处理的代码。我正在挖掘回收箱并寻找我想要回收的物品。有没有办法不通过 PInvoke 来完成这项工作?

    private void recoverRecyclerBinEntry(string fileName, int size)
    {
        try
        {
            Shell Shl = new Shell();
            Folder Recycler = Shl.NameSpace(10);

            // scans through all the recyclers entries till the one to recover has been found
            for (int i = 0; i < Recycler.Items().Count; i++)
            {
                FolderItem FI = Recycler.Items().Item(i);
                string FileName = Recycler.GetDetailsOf(FI, 0);
                if (Path.GetExtension(FileName) == "")
                    FileName += Path.GetExtension(FI.Path);
                //Necessary for systems with hidden file extensions.

                string FilePath = Recycler.GetDetailsOf(FI, 1);
                string combinedPath = Path.Combine(FilePath, FileName);

                if (size == FI.Size && fileName == combinedPath)
                {
                    Debug.Write("Match found. Restoring " + combinedPath + "...");
                    Undelete(FI);
                    Debug.WriteLine("done.");
                }
                else
                {
                    Debug.WriteLine("No match");
                }
            }
        } 
        catch (Exception ex)
        {
            Debug.WriteLine(ex.Message);
            Debug.WriteLine(ex.StackTrace);
        }
    }

    private bool Undelete(FolderItem Item)
    {
        try
        {
            foreach (FolderItemVerb FIVerb in Item.Verbs())
            {
                if (
                    (FIVerb.Name.ToUpper().Contains("WIEDERHERSTELLEN")) ||
                    (FIVerb.Name.ToUpper().Contains("ESTORE")) ||
                    (FIVerb.Name.ToUpper().Contains("NDELETE"))
                    )
                {
                    FIVerb.DoIt();
                    return true;
                }
            }
            //execute the first one:
            Item.Verbs().Item(0).DoIt();
            return true;
        }
        catch (Exception)
        {
            Debug.WriteLine("ERROR undeleting");
            return false;
        }
    }

我相信你正在寻找P/Invoke(平台调用) http://msdn.microsoft.com/en-us/magazine/cc164123.aspx

一旦你掌握了包含和使用DLL的方法,你就可以访问pinvoke.net http://www.pinvoke.net/获取使用某些方法的特定代码片段。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# Visual Studio 2008 引用 system32.dll ...如何? 的相关文章

  • 如何将隐藏字段从一个页面传递到另一页面?

    我有一个 Net 类库 我想从一次代码隐藏页面传递一个隐藏变量 并在另一个代码隐藏页面中获取它 请注意 我没有任何可以使用表单标签和 get post 方法的设计页面 aspx 页面 我们应该怎么做 注意 我想使用隐藏字段将值从一页传递到另
  • 如何将 #ifdef DEBUG 添加到 Xcode?

    我的项目中有一些代码永远不应该在发布版本中使用 但在测试时很有用 我想做这样的事情 ifdef DEBUG Run my debugging only code endif 在 Xcode 4 中哪里添加 DEBUG 设置 我尝试将其放入
  • 在新的浏览器进程中打开 URL

    我需要在新的浏览器进程中打开 URL 当浏览器进程退出时我需要收到通知 我当前使用的代码如下 Process browser new Process browser EnableRaisingEvents true browser Star
  • 如何从 .resx 文件条目获取注释

    资源文件中的字符串有名称 值和注释 The ResXResourceReader类让我可以访问名称和值 有办法看评论吗 你应该能够得到Comment via ResXDataNode class http msdn microsoft co
  • 存储来自其他程序的事件

    我想将其他应用程序的事件存储在我自己的应用程序中 事件示例 打开 最小化 Word 或打开文件时 这样的事可能吗 运行程序 http msdn microsoft com en us library ms813609 aspx and 打开
  • 用于检查项目文件中的项目变量和引用路径的 api

    我正在研究一个 net application VS2010 与 x 没有 解和变量号这些解决方案中的项目数量 我需要检查项目属性 特定于一定数量的项目 是否同质 并且检查 验证构建期间的参考路径 有没有一个API是这样的吗 如果没有 我该
  • 使用 C 语言使用 strftime() 获取缩写时区

    我看过this https stackoverflow com questions 34408909 how to get abbreviated timezone and this https stackoverflow com ques
  • 无法在 Windows 运行时组件库的 UserControl 中创建依赖项属性

    我想在用户控件内创建数据可绑定属性 这个用户控件包含一个 Windows 运行时组件 项目 我使用下面的代码来创建属性 public MyItem CurrentItem get return MyItem GetValue Current
  • ASP.NET:获取自 1970 年 1 月 1 日以来的毫秒数

    我有一个 ASP NET VB NET 日期 我试图获取自 1970 年 1 月 1 日以来的毫秒数 我尝试在 MSDN 中寻找方法 但找不到任何东西 有谁知道如何做到这一点 从 NET 4 6 开始 该方法ToUnixTimeMillis
  • 在一个字节中存储 4 个不同的值

    我有一个任务要做 但我不知道从哪里开始 我不期待也绝对不想要代码中的答案 我想要一些关于该怎么做的指导 因为我感到有点失落 将变量打包和解包到一个字节中 您需要在一个字节中存储 4 个不同的值 这些值为 NAME RANGE BITS en
  • C++:.bmp 到文件中的字节数组

    是的 我已经解决了与此相关的其他问题 但我发现它们没有太大帮助 他们提供了一些帮助 但我仍然有点困惑 所以这是我需要做的 我们有一个 132x65 的屏幕 我有一个 132x65 的 bmp 我想遍历 bmp 并将其分成小的 1x8 列以获
  • 批量更新 SQL Server C#

    我有一个 270k 行的数据库 带有主键mid和一个名为value 我有一个包含中值和值的文本文件 现在我想更新表格 以便将每个值分配给正确的中间值 我当前的方法是从 C 读取文本文件 并为我读取的每一行更新表中的一行 必须有更快的方法来做
  • 如何将自定义 JSON 文件添加到 IConfiguration 中?

    我正在使用 asp net Autofac 我正在尝试加载自定义 JSON 配置文件 并基于该文件创建 实例化 IConfiguration 实例 或者至少将我的文件包含到默认情况下构建的 IConfiguration asp net 中
  • 如何对 Web Api 操作进行后调用?

    我创建了一个 Web API 操作 如下所示 HttpPost public void Load string siteName string providerName UserDetails userDetails implementat
  • Process.Start() 方法在什么情况下返回 false?

    From MSDN https msdn microsoft com en us library e8zac0ca v vs 110 aspx 返回值 true 表示有新的进程资源 开始了 如果由 FileName 成员指定的进程资源 St
  • 如何在 C# 中调整图像大小同时保持高质量?

    我从这里找到了一篇关于图像处理的文章 http www switchonthecode com tutorials csharp tutorial image editing saving cropping and resizing htt
  • 编译时“strlen()”有效吗?

    有时需要将字符串的长度与常量进行比较 例如 if line length gt 2 Do something 但我试图避免在代码中使用 魔法 常量 通常我使用这样的代码 if line length gt strlen Do somethi
  • memset 未填充数组

    u32 iterations 5 u32 ecx u32 malloc sizeof u32 iterations memset ecx 0xBAADF00D sizeof u32 iterations printf 8X n ecx 0
  • 在客户端系统中安装后桌面应用程序无法打开

    我目前正在使用 Visual Studio 2017 和 4 6 1 net 框架 我为桌面应用程序创建了安装文件 安装程序在我的系统中完美安装并运行 问题是安装程序在其他计算机上成功安装 但应用程序无法打开 edit 在客户端系统中下载了
  • 如何正确使用 std::condition_variable?

    我很困惑conditions variables以及如何 安全 使用它们 在我的应用程序中 我有一个创建 gui 线程的类 但是当 gui 是由 gui 线程构造时 主线程需要等待 情况与下面的函数相同 主线程创建互斥体 锁和conditi

随机推荐

  • 使用 Linq PredicateBuilder 嵌套 OR

    我正在使用谓词生成器编写以下代码 IEnumerable
  • 使用 date-fns 进行时区转换

    我正在尝试在基于 React 的网页中使用 date fns tz 但无法使以下用例正常工作 我在表单中输入了一个日期 该表单应提交到以本地时区存储数据的后端 用户在GMT 2时区选择2021年2月1日 14 00在 UI 中 这与1612
  • 模型驱动表单 - IE11 上的输入占位符问题

    我已将我的应用程序从 Angular 2 x 更新到 Angular 4 0 0 从现在开始 我遇到输入类型文本表单控件的以下问题 在 IE11 上 当接收到焦点时 占位符将被删除 表单控件将设置为 dirty 并将 pristine 设置
  • 如何在重新启动之间保留 GoogleAppEngineLauncher 的本地数据存储?

    我在 Mac OS X 上使用 GoogleAppEngineLauncher GAEL 我的应用程序的数据存储状态在服务器重新启动甚至 GAEL 重新启动之间保持不变 但如果我重新启动 数据存储就会重置 是否有一个设置可以防止此重置 或者
  • 使用 NSComparisonResult 对 CoreData 实体进行排序

    我有这个 distanceSorter h distanceSorter m interface CLLocation DistanceComparison NSComparisonResult compareToLocation CLLo
  • 多个 Vue 实例需要多个 Vuex 模块实例

    我正在将 Vue 集成到表单网站上 这意味着如果页面上有多个表单 我必须创建该 Vue 应用程序的多个实例 所有实例共享同一个 Vuex 存储 我创建了一个 Vuex 模块 以便每个 Vue 实例都可以拥有自己的本地状态 我的主要目标是防止
  • 如何在 Hive 数组中搜索项目?

    我使用 Hive 创建了一个包含以下字段的表 ID 大整数 MSISDN 字符串 天丁 月小号 今年 性别微小 关系状态 TINYINT 教育弦 LIKES AND PREFERENCES STRING 通过以下 SQL 命令填充数据 In
  • 在 JavaFX 客户端中播放 h265 HEVC

    我有一个小型 JavaFX 应用程序可以在 Windows Linux 客户端上播放一些 GoPro 视频 过去我使用的是GoPro 4 我将视频下载到客户端并从本地存储播放 像这样 File file new File AnyVideo
  • 原生 PHP 中具有基本授权的 Soap 标头

    我需要连接到 TeraData SOAP API 该 API 现在需要与登录凭据一起发送授权基本标头 我不知道如何解决这个问题 添加基本 授权标头时 我在 SoapUI 中获得了工作权限 请任何人帮助我直接获取代码 这是 SoapUI 发送
  • 给定一个带有文件名的文本文件,如何在当前目录的子目录中查找文件?

    我在不同的子目录中有一堆具有不同名称的文件 我用这些名称创建了一个 txt 文件 但我无法创建find使用该文件进行工作 我看过关于创建列表的问题 不使用的帖子find 虽然不明白原因 建议 我很难举出一个例子 因为我不知道如何重现目录结构
  • Paypal 与 Google 应用程序引擎-python 集成

    我必须将 paypal 与我的应用程序集成 该应用程序是使用 python 构建在应用程序引擎补丁上的 我在网上搜索并发现 paypal 与谷歌应用程序引擎集成中报告的一些问题 如下所示 http groups google com gro
  • Firebase 的云功能 - getaddrinfo ENOTFOUND

    尝试使用 Paypal 的 API 发出请求PayPal 节点 SDK https github com paypal PayPal node SDK exports requestPayment functions https onReq
  • 致命错误导致没有结果出现(Mysqli)

    我在脚本中遇到此错误 我认为这导致搜索栏无法工作 致命错误 在第 89 行对 web stud xxx Mobile app previousquestions php 中的非对象调用成员函数 bind param 它指向的行是这一行 st
  • 将图标添加到 Visual Studio 代码扩展中的活动栏

    我是 VSC 扩展开发的新手 我从扩展 hello world 开始 我想向活动栏添加一个图标 并在单击它时收到通知 我将这些行添加到 package json viewsContainers activitybar id package
  • React-native Android 仅设置纵向手机否则平板电脑显示横向和纵向

    在这种情况下 我在我的应用程序中遇到了一个小问题 我设置了默认肖像 但现在我想在选项卡中显示肖像和风景 而不仅仅是手机 在手机中仅显示肖像 强制更新为肖像 我点击了此链接 但收到此错误 并且我不明白如何创建文件夹来放置数据 我点击了这个链接
  • 对接口编程,而不是 php 中的实现

    主要设计原则之一是针对接口编程而不是实现 这在 php 或任何其他弱类型语言中是否可能 EDIT 我可能没有把问题写得清楚 我并不是说 php 不能使用接口 它显然可以 我的意思是 针对接口而不是实现进行编程 的设计原则在弱类型语言中是否变
  • 作为服务器和客户端运行应用程序

    我想让我的电脑既是服务器又是客户端 这是我的代码 import java net class tester static int pos 0 static byte buffer new byte 100 static void Clien
  • 如何从数组中的数组中删除空值?

    我正在使用 Google 表格和 Google Apps 脚本 我用过 getRange getValues从工作表中获取用户电子邮件 收到的数组示例 user1 user2 user3 user4 user5 user6 如您所见 每行
  • 在只有 4 个样本和大量特征的情况下进行测试训练分割的好方法是什么?

    我有一个包含四个样本 约 25 000 个特征和两个标签的数据集 它是一个基因计数数据集 分割数据的好方法是什么 当我运行模型时 我得到的准确度为1在训练集上 但是0在验证集上 引导值得尝试吗 Labels 0 1 0 1 X train
  • C# Visual Studio 2008 引用 system32.dll ...如何?

    我需要参考 system32 shell32 dll 因为我使用一些 shell 函数来读取回收站 我尝试了 添加引用 gt COM gt Microsoft Shell 控制和自动化 和 添加引用 gt 浏览 gt 直接转到 system