53822


<https://github.com/mauricef/WindowTabs>

WindowTabsという以前はフリーソフトとしてかなり多くのサイトで紹介されていたソフトウェアを愛用しています。お金も払っていたのですが、いつのまにやらオープンソースになっていました。いくつか改良したい点があります。

起動時のAlignを右にしたいのと、ShrinkTabをデフォルトTrueにしたいとか、常にFlipさせておきたい(Windowの上に出るのではなく下に出したい)、というような結構簡単な改良をしたいのですが、そもそもVS2017ではビルドができていません。

なにか工夫などがあるのでしょうか？  
VSやC#には詳しくありませんので難しく感じています。

具体的なアドバイスができる方、教えていただけたらと思います。

あるいは誰かオプソで改良していってくれないかなと思います。アプリ終了時やGUIダイアログなどで上記のデフォルト設定を記録できたらいいのになと思っています。

すごくマニアックすぎる質問ですいません。


CC BY-SA 4.0
2019-03-27T14:38:39.040
53770
2020-07-29T16:28:13.207
2019-03-28T04:41:56.837
7676
21047
question
c# c++ windows f#
WindowTabs というオープンソースを改良してみたいのですがビルドができません。何か必要なものがありますか？


GitHubリポジトリの中を見ると、複数言語が使われているようです。  
ざっと見た限りでは、以下のようになっていると考えられます。

  * WindowTabs全体 : VS2010
  * treeviewadv : VS2008 C# .NET 2.0? ただし結果のdllのみを使っていてソースは参考用
  * WtSetup : おそらくVS2010 InstallSheild Limited Edition
  * WtProgram : おそらくVS2010 F# 2.0
  * WtLauncher : おそらくVS2010 F# 2.0 ただし Main.fs というファイルが無いかも
  * WtInject : VS2010 C++
  * WtGroup : おそらくVS2010 F# 2.0
  * WtDesktop : おそらくVS2010 F# 2.0
  * Win32 : VS2010 C# .NET 3.5 SP1
  * Settings : VS2010 C# .NET 2.0?

F#はMicrosoft.FSharp.Targetsの1.0と4.0のどちらかがMicrosoft.Build.Tasks.v4.0.dllの有無で選ばれてImportされることと、FSharp.PowerPackの2.0が参照設定されています。

VisualStudio 2017のセットアップおよび拡張機能で、C++,C#,F#,.NET 3.5を使えるようにしておいた方が良いでしょう。(.NET
4.x系はデフォルトで入るでしょう)

"WtSetup"プロジェクトについては、以下の記事にある拡張機能を組み込んでみてください。  
[Visual Studio 2017でSetup.vdprojが開けない時の対処](https://tech.la-
fra.com/2018/11/05/post-403/)

VisualStudioの環境を整えてからプロジェクトを開くと、自動的な変換処理が行われて使えるようになるかもしれません。  
[dsp, dsw, vcproj, vcxproj, slnなど Visual
Studioの拡張子](https://urashita.com/archives/21753)

試してみてください。


CC BY-SA 4.0
2019-03-27T15:46:41.410
53772
2019-03-27T23:28:26.887
2019-03-27T23:28:26.887
26370
26370
53770
answer


WindowTabsを使ったことがないので、ソースコードから読み取っただけの情報ですがまとめます。

### WtSetup

セットアッププロジェクトで`WindowTabs.msi`を生成します。  
このインストーラーに取り込まれるのは[`..\\WtProgram\\obj\\Release\\WindowTabs.exe`](https://github.com/mauricef/WindowTabs/blob/master/WtSetup/WtSetup.vdproj#L778)だけです。（なんで`bin`じゃなく`obj`なんだ…）

なお、出来上がった`WindowTabs.msi`を手直しするスクリプトがJavaScriptおよびVBSで記述されています。今はC#で記述できます。

### WtProgram

[F#言語](https://ja.wikipedia.org/wiki/F_Sharp)バージョン2.0のプロジェクトで`WindowTabs.exe`を生成します。  
このプロジェクトで参照されるのは配下の`*.fs`ファイルと、[この辺り](https://github.com/mauricef/WindowTabs/blob/ec083ee2bb03ddccff3cc7e78c5269a661036fa7/WtProgram/WtProgram.fsproj#L127-L149)の記述により以下の内容になります。

  * `Aga.Controls`
  * `FSharp.PowerPack`
  * `Interop.SHDocVw`
  * `Interop.Shell32`
  * `Newtonsoft.Json`
  * `Win32`

なお、F#コンパイラーには[`--staticlink`オプション](https://docs.microsoft.com/ja-
jp/dotnet/fsharp/language-reference/compiler-
options)があり、[この辺り](https://github.com/mauricef/WindowTabs/blob/ec083ee2bb03ddccff3cc7e78c5269a661036fa7/WtProgram/WtProgram.fsproj#L43)の設定で参照したDLLを全て`WindowTabs.exe`に取り込んでいます。

### Aga.Controls

[TreeViewAdv for
.Net](https://sourceforge.net/projects/treeviewadv/)から取得した`Aga.Controls.dll`で、`treeviewadv/`ディレクトリにソースコードも置かれています。

### FSharp.PowerPack

[F#
PowerPack](http://fsharppowerpack.codeplex.com)から取得したバイナリを開発マシンにインストールしておくことを想定しています。既に開発は止まっていますが[GitHub](https://github.com/fsprojects/zzarchive-
powerpack)に残っていたりします。また今は[NuGet](https://www.nuget.org/packages/FSPowerPack.Community/)で配布されており、コンパイル時に取得する仕組みが用意されています（当時はなかった）。

### Interop.SHDocVw

`Interop.SHDocVw.dll`は[Tlbimp.exe (タイプ ライブラリ
インポーター)](https://docs.microsoft.com/ja-jp/dotnet/framework/tools/tlbimp-exe-
type-library-importer)を用いて`SHDocVw.dll`から生成したメタデータです。

### Interop.Shell32

同様に`Interop.Shell32.dll`は`Shell32.dll`から生成したメタデータです。

### Newtonsoft.Json

[Json.NET](https://www.newtonsoft.com/json)から取得した`Newtonsoft.Json.dll`です。

### Win32

C#言語バージョン2.0くらいのプロジェクトで`Win32.dll`を生成します。

* * *

以下のディレクトリは私の解析が間違っていなければ使用されていない残骸です。

  * Settings
  * WtDesktop
  * WtGroup
  * WtInject
  * WtLauncher
  * treeviewadv


CC BY-SA 4.0
2019-03-28T05:02:42.370
53778
2020-07-29T16:28:13.207
2020-07-29T16:28:13.207
3060
4236
53770
answer


ビルドできる版を[Fork](https://github.com/payaneco/WindowTabs)しました。

既に[redgis](https://github.com/redgis/WindowTabs)さんが`VS2017/.NET
4.0`でコンパイルできるものをフォークしていました。  
それをベースに、日本語対応できるリソースを追加してF#を3.0に上げただけです。  
`Windows 10 64bit`で動作することを確認しましたが、質問にある機能追加は行っていません。

WtSetupは[WiX Toolset build
tools](http://wixtoolset.org/)を別途インストールしないとnugetだけではコンパイルが通りませんでした。  
インストーラーが必要な場合は`WiX Toolset build tools V3.11.1`をインストールしてください。

そもそも手元の環境ではWtSetup.msiを作っても正常動作しなかったので、exeさえあれば良いならばWtSetupをソリューションから除外する方が簡単です。


CC BY-SA 4.0
2019-03-30T06:45:57.927
53822
2019-03-30T06:45:57.927
9820
53770
answer


1年以上も前のものですが、  
payaneco さんのプロジェクトをFORKして、自分もビルドできるようにしました。  
VisualStudio2017コミュニティ版です。

日本語化対応をよりおしすすめてみて、デフォルトタブを右になるようにしました。

standard-software/WindowTabs  
<https://github.com/standard-software/WindowTabs>

Exeフォルダにビルド後のexeも配置しているので、VSがない人でも単にダウンロードして動かすことができるはずです。

他の人もどんどんFORKしているプロジェクトになっているんですね。興味深いです。

<https://github.com/standard-software/WindowTabs/network/members>

大変ありがとうございました。  
これでとてもWindowsの操作性があがります。


CC BY-SA 4.0
2020-07-29T14:10:27.443
69102
2020-07-29T14:10:27.443
21047
53770
answer