一些在常规(本地)会话中工作的示例代码:
constructor TForm1.Create(AOwner: TComponent);
begin
inherited;
ChangeWindowMessageFilter(WM_DROPFILES, MSGFLT_ADD);
ChangeWindowMessageFilter(WM_COPYDATA, MSGFLT_ADD);
ChangeWindowMessageFilter(WM_COPYGLOBALDATA, MSGFLT_ADD);
DragAcceptFiles(Handle, True);
end;
destructor TForm1.Destroy;
begin
DragAcceptFiles(Handle, False);
inherited;
end;
procedure TForm1.GetDropFilenames(const ADropHandle: HDROP);
var
I, LFileCount, LLength: integer;
LFilename: string;
begin
LFileCount := DragQueryFile(ADropHandle, $FFFFFFFF, nil, 0);
for I := 0 to LFileCount - 1 do
begin
LLength := DragQueryFile(ADropHandle, I, nil, 0) + 1;
SetLength(LFilename, LLength);
DragQueryFile(ADropHandle, I, PChar(LFilename), LLength);
LLength := Pos(#0, LFileName);
if LLength > 0 then
LFilename := LFilename.Substring(0, LLength - 1);
LogMemo.Lines.Add('Filename Copied To Clipboard: ' + LFilename);
end;
end;
procedure TForm1.WMDropFiles(var Msg: TWMDropFiles);
begin
GetDropFilenames(Msg.Drop);
Msg.Result := 0;
inherited;
end;
i、 e.将一些文件放到应用程序中会导致文件名被添加到备忘录中。
我希望能够让应用程序在远程计算机上运行,并在远程桌面会话中将文件从本地计算机拖动到应用程序中。我只需要它通过拖放操作,并且在本地运行时可以访问文件名;我对文件名的实际操作与此无关。
有人建议,让应用程序以提升的权限运行会让它运行起来,但(对我来说)不行。
远程计算机正在运行Windows Server 2019。
我还需要做些什么来让这件事成功吗?