如题:
如何得到copy动作的进程ID,
比如:我在记事本中 copy一些文字,我想得到这个记事本的进程ID
我在word中 copy一些文字,我想得到这个word的进程ID
如何得到copy动作的进程ID,
比如:我在记事本中 copy一些文字,我想得到这个记事本的进程ID
我在word中 copy一些文字,我想得到这个word的进程ID
解决方案 »
- 關於程序打包的問題
- 有谁知道为什么FastReport的TotalPages为什么总显示0,这不是总页数吗。
- 有关指针的问题
- 有谁用过Delphi7里面的TSMTPServer组件啊?最好有简单例子。
- 有关XPMENU的问题
- 谢谢 wangqiang75,帮了我的大忙,wangqing75请进加分
- 如何让dbgrid可以多行选择?
- 本周话题(二),偶的算法、数据结构学的不好(数学差),除了数据库之外,还能作哪些开发方向?
- 求助,有关PChar无法释放的错误,请大虾帮忙!
- 急急急!!!--这个问题怎样处理?
- SQL成批赋值问题?
- clientdataset过滤后在客户端使用RecordCount显示只有一条,把cds.xmldata赋值到data后提交到服务器端,却显示RecordCount是没有过滤前的
以下是常用的对剪贴板操作的api 可是,没有一个能和进程相关的(一)ChangeClipboardChain 将剪贴的连接从一个句柄转到下一个句柄。
(二)CloseClipboard 关闭剪贴板。
(三)CountClipboardFormats
(四)EmptyClipboard
(五)EnumClipboardFormats
(六)GetClipboardData
(七)GetClipboardFormatName
(八)GetClipboardOwner
(九)GetClipboardSequenceNumber
(十)GetClipboardViewer
(十一)GetOpenClipboardWindow
(十二)GetPriorityClipboardFormat
(十三)IsClipboardFormatAvailable
(十四)OpenClipboard
(十五)RegisterClipboardFormat
但现在很多程序都钩不住了。如果可靠性要求比较高的话,还是写个驱动吧。
spy++就是用这样时间的。
参考如下代码:
uses PsAPI;procedure TForm1.Button1Click(Sender: TObject);
var
vOwner: THandle;
vProcessId: THandle;
vProcess: THandle;
vBuffer: array[0..255] of Char;
begin
vOwner := GetClipboardOwner();
if vOwner = 0 then Exit;
GetWindowThreadProcessId(vOwner, vProcessId);
vProcess := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ,
False, vProcessId);
GetModuleFileNameEx(vProcess, 0, vBuffer, SizeOf(vBuffer));
Caption := vBuffer;
end;