Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
livewing committed Oct 25, 2016
2 parents eed974d + d5fbec1 commit a4e65e2
Show file tree
Hide file tree
Showing 6 changed files with 69 additions and 11 deletions.
19 changes: 19 additions & 0 deletions CtrlLauncher/Models/AppInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,25 @@ public void Start(Action timeoutHandler)
d.Dispose();
};
}

IDisposable dispose = null;
var o = Observable.Timer(TimeSpan.FromMilliseconds(100), TimeSpan.FromSeconds(1)).Where(_ =>
{
try
{
return !process.HasExited;
}
catch
{
if (dispose != null)
dispose.Dispose();
return false;
}
});
dispose = o.Subscribe(_ =>
{
Utils.SetForgroundWindow(process.MainWindowHandle);
});
}

public void OpenDirectory()
Expand Down
4 changes: 2 additions & 2 deletions CtrlLauncher/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -51,5 +51,5 @@
// すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を
// 既定値にすることができます:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.6.0")]
[assembly: AssemblyFileVersion("1.0.6.0")]
[assembly: AssemblyVersion("1.0.7.0")]
[assembly: AssemblyFileVersion("1.0.7.0")]
8 changes: 8 additions & 0 deletions CtrlLauncher/Utils/Utils.cs
Original file line number Diff line number Diff line change
Expand Up @@ -274,5 +274,13 @@ public static IntPtr GetIconHandle(string path)
if (hSuccess == IntPtr.Zero) return IntPtr.Zero;
return shinfo.hIcon;
}

public static bool SetForgroundWindow(IntPtr hWnd)
{
if (Win32.IsIconic(hWnd) != 0) Win32.ShowWindow(hWnd, Win32.SW_RESTORE);
if (Win32.SetWindowPos(hWnd, Win32.HWND_TOPMOST, 0, 0, 0, 0, Win32.SWP_NOMOVE | Win32.SWP_NOSIZE | Win32.SWP_SHOWWINDOW) == 0)
return false;
return true;
}
}
}
31 changes: 31 additions & 0 deletions CtrlLauncher/Utils/Win32.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,5 +47,36 @@ public static extern IntPtr SHGetFileInfo(
uint cbSizeFileInfo,
uint uFlags
);

public static readonly IntPtr HWND_TOPMOST = new IntPtr(-1);
public const uint SWP_NOSIZE = 0x1;
public const uint SWP_NOMOVE = 0x2;
public const uint SWP_SHOWWINDOW = 0x40;

[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int SetWindowPos(
IntPtr hWnd,
IntPtr hWndInsertAfter,
int x,
int y,
int cx,
int cy,
uint uFlags
);

[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int IsIconic(
IntPtr hWnd
);

public const int SW_SHOW = 0x5;
public const int SW_SHOWNORMAL = 0x1;
public const int SW_RESTORE = 0x9;

[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int ShowWindow(
IntPtr hWnd,
int nCmdShow
);
}
}
12 changes: 6 additions & 6 deletions doc/for-administrators.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
# 作品をまとめて展示する

## 1. CTRL Launcer をダウンロードする
[Releases](https://github.com/gssequence/CtrlLauncher/releases) から CTRL Launcer をダウンロードします。
## 1. CTRL Launcher をダウンロードする
[Releases](https://github.com/gssequence/CtrlLauncher/releases) から CTRL Launcher をダウンロードします。

## 2. zip ファイルを解凍する
提出された zip ファイルを解凍します。

## 3. ディレクトリを配置する
`CtrlLauncer.exe`と同じディレクトリに`Data`ディレクトリを作成し、以下のように作品を配置します。
`CtrlLauncher.exe`と同じディレクトリに`Data`ディレクトリを作成し、以下のように作品を配置します。

```
CtrlLauncer
CtrlLauncer.exe
CtrlLauncher
CtrlLauncher.exe
┣ *.dll
┣ Data
┃┣ 作品1
Expand All @@ -29,4 +29,4 @@ CtrlLauncer
```

## 4. 表示・起動を確認する
`CtrlLauncer.exe`を起動し、作品の表示・起動を確認します。
`CtrlLauncher.exe`を起動し、作品の表示・起動を確認します。
6 changes: 3 additions & 3 deletions doc/for-creators.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@
```

## 3. spec.yml ファイルを作成する
CTRL Launcer に表示される情報を定義する`spec.yml`ファイルを以下の`3.1.`もしくは`3.2.`の方法で作成します。
CTRL Launcher に表示される情報を定義する`spec.yml`ファイルを以下の`3.1.`もしくは`3.2.`の方法で作成します。

### 3.1. CTRL Launcher を使用して作成する (推奨)
1. [Releases](https://github.com/gssequence/CtrlLauncher/releases) から CTRL Launcer をダウンロードします。
2. ダウンロードした zip ファイルを適当な場所に解凍し、 **Shift キーを押しながら** `CtrlLauncer.exe`を実行します。
1. [Releases](https://github.com/gssequence/CtrlLauncher/releases) から CTRL Launcher をダウンロードします。
2. ダウンロードした zip ファイルを適当な場所に解凍し、 **Shift キーを押しながら** `CtrlLauncher.exe`を実行します。
3. メニューの`ツール(T)``spec.yml ファイルの生成(S)...`をクリックします。
4. `ターゲットディレクトリ`に、`2.`で作成したディレクトリ(`(A)`のディレクトリ)を指定します。
5. `アプリケーション ID`に、アプリケーションを一意に識別できるIDを入力します。
Expand Down

0 comments on commit a4e65e2

Please sign in to comment.