using System.Text;
using System.Windows.Forms;
using System.IO;
+using System.Linq;
+using System.Runtime.InteropServices; // for DllImport
namespace fusen
{
Close();
}
+ [DllImport("user32.dll")]
+ extern static IntPtr GetWindow(IntPtr hWnd, uint uCmd);
+
+ [DllImport("user32.dll")]
+ extern static IntPtr GetForegroundWindow();
+
private void writeFusen()
{
+ List<FusenForm> fusenFormList = new List<FusenForm>();
+ const int GW_HWNDNEXT = 2;
+ IntPtr hwnd = GetForegroundWindow();
+ while (hwnd != IntPtr.Zero) {
+ FusenForm f = (FusenForm)this.OwnedForms.FirstOrDefault(e => e.Handle == hwnd);
+ if (f != null)
+ fusenFormList.Add(f);
+ hwnd = GetWindow(hwnd, GW_HWNDNEXT);
+ }
+
+ fusenFormList.Reverse();
List<Fusen> fusenList = new List<Fusen>();
- foreach (FusenForm fusenForm in this.OwnedForms) {
+ foreach (FusenForm fusenForm in fusenFormList) {
Fusen fusen = new Fusen();
fusen.Text = fusenForm.getMemo();
fusen.Left = fusenForm.Left;