2012-05-16 136 views
-2

我想是守望,直到myfile.fla关闭不将Flash.exe

我想等到myfile.fla关闭不将Flash.exe

我如何能赶上myfile.fla的情况下关闭未将Flash.exe
在C#捕捉事件

' Open the notepad application 
     info.FileName = "Flash.exe" 

     ' Pass a text file name so that notepad will open it 
     info.Arguments = "c:\MyFile.fla" 
     process.StartInfo = info 

     ' Start the process (notepad) 
     process.Start() 
+3

ammm ...什么...? – shift66

+0

你的问题没有道理。使用记事本时,关闭文件与关闭记事本非常相似;除非你在同一个记事本实例中打开另一个文件,这将会关闭以前打开的任何文件 - 但是这个事件不能从记事本本身之外“捕获”(合理)。你最好问自己想要达到什么目的(而不是如何)。 –

+0

你想检测文件更改吗?如果是这样,请检查[FileSystemWatcher](http://msdn.microsoft.com/zh-cn/library/system.io.filesystemwatcher.aspx)类。 –

回答

0

(编辑:用户改变了他的问题之前,从记事本到Flash这个答案写叹息


因为记事本不支持自动化,没有“官方支持”的方式来做到这一点。

可能能够得到一些黑客,例如,通过检查是否仍有上的文件(如果记事本中的一些锁不断地检查记事本的应用程序标题或

    • 以某种方式锁定文件,我不知道)。

    不过,该解决方案可能会相当难看,需要Windows API调用。也许如果你详细说明你想要解决什么问题,可以提出一个替代解决方案。

  • +0

    声音不错提升一些想法不断检查应用程序标题和如果方式应用程序锁定文件。如果你知道更多关于这个,请ping我链接 – user1393091

    +0

    嘿,我正在检查应用程序标题,但它的工作一段时间它不起作用应该是什么问题? – user1393091

    0

    我可以使用保持在窗口标题表下面的代码

    公共静态无效的主要(){ 的IntPtr HWND = UnsafeNativeMethods.FindWindow( “记事本”,NULL); StringBuilder stringBuilder = new StringBuilder(256); UnsafeNativeMethods.GetWindowText(hwnd,stringBuilder,stringBuilder.Capacity); Console.WriteLine(stringBuilder.ToString()); } } [SuppressUnmanagedCodeSecurity] 内部静态类UnsafeNativeMethods { [的DllImport( “USER32.DLL”,SetLastError =真,字符集= CharSet.Auto)] 内部静态外部INT GetWindowText函数(的IntPtr的HWND,[OUT]的StringBuilder lpString,int nMaxCount); [DllImport(“user32.dll”,SetLastError = true)] 内部静态extern IntPtr FindWindow(字符串lpClassName,字符串lpWindowName);

    }