ページ

2012年8月24日金曜日

◆OUTLOOK2010 メッセージ本文のフォントを変更する

通常のテキストメールのフォントを変更する。

なんてことが簡単にできないOUTLOOK

どうもMS製品のGUIはアプリケーションによってばらつきが大きい。

VisualStudioのように納得の製品もあれば、悪名高きWordの様に開いた口が塞がらない製品もある。
OUTLOOKは当然後者だ。

なんどバージョンアップを重ねても、その設定の複雑怪奇ぶりは一向に改善の兆しすら見せない。

 

  1. ファイル
    image
  2. オプション
    image
  3. メール
    image
  4. ひな形およびフォント
    image
  5. テキスト形式のメッセージと読み込み
    image

◆Windows8 ランチャー環境を設定する

Next7としてWindows8を使うには、ある程度環境をカスタマイズしておいた方が違和感なく使える気がする。

Windowsキーを押して表示されるスタート画面は、これまでの7の物と比べると、階層表示がされない分、数が増えると探しづらいかもしれない。

とりあえずは、これまでの「スタート」フォルダをツールバーとして表示させておこう。
(Windows7時代からあった機能だが7では余り必要を感じなかった。)

  1. 「タスクバー」を右クリックして表示されたメニューから「ツールバー」「新規ツールバー」を選択
    image
  2. 表示されたフォルダー選択のダイアログにて以下の場所を指定する。
    「C:\ProgramData\Microsoft\Windows\Start Menu\Programs」
    image
  3. 「タスクバー」に「プログラム」フォルダーが表示される。展開すると以下のようになる。
    image

ツールバーには予め用意されているものもあるので「デスクトップ」あたりは表示しておくと良さそうだ。

  1. 上記と同様に「ツールバー」を表示させ、「デスクトップ」を選択
    image
  2. 個人用のフォルダやコントロールパネルを表示してくれる
    image

また、こいつの設定をちょっと変えると以前の「クイックランチ」としても使える。

  1. 適当なフォルダに「クイックランチ」に表示したいショートカットを作っておく。(ここではシャットダウンや再起動などを用意した)
    image
  2. 「プログラム」の時と同様に新規ツールバーを選択
    image
  3. 「フォルダ選択ダイアログ」に用意したフォルダを指定する。
    タスクバーはこんな表示になる。
    image
    ちなみに、設定が固まるまではタスクバーは固定しないほうが良いと思う。
    image

  4. この状態で使うのも「あり」だが、コンパクトに表示するには名前を表示しない設定にもできる。
    以下を右クリックして
    image
    表示されたメニューから以下の2つのチェックをはずす。
    image

  5. アイコン(ショートカット)だけが直接表示される。
    image

使用頻度とその性質に応じて、タスクバーへのピン留め、ツールバー、クイックランチ、っと3段階に使い分ければ標準機能だけでもWindows7の時と同程度の使用感にはなりそうだ。

2012年8月23日木曜日

◆Windows8 Defender

Windows8からはマルウエア対策だけでなく、ウィルスにも対応したのだとか。

エッセンシャルズの方が高機能?
市販品はもっと高機能?

何を基準に選べばよい?

私には判らない・・・・。

実際ウィルスに感染したことが無いのだから判るはずがない。
ましてやコンシューマユーザーおや。

ちなみに、Defenderはプロキシー環境ではお約束のWinhttpでのプロキシー設定が必要な感じ。(その後再起動も必要だった)

◆Windows8 消えない「Windows.old」

Windows8のインストール時にネットワークカードの認識がうまくいかず、一度再インストールを行ったせいで「Windows.old」フォルダができてしまった。

それ自体は何も問題ないのだが、このフォルダ、以前は簡単に消せた記憶があるのだが(XPの頃かVistaの頃か7の頃かは覚えていないが)、単純に「Del」では消えなくなっている。

権限が無いのだとか。

フルコントロールをつけてもダメ。
しからばと、所有権を取得してみる。
しかし、「xxxからアクセス許可をもらう必要があります」とか意味不明なメッセージ。
ちなみに、「xxx」は今ログオンしている自分のID
なぜにこんな意味不明の仕様にしてしまうのか・・・・。

調べてみると、「ディスククリーンアップ」を使うのだとか。
Windows.old フォルダーを削除するにはどうすればよいですか。

どうしてそこまで複雑にする・・・。┐( ̄ヘ ̄)┌  

◆Windows8 消えたデスクトップ

いつの間にかスタートメニューから「デスクトップ」が消えてしまった。

こんなやつ。
image

何かの設定の影響を受けたのか・・・・。
さっぱり判らない。
「Windows」キーや、「Windows + D」を使えば良いので特に不便はないのだが気になる。

調べてみたが情報が無いなぁ・・・。
1件だけ質問を見かけたが、アプリケーション検索でデスクトップを探してピン留めしろって回答だった。
検索しても見つからないのよね・・・。


暫定的に力技で回復。(そのうち何か情報が出てくるでしょ)

  1. 適当なところで右クリックして「新規作成」「ショートカット」
    image
  2. 項目の場所欄に以下を指定して「次へ」
    explorer.exe Shell:::{3080F90D-D7AD-11D9-BD98-0000947B0257}
    image
  3. 適当な名前(ここではデスクトップ)を付けて「完了」
    image
  4. 出来上がったショートカットを右クリックして「スタートにピン留め」(気の利いたフォルダアイコンに変更して置いても良い)
    image
  5. スタート画面に「デスクトップ」アイコンが表示されるので適当な場所にドラッグして位置を変更する。
    image

これで機能的にはほぼ同等となるが、大きなタイルサイズでは表示できない、デスクトップの壁紙がタイルに表示されない、といった細かな違いがある。
きっと本来はデスクトップを表示するという旧称メトロアプリなのだろうが、今のところ名前や場所が判らない・・・。


ふと思い立って、以前からあるトラブルシューティングツールのシステムファイルチェッカーを試してみた。

コマンドプロンプトを管理者として実行し、「sfc /scannow」

すると、以下のようなメッセージが表示されてなんとなく修復された感じ。
image

「Win + Q」でデスクトップを検索してみると
image

と復活してくれた。

めでたしめでたし。

2012年8月22日水曜日

◆Windows8 再起動にやけに時間が掛かる

Windows8の環境設定をしているのだが、なぜか再起動に時間が掛かるのに気が付いた。
起動は普通なのだが、落ちるのに時間がかかっている。
早くて40秒、遅くて5分くらい。
遅すぎる。
せっかくSSDを買って新OSを入れたのに、これではがっかりだ。

ネットワークドライバーのインストールで若干トラぶったのでその影響かと思い、NICを無効にしてから再起動すると10秒程度で落ちる。

ドライバーを入れなおしたりしても変わらず。

これだけ時間がかかるということは何かがタイムアウトしているのよね・・・。
タイムアウト時間を縮めるなんてのも考えられるが本質的解決ではない・・・。

なにがタイムアウトしているのかイベントビューワを探ってみる。
すると以下のようなエラーが発生していた。
image

DCOMって事はやっぱりネットワーク関係よね・・・。

ネットを彷徨っていると、NICのオートネゴ問題が原因の場合もあるとの情報を見つけた。
未だにそんな問題あるのかぁ・・・っと思いながら100Mの全2重固定にしてみる。
image

 

ビンゴ!!

エラーは出なくなり、15秒で落ちるようになった。

めでたし、めでたし。

◆Windows8、IMEがONで起動してしまう


ん~、なぜそんなデフォルトにしてしまったのか・・・。

せめてセットアップ時に選択させる位の気遣いがなぜできないのか・・・。

起動時OFFに変更するには以下にある手順を行うと良いらしい。
Windows 8起動時にIMEがオンになっている::Windows 8

簡単に説明すると。

  1. コントロールパネルを開く
    開き方がわからない場合は、
    ・「Windowsキー + R」で「ファイル名を指定して実行」を開く
    ・「shell:controlpanelfolder」と入力しOKボタンクリック
  2. 「時計、言語、および地域」で「入力方法の変更」をクリック
    image
  3. 「言語」画面で「詳細設定」をクリック
    image
  4. 「詳細設定」画面の「入力方式の切り替え」で「アプリウインドウごとに異なる入力方式を設定する」をチェックする。
    image

こんな設定、普通は絶対判らないなぁ。

2012年8月21日火曜日

◆ひどすぎるぞ富士フィルム

今日は娘の誕生日。
最近使っていなかったMTG Blog: ◆デジカメを買うで買ったデジカメを取り出す。
しばらく放置していたので充電が切れているのかまったく反応しない。(><)

仕方ないので別のカメラを使い、後で充電。
っと充電したのだが相変わらず無反応。

ん~、もう壊れたの?

何もせずに壊れるかね・・・・。

ありゃ、このバッテリーって逆にも挿さる。(ん?これって標準語?挿せるが正しい?)
動いた!!

ん~、この時代に逆挿しできる製品なんてものが世の中に存在するの?

かな~り信じ難い。というか呆れる、というか、ありえない・・・。

ひどずぎるぞFinePix。

2度と富士は買わない!!前回も書いたが、大失敗だ!!史上最低!!

2012年8月18日土曜日

◆Windows8 has com

いよいよWindows8のダウンロードが始まった。

Windows8自体は「Surface」のようなハードが出てからじゃないと7との違いはあまり実感できないと思うのだが、とりあえずPowerShellの新バージョンが使いたいので適当なPCを見繕ってインストールしてみた。(まだ環境設定はあまり終わっていない)

1台目はネットワークをつながずにインストールしたのが災いしたのかNICを認識しない。(デバイスマネージャでエラーになる)

やむなく手動でドライバーを入れてみるがどうにもこうにもうまくいかない。
Windows8用のドライバーが落ちているはずもないので7用とかVista用とか入れてみるもエラーのまま。

再インストールなども行い2、3時間格闘して、半分あきらめかけていたところデバイスの削除と再起動でいつの間にか認識してしまった。
再インストールで変わらなかったものがデバイスの削除でうまくいくような気もしないので、適当に突っ込んだドライバーが功を奏したのか・・・・。
古いPCだし、最近はめっきりハードには興味がないのでとりあえず良しとする。

自宅に戻って自宅の古いPCにも入れ始める。
こちらはXGAでしか表示されない。
ドライバーを探すも、そもそもこのカードって何?ってな状態で右往左往。
なんとなく調べるとNvidiaのFX5200系?
適当にドライバーを入れて事なきを得る。

古いPCなので止せば良いのにスリープがしたくなる。(最近使っているPCはすべてスリープで使っているので)
メニューからのスリープではHDDは停止するもCPUファンもケースファンも回りっぱなし。
やむなくコマンドでスリープさせる。
「C:\Windows\System32\rundll32.exe PowrProf.dll,SetSuspendState」
こちらはスリープ状態が若干異なると聞いていたのだが、案の定うまくファンが止まってくれた。(ハイブリッドになるならないとかだったような・・・・)

スリープはしたのだが、マウスとかでは復帰してくれない。
仕方がないので電源ボタンをON。
すると驚いたことにBIOSが上がってくる。
あれ、シャットダウンされちゃったの?っと思ってみていると、ちゃんと前回状態に復帰した。
へぇ、最近はこんな風になるの?と思いつつも、古いPCでのスリープ絡みはいろいろと難しいので追及はしない。

で、めでたしめでたしかと思うとNICが復帰してくれない。
駄目じゃん。
有効無効を切り替えてあげれば復帰するが、毎回やるのは面倒でしょう。
image

仕方がないので、PowerShellスクリプトでスリープ復帰イベントを拾って自動化することに。
スリープ解除イベントは以前も使っているのですぐにできそう。
PowerShell: ◆スリープ(Sleep)解除イベントを拾う

スクリプトを作ってスタートアップに入れてOK

っと思ったのだが、実行されない。

Windows8ってスタートアップが実行されないの?
っと色々調べてみるも、実行されるものとされないものとあったり・・・。
組み合わせの影響を受ける?
っと嵌りまくって????

一晩悩んだが、どうも「管理者として実行する」が引っかかっているような感じ。
そもそも7ではUACを切っておけば「管理者として実行」されたのだが、8では明示的に「管理者として実行」する必要がある。

「スタートアップ」自体、8では全面に出ていないのであまり使わない想定?
仕方がないので「タスクスケジューラ」に変更。
最近のタスクスケジューラは高機能なので「スタートアップ」はお役御免なのかも、っと思いつつ「タスクスケジューラ」を探したのだが、なぜか出てこない。(タスクマネージャしか出てこない)
image

きっとアプリケーションって位置づけじゃないのね。(でも7なら出てきたのにぃ・・・)
これまた仕方がないので「taskschd.msc」で起動。

結局のところ、Windowsを使う「こつ」はGUIに頼らないことなのかも知れない。
覚えるのはちょっと面倒だが、バージョンが変わってもずーと使えるものね!!

「管理者として実行」をタスクで実現するには以下の設定を行う。
image

また、タスクスケジューラは実行条件を各種指定できるので、PowreShellでスリープ復帰イベントを拾うのではなく、こちらの機能を使った。
スリープ復帰時、イベントがログに出力されているようなのでそれを拾う指定とした。
image

「操作」はこんな感じ。
image

引数は「-windowstyle hidden -file "C:\Users\minminnana\Documents\PS\ネットワークアダプターをリセット.ps1"」としている。

スクリプトは以下を参照。
PowerShell: ◆ネットワークアダプター(NIC)をリセットする

2012年8月7日火曜日

◆SilverlightでHello World

世の中のメインストリームからはすっかり落ちこぼれた感のあるSilverlightで今更ながらHello Worldしてみる。

個人的には、メインストリームから落ちこぼれたが故に枯れた技術になって社内向けシステムなどに安心して使えるツールになるのではないかと期待している。(なにせこれまではバージョンアップが早すぎて環境が落ち着かず動かすだけで四苦八苦していた・・・)

なにも難しい所はないのだが、IISとかほとんど良く分かっていないのでIISでホストするあたりで迷ってしまった。
きっと基本的な問題すぎて資料があまり見当たらない(^^;

 

環境は、VisualStudio2010(C#),Silverlight5,Windows7のIIS

 

  1. Visual Studioを起動し新しいプロジェクトを選択。
  2. 「Silverlightアプリケーション」テンプレートを選択し、プロジェクト名を適当に指定。
    image
  3. 「新しいSilverlightアプリケーション」ダイアログが表示されるのでそのままOK
    image
  4. ツールボックスから「Label」コントロールを貼り付け、「Content」プロパティに「Hello World!!」を指定する。
    image
  5. ここで一旦実行してみて以下の表示がされればOK
    image
  6. 「ソリューションエクスプローラ―」でWebプロジェクトを右クリックして、「発行」を選択。
    image
  7. 「Webの発行」ダイアログが表示されるので以下の様に指定する。
    image
    サイト/アプリケーションのサイト名はデフォルトから変えている場合はその名前。
    アプリケーション名は任意。
  8. 「発行」ボタンを押してエラーが出なければOK
  9. 「http://ホスト名/アプリケーション名/テストページ名」でアクセスできればOK
    image

 

他のPCから参照する場合はファイアウォールとかを良しなに。

2012年8月6日月曜日

◆Entity Frameworkで自己追跡エンティティを使う(纏め)

MTG Blog: ◆ADO.NET Entity Frameworkに入門してみるで試行錯誤しながら自己追跡エンティティを使ってみたのだが、再度読み直したら判りづらかったのでもう一度纏めてみる。
(DataプロジェクトとWebプロジェクトは分割しないほうが判りやすいのかもしれない)

  1. 新規に「Silverlightアプリケーション」を作成する。(AddressBook)
    imageimage

    2つのプロジェクトができる。
    image
  2. プロジェクトの追加で「AddressBook.Data」プロジェクト(クラスライブラリ)を追加する。(追加されたClass1.csは削除)
    image
  3. 「AddressBook.Data」プロジェクトに「ADO.NET Entity Dta Model」を追加。(Model1.edms)
    image
    image

    データ接続は前回作成した「AddressBook」データベースを使用する。
    image
  4. Model1.edmxを開き、デザイナ画面の背景をクリックし「AddressBookModel」のプロパティを表示。
    image
  5. プロパティ画面で「コード生成方法」に「なし」を指定する。
    image
  6. デザイナ画面の背景を右クリックし、コンテキストメニューから「コード生成項目の追加」を選択。
    image
  7. 「新しい項目の追加」画面で、「ADO.NET Self-Tracking Entity ジェネレーター」を選択する。
    image
  8. 「ソリューションエクスプローラ―」で「ソリューション」を右クリックして「AddressBook.Entity」プロジェクトを追加する。(Silverlightクラスライブラリプロジェクト) 「Class1.cs」は削除
    image
  9. 「ソリューションエクスプローラ―」で「AddressBook.Entity」プロジェクトを右クリックして「追加」「既存の項目」を選択。
    image
  10. 「AddressBook.Data」プロジェクトの「Model1.tt」を「リンクとして追加」
    image
  11. 「AddressBook.Entity」プロジェクトのプロパティで「既定の名前空間」を「AddressBook.Data」に変更。
    image
  12. 「AddressBook.Entity」プロジェクトに「参照の追加」で「System.Runtime.Serialization」を追加。
    image
  13. 「ソリューションエクスプローラ―」で「AddressBook.Web」プロジェクトに「AddressBook.Data」プロジェクトへの参照を追加。
    image
    image
  14. 「ソリューションエクスプローラ―」で「AddressBook.Web」に「参照の追加」
    で「System.Data.Entity」を追加する。
    image
    image
  15. 「ソリューションエクスプローラ―」で「AddressBook.Web」プロジェクトを右クリックして「新しい項目の追加」「Silverlight対応WCFサービス」を追加する。(AddressBookService)
    image
  16. 「AddressBook.Service.cs」に以下のメソッドを追加。
    AddressBook.Service.cs
    1. using System;
    2. using System.Linq;
    3. using System.Runtime.Serialization;
    4. using System.ServiceModel;
    5. using System.ServiceModel.Activation;
    6. using System.Collections.Generic;
    7. using AddressBook.Data;
    8.  
    9. namespace AddressBook.Web
    10. {
    11.     [ServiceContract(Namespace = "")]
    12.     [SilverlightFaultBehavior]
    13.     [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    14.     public class AddressBookService
    15.     {
    16.         [OperationContract]
    17.         public List<Entry> GetEntries()
    18.         {
    19.             using (var container = new AddressBookEntities())
    20.             {
    21.                 // Entry
    22.                 return container.Entries.ToList<Entry>();
    23.             }
    24.         }
    25.  
    26.         // UpdateEntries
    27.         // OperationContract
    28.         [OperationContract]
    29.         public bool UpdateEntries(IEnumerable<Entry> entries)
    30.         {
    31.             using (var container = new AddressBookEntities())
    32.             {
    33.                 try
    34.                 {
    35.                     // ApplyChanges
    36.                     foreach (var entry in entries)
    37.                     {
    38.                         container.Entries.ApplyChanges(entry);
    39.                     }
    40.  
    41.                     // SaveChanges
    42.                     container.SaveChanges();
    43.                     return true;
    44.                 }
    45.                 catch (System.Data.OptimisticConcurrencyException ex)
    46.                 {
    47.                     return false;
    48.                 }
    49.             }
    50.         }
    51.     }
    52. }
  17. 「AddressBook」プロジェクトの「参照の追加」にて「AddressBook.Entity」プロジェクトを参照追加する。
  18. 「AddressBook」プロジェクトの「MainPage.xaml」に「DataGrid」コントロールを追加。
    image
    XAMLに以下が追加される。
    image
  19. 「DataGrid」のXAMLソースを以下に置き換える。
    MainPage.xaml
    1.         <sdk:DataGrid AutoGenerateColumns="False" Height="237"     HorizontalAlignment="Left" Margin="8,12,0,0" Name="dataGrid1"     VerticalAlignment="Top" Width="376" ItemsSource="{Binding}" Grid.Column="1">
    2.         <sdk:DataGrid.Columns>
    3.                    <sdk:DataGridTextColumn Binding="{Binding Path=Name}" Header="Name" />
    4.                    <sdk:DataGridTextColumn Binding="{Binding Path=TelNo}" Header="TelNo" />
    5.                    <sdk:DataGridTextColumn Binding="{Binding Path=MailAddress}" Header="MailAddress" />
    6.                    <sdk:DataGridTextColumn Binding="{Binding Path=Age}" Header="Age" />
    7.         </sdk:DataGrid.Columns>
    8.     </sdk:DataGrid>
    9.     <Button Content="Load" Height="23" HorizontalAlignment="Left" Margin="59,265,0,0" Name="loadButton" VerticalAlignment="Top" Width="75" Grid.Column="1" />
    10.     <Button Content="Save" Height="23" HorizontalAlignment="Left" Margin="152,265,0,0" Name="saveButton" VerticalAlignment="Top" Width="75" Grid.Column="1" />


  20. 「F6キー」を押して一旦ビルド
  21. 「AddressBook」プロジェクトの「参照設定」から「サービス参照の追加」をクリック。
    image
  22. 「サービス参照の追加」画面で「探索」ボタンをクリック。
    image
  23. サービスが見つかったら、「名前空間」に「AddressBookServiceReference」を指定して「OK」
    image
  24. 「MainPage.xaml.cs」のイベントハンドラーを以下の通り編集。
    MainPage.xaml
    1. using System;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4. using System.Net;
    5. using System.Windows;
    6. using System.Windows.Controls;
    7. using System.Windows.Documents;
    8. using System.Windows.Input;
    9. using System.Windows.Media;
    10. using System.Windows.Media.Animation;
    11. using System.Windows.Shapes;
    12. using MyAddressBook.Data;
    13.  
    14. namespace MyAddressBook
    15. {
    16.     public partial class MainPage : UserControl
    17.     {
    18.         MyAddressBookServiceReference.MyAddressBookServiceClient service;
    19.  
    20.         public MainPage()
    21.         {
    22.             InitializeComponent();
    23.         }
    24.  
    25.         private void UserControl_Loaded(object sender, RoutedEventArgs e)
    26.         {
    27.             service = new MyAddressBookServiceReference.MyAddressBookServiceClient();
    28.         }
    29.  
    30.         private void loadButton_Click(object sender, RoutedEventArgs e)
    31.         {
    32.             service.GetEntriesCompleted += (send, ee) => dataGrid1.ItemsSource = ee.Result;
    33.             service.GetEntriesAsync();
    34.         }
    35.  
    36.         private void saveButton_Click(object sender, RoutedEventArgs e)
    37.         {
    38.             var entries = dataGrid1.ItemsSource.Cast<Entry>();
    39.             service.UpdateEntriesCompleted += (send, ee) => MessageBox.Show("Save " + (ee.Result ? "Success" : "Failure"));
    40.             service.UpdateEntriesAsync(new System.Collections.ObjectModel.ObservableCollection<Entry>(entries));
    41.         }
    42.     }
    43. }
  25. 「AddressBook.Web」プロジェクトと「AddressBook.Data」プロジェクトを分割した関係上、接続文字列が「AddressBook.Data」プロジェクトの「App.Config」に定義されているので、「AddressBook.Web」プロジェクトの「Web.Config」に移動する。
    image
  26. 「F5キー」で実行し、「Load」「Save」ができればOK

私が最近チェックした記事