Pet*_*zki 8 windows delphi exe
我需要创建一个将从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.
Run Code Online (Sandbox Code Playgroud)
看起来IMAGE_FILE_NET_RUN_FROM_SWAP(或IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP) 告诉 Windows 它应该将整个 EXE 加载到内存中(由交换文件支持)。这并不意味着它被复制然后从本地磁盘运行,它只是防止稍后发生页面错误,从而导致对共享的访问(可能在卸载之后;请参阅此处的这种情况)。这反过来意味着,只要共享连接并且文件正在运行,网络共享上的文件仍然处于打开状态。
MSDN 是这么说的IMAGE_FILE_NET_RUN_FROM_SWAP:
如果映像位于网络上,请从交换文件复制并运行。
我将复制解释为复制到内存,而不是复制到磁盘。
因此,如果没有人为您做这项工作,您只需自己做:复制您的文件并运行它:)
| 归档时间: |
|
| 查看次数: |
1910 次 |
| 最近记录: |