//【Form1】如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;namespace WinFormsApp1
{public partial class Form1 : Form{public Form1(){InitializeComponent();}void Init(){this.AllowDrop = true; //设置为允许拖拽}private void listView1_DragOver(object sender, DragEventArgs e){e.Effect = DragDropEffects.All;}private void ListView1_DragEnter(object sender, DragEventArgs e){if (e.Data.GetDataPresent(DataFormats.FileDrop)){e.Effect = DragDropEffects.Link;}else{e.Effect = DragDropEffects.None;}}string str01;//该符号用来标记是否出现错误private void ListView1_DragDrop(object sender, DragEventArgs e){IDataObject ido = e.Data;if (ido.GetDataPresent(DataFormats.FileDrop))       //如果拖动的数据是文件类型{string[] filepaths = (string[])ido.GetData(DataFormats.FileDrop);  //获取文件的路径DirectoryInfo info = new DirectoryInfo(Application.StartupPath);//获取可执行文件exe的路径string exePath = info.FullName;//exe程序所在文件夹Xstring paths01 = Path.Combine(exePath, "bin","output");string batPath = Path.Combine(exePath, "bin");//文件夹X里有个bin文件夹System.IO.Directory.CreateDirectory(paths01);//在bin文件夹里创建output文件夹,如果存在也不会重复创建01DirectoryInfo dir01 = new DirectoryInfo(paths01);dir01.Delete(true);//删除output文件夹System.IO.Directory.CreateDirectory(paths01);//创建onput文件夹,如果存在也不会重复创建01string paths02 = Path.Combine(exePath,"bin", "input");System.IO.Directory.CreateDirectory(paths02);//创建input文件夹,如果存在也不会重复创建02DirectoryInfo dir02 = new DirectoryInfo(paths02);dir02.Delete(true);//删除input文件夹System.IO.Directory.CreateDirectory(paths02);//创建input文件夹,如果存在也不会重复创建02//执行我们想要执行的业务逻辑,读取复制等等。foreach (var item in filepaths){string extension = System.IO.Path.GetExtension(item);//string A = ".pdf";if (String.Compare(extension, A) == 0){FileInfo f = new FileInfo(item);string fname = Path.GetFileName(item);//带扩展名的PDF文件名string paths03 = Path.Combine(paths02, fname);//input路径与PDF文件名合并为新路径paths03f.CopyTo(paths03);//单个文件复制到paths03 ;因为paths03是包含“带扩展名的PDF文件名”的存储路径,故复制的文件不会重命名,文件名与原文件一致                       }else{MessageBox.Show("error!");str01 = "0";}}Process proc = null;try{string targetDir = string.Format(batPath);//需调用的程序 unlockpdf.bat 在目录batPath中proc = new Process();proc.StartInfo.WorkingDirectory = targetDir;proc.StartInfo.FileName = "unlockpdf.bat";proc.StartInfo.Arguments = string.Format("10");//this is argument//调用程序时的参数proc.StartInfo.CreateNoWindow = true;proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;//这里设置DOS窗口不显示,经实践可行proc.Start();proc.WaitForExit();}catch (Exception ex){Console.WriteLine("Exception Occurred :{0},{1}", ex.Message, ex.StackTrace.ToString());}// MessageBox.Show("解除密码完成!");if (String.Compare(str01, "0") != 0){FolderBrowserDialog dilog = new FolderBrowserDialog();dilog.Description = "请选择保存解密结果文件夹";if (dilog.ShowDialog() == DialogResult.OK || dilog.ShowDialog() == DialogResult.Yes){string saveDirPath = dilog.SelectedPath;try{if (!Directory.Exists(saveDirPath)){Directory.CreateDirectory(saveDirPath);}string[] files = Directory.GetFiles(paths01);//获取output文件夹里的所有文件foreach (string file in files){string pFilePath = saveDirPath + "\\" + "Unlocked" + Path.GetFileName(file) ;if (File.Exists(pFilePath))continue;File.Copy(file, pFilePath, true);//将文件保存到选择的文件夹}}catch (Exception ex){MessageBox.Show(ex.Message);}}}}else{MessageBox.Show("error!");}}private void button1_Click(object sender, EventArgs e){Form2 Form = new Form2();Form.ShowDialog();  //弹出窗口2}private void Form1_Load(object sender, EventArgs e){}}
}

注意1:

注意2:
C# Winform程序运行时,界面模糊怎么解决



成果附件:PDFunlocker-2020.zip【PDF密码权限解除】

C#调用Qpdf的界面+拖拽pdf文件到窗口+解除pdf权限密码+另存为相关推荐

  1. 微信电脑客户端不能直接拖拽发送文件

    微信电脑客户端不能直接拖拽发送文件 某次Windows自动更新升级后,微信发送文件不能直接拖拽发送了,解决方法 Windows Registry Editor Version 5.00[HKEY_LO ...

  2. VMware 16安装的Ubuntu18.04 系统,无法在Windows和Ubuntu之间直接自由拖拽复制文件

    本人之前使用的是VM15,安装完 VMware Tools 后就可以在Windows系统和Ubuntu系统之间拖拽复制文件了,但是这次装的Ubuntu 18.04的发现安装完成 VMware Tool ...

  3. 多个PDF文件怎么合并?PDF合并的方法教程

    多个PDF文件怎么合并?在我们的工作中,不可避免的就是将多个PDF文件合并成一个PDF文件,对于经常使用PDF文件的人来讲确实不是什么难事,但是对于一些小白来说就比较困难,那么今天就来仔细讲一讲多个P ...

  4. 计算机加密解除,pdf文件加密怎么解除?解除加密pdf文件的教程

    原标题:pdf文件加密怎么解除?解除加密pdf文件的教程 pdf文件被加密了之后怎么解除呢?很多人为了让文件更加安全,都会给一些重要的文件加密.但是,文件如果是带有密码的话,进行转换.合并或编辑等操作 ...

  5. 如何一键免费压缩PDF文件?最好的 PDF 阅读器免费下载!

    PDF(便携式文档格式)是一种独立于应用程序和平台的通用文件格式.它确保不同的用户可以在各种软件.硬件或操作系统中接收具有相同格式和视觉呈现的相同内容.您还可以在需要时对 PDF 进行电子签名.因此, ...

  6. WinEdt 7.0生成的PDF文件,用Sumatra PDF打开后,一直提示更新Sumatra PDF版本!

    Hello,everyone! 我是鲁班·,一个热衷于科研和软开的胖子! 问题描述 WinEdt 7.0生成的PDF文件,用Sumatra PDF打开后,一直提示更新Sumatra PDF版本,即便更 ...

  7. pdf合到一起java_将多个PDF文件合并/转换为一个PDF

    回答(16) 2 years ago 考虑到 pdfunite 是poppler的一部分,它有更高的安装机会,使用也比 pdftk 简单: pdfunite in-1.pdf in-2.pdf in- ...

  8. Python 实现office单个文件或整个文件夹(word,ppt,excel)转换成PDF文件,并获取PDF文件页数

    Python 实现office单个文件或整个文件夹(word,ppt,excel)转换成PDF文件,并获取PDF文件页数 文件夹中获取需要转换的文件数,将其全部转换或可单独转换单个文件,并获取转成PD ...

  9. 如何将多个PDF文件合并为一个PDF文件?PDF文件合并教程

    如何合并PDF文件?PDF我们都不陌生,很多人经常在网站上搜狐各种类型的PDF资料,但是有时因为资料太多不好管理和查阅,如果可以把同类型的多个PDF文件合并为一个PDF文件,那无论是保存还是查阅,都会 ...

  10. 怎么将几张pdf合并成一张_如何将多个pdf文件合并成一个pdf文件?

    原标题:如何将多个pdf文件合并成一个pdf文件? 我很喜欢使用PDF文件格式,为什么呢?因为PDF具有许多其他电子文档格式无法相比的优点.PDF文件格式可以将文字.字型.格式.颜色及独立于设备和分辨 ...

最新文章

  1. C++中指向类的指针
  2. [ARM异常]-linux中(aarch/aarch64)异常向量表介绍
  3. ms SQL Server表自增字段重置
  4. graal java_使用SparkJava和Graal的本机微服务
  5. Bootstrap 聚合
  6. ES6中修复的5个JavaScript“不良”部分
  7. Coursera课程 Competitive Strategy内容简介
  8. php 操件文件指定编码,(PHP帮助)如果文件中存在特定编号,请执行此操作
  9. 70 行 Go 代码打败 C!
  10. 阿里云ubuntu 创建svn服务器
  11. Linux常用命令介绍(二)——压缩与解压缩命令
  12. erlang使用leveldb
  13. Linux 下完整安装ffmpeg(包括各种解码器)
  14. Unity性能优化之Resources System
  15. 前端单点登录(SSO)
  16. 好刊邀稿:【MDPI 出版社】2区SCI,领域广,2-3个月左右录用
  17. android时钟计时器代码,android的Handle计时器实现代码
  18. 【文件管理】-如何规范文件及文件夹命名
  19. matlab 分水岭法,分水岭算法Matlab实现——三种方法 | 学步园
  20. 安装与配置VMware虚拟机 https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html

热门文章

  1. 蓝桥杯省赛考点_如何评价2018第九届蓝桥杯省赛?
  2. 100套PPT模板用于论文答辩、工作方案等
  3. cocos2dx 手游luac 解密 文件的key
  4. 直方图规定化(匹配)
  5. 【数字图像处理】直方图规定化(含实现代码)
  6. Linux下ALSA驱动分析
  7. ActiveMQ 下载历史版本
  8. 【琐碎】element-wise multiplication
  9. Matlab uicontrol 用法
  10. Cadence每日一学_01| Cadence、Allegro、OrCAD都是什么东东?