gpt4 book ai didi

windows - 如何使运行时从服务器打开文件列表中删除的 exe(从共享启动)

转载 作者:可可西里 更新时间:2023-11-01 12:53:22 27 4
gpt4 key购买 nike

我需要制作一个将从 Windows 服务器共享启动的 exe。一旦应用程序运行,它就会从服务器打开的文件列表中消失。

例如,我有这个简单的 Delphi 源代码作为测试 - 它编译成一个小的 28k exe 文件,调用时只等待用户输入。当应用程序运行时,它会出现在服务器打开的文件列表中。我已经尝试过 PEFlags 设置 IMAGE_FILE_NET_RUN_FROM_SWAP 和 IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP:

program RunFromShare;
Uses
Windows;

{$APPTYPE CONSOLE}

{$SetPEFlags IMAGE_FILE_NET_RUN_FROM_SWAP} // no exe file open on network share?
{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP}

begin
WriteLn('Waiting for [Enter] key');
ReadLn;
end.

最佳答案

似乎 IMAGE_FILE_NET_RUN_FROM_SWAP(或 IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP)告诉 Windows 它应该将整个 EXE 加载到内存中(由交换文件支持)。这并不意味着它被复制然后从本地磁盘运行,它只是防止以后发生导致访问共享的页面错误(可能在卸载之后;参见这种情况 here )。这反过来意味着,只要共享已连接且文件正在运行,网络共享上的文件仍处于打开状态。

MSDN says this关于 IMAGE_FILE_NET_RUN_FROM_SWAP:

If Image is on Net, copy and run from the swap file.

我会将复制解释为复制到内存,而不是复制到磁盘

因此,如果没有人为您完成工作,您只需自己完成:复制您的文件并运行它:)

关于windows - 如何使运行时从服务器打开文件列表中删除的 exe(从共享启动),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6829315/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com