らぶデス海茶3去码补丁.

这篇博客介绍了如何在C#中实现跨进程文件拖放操作,特别是在一个名为らぶデス海茶3的应用中,通过利用WM_DROPFILES消息和处理DROPFILES结构。作者详细讲解了如何处理DROPFILES结构,如何进行跨进程内存读写,并展示了如何控制远程进程中ListView的CheckBox状态和获取Name列的内容。
摘要由CSDN通过智能技术生成

闲着没事干就做了这么个东西.

第一次在C#里用了这么多跨进程的窗体操作.

还是学到不少东西.

 

らぶデス3的手动去码流程如下:

先去网上找到ODFConvertor.

 

然后进入游戏目录的ODF下,将所有的*_base_HI.odf找出来,

用ODFConvertor打开它,将*_moz的勾选去掉后再导出得到一

个!*_base_HI.odf然后用这个新文件替换掉旧文件即可.

 

ODFConvertor有个地方很讨厌:他只能用文件拖拽的方式打开odf

文件.于是我事先设想的模拟几个按钮单击就搞定的方法是没戏了.

 

于是我开始去MSDN啃那提到就让我头痛的OLE...结果看了一晚没啥结果.

到处都找不到得到对方窗体的IDropTarget的方法.倒是在Shell编程的资料

里查到一条WM_DROPFILES的消息...可是看到那个HDROP是个形似句柄

的东东,马上就放弃去睡觉了.

 

第二天上网问了下清洁工...结果他帮我在csdn google出了一篇用WM_DROPFILES

模拟文件拖拽的文章(囧...为啥我google半天没找到?)原来那个所谓的HDROP其实

就是指向一个DROPFILES结构的指针...囧.要是早知道就好了.

 

接下来就是选语言了.csdn那篇文章是用c++写的.按说这种涉及大量api调用的东西

还是C++比较顺手,但是一想到C++那繁琐的UI编写我马上就放弃了.最后还是选择了

最常用的C#.

接下来就是考虑在C#中实现跨进程的操做了.

思路如下:

Shell文件的拖拽处理事实上是在窗体过程中处理了WM_DROPFILES消息.

接受到的参数HDROP是一个指向DROPFILES的指针.DROPFILES的C++声明如下:

 

 

我在C#里声明的时候把它改了一下:

 这样我可以少声明一个不用的POINT结构,只要保证大小不变就好:)

 

然后就是这个指针的问题了.我自己的进程里分配的DROPFILES拿给目标进程是肯定没用的.

自然要涉及到跨进程的内存读/写;于是需要以下API:

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值