Win8

アクセス権設定で"ALL APPLICATION PACKAGES"アカウントを指定すると例外発生

以下は「指定されたフォルダにアクセス権が付与されているアカウントを列挙し、それをそのまま再設定する」という単純なC#のプログラムですが、 using System; using System.IO; using System.Security.AccessControl; using System.Security.Principal; nam…

Windowsディスクイメージ書きこみツールの落とし穴

今回も自分がつい最近ハマった小ネタ。 Window7以降、OSの標準機能としてCD/DVDへのイメージ書きこみツールが付属していますが、先日Windows8.1でISOイメージをDVDに書きこもうとしたら、 という感じでDVDドライブを全く認識してくれません。 なんでだろう、…

イントラネットのWebサイトをWin8ライブタイルに対応させる

WebサイトをWindows8のライブタイルに対応させるには、そのサイトがRSSを出力しているのであれば、 Create a Windows 8.1 tile for your site - Build My Pinned Site を使えばほんの数分で可能ですが、これで生成されるbrowserconfig.xmlのNotificationは <notification> <polling-uri src="http://notifications.buildmypinnedsite.com/?feed=http://www.example.jp/rss.xml&amp;id=0"/> </polling-uri></notification>

Windows8.1のバージョン番号(2)

バージョンチェックが必要なのは多くは古いアプリで「未知のOSで動かすと何が起こるかわからないから起動時にバージョンチェックをしている」というパターンがほとんどだと思うので、一部とはいえプロセスの挙動が変わるCompatibility Manifestの導入には慎…

Windows8.1のバージョン番号

以前の検証でもう一つ気になっていたバージョン番号の件。 Win8.1Previewでは8.2.9200というWin8と全く同じ値を返していましたが、あくまで「プレビューだから」だろうと思っていました。ところがWin8.1RTMで検証したところ、やっぱり8.2.9200という値が。 …

Windows8.1RTMでローカルアカウントを作る方法

すったもんだのうえ結局MSDN/TechNetに事前公開されることになったWindows8.1RTMにて、以前に検証して気になっていた件を再検証してみました。まずは、Win8.1Previewでは「事前にネットワークから切り離しておく」という裏ワザ的な方法でしか作れなかったロ…

fondueでWin8の.NET3.5機能を有効化する

Windows8に.NET3.5をインストールしようとすると、 「プログラムと機能」-「Windowsの機能の有効化または無効化」からWindows Update経由でインストール dism.exeでインストールメディアからオフラインインストール のいずれかになるわけですが、前者はユー…

Windows8.1プレビュー小ネタ

ISOイメージからインストールした場合、アカウント設定でMicrosoftアカウントを登録しないと先に進めないように見えますが、事前にネットワークから切り離しておけばローカルアカウントの作成画面に遷移します。 現時点でのGetVersionEx() Win32API及びSyste…

C#のプログラムでWin8のデスクトップ操作を改善(2)

前回の続き。 keybd_event()をSendInput()に置き換えても結果は同じ(Win+Xだけ実行できない)なので「使用しているAPIが古いから」といった類の理由ではないようです。 仕方がないので「画面の左下にあるホットスポットを右クリックする」ことでその代用と…

C#のプログラムでWin8のデスクトップ操作を改善(1)

「スタートボタン」がUI的に完璧だったかと言えば決してそうではないでしょう。ですが、デスクトップに限って言うとスタートボタンが無くなったことにより不便になった操作は確実に存在します。 それはシャットダウンであったり、コントロールパネルの呼び出…

C#のプログラムで自分自身をPin止めする(5)

前回のAppUserModelIDが設定できたように見えてもWin8でアイコンが分裂する問題は未解決ですが、その後もいろいろ調べていたら新たに2点ほどわかったことがありました。その1. C#のプログラムで自分自身をPin止めする(1) それでも#if falseでくくったほうの…

C#のプログラムで自分自身をPin止めする(4)

C++でSystem.AppUserModel.IDを設定できるのであれば、それと同じことをC#でやればいいのです。 実際そういうアプローチで既に実践している人はいて、たとえば AppUserModelIDをC#から操作する なんかはC#からIShellLink I/FをCOMで操作する方法で実現してい…

C#のプログラムで自分自身をPin止めする(3)

良く考えればそうなのですが、タスクバーにPin止めされているだけの状態ではプログラムは実行されていないわけですから、プログラムでAppIDを指定したところで有効になるわけがないのです。 では、その状態でのAppIDは何が使われているか?答えは 「Pin止め…

C#のプログラムで自分自身をPin止めする(2)

前回の続き。 いろいろ調べていくとタスクバーアイコンのグループ化には「アプリケーションID(AppID)」が関係しているということがわかりました。 Windows API Code Packによるアプリ開発 第10回 Windows 7 タスクバー 〜アプリケーション ユーザー モデル I…

C#のプログラムで自分自身をPin止めする(1)

Windows7からサポートされ、またWindows8ではこの機能の利用を前提にスタートボタンが廃止されることとなった「タスクバーへのPin止め」機能をC#のプログラムから実行してみます。 Pin止めのためのAPIは公開されていませんが、既に先人たちがいろいろと調査…