我需要一个例子,可以让我传递一个参数
例如执行delete.exe /killme.txt
所以它将在重新启动后使用“MoveFile”删除killme.txt.
虽然请不要MS预编译版本,因为它有一个烦人的免责声明,每次运行在不同的计算机上.
解决方法
您将需要
MoveFileEx的P / Invoke声明:
[Flags] internal enum MoveFileFlags { None = 0,ReplaceExisting = 1,CopyAllowed = 2,DelayUntilReboot = 4,WriteThrough = 8,CreateHardlink = 16,FailIfNotTrackable = 32,} internal static class NativeMethods { [DllImport("kernel32.dll",SetLastError=true,CharSet=CharSet.Unicode)] public static extern bool MoveFileEx( string lpExistingFileName,string lpNewFileName,MoveFileFlags dwFlags); }
和一些示例代码:
if (!NativeMethods.MoveFileEx("a.txt",null,MoveFileFlags.DelayUntilReboot)) { Console.Error.WriteLine("Unable to schedule 'a.txt' for deletion"); }