カテゴリー「Windows」の13件の記事

2012-05-19

友人からコンピュータの起動に数時間掛かると相談される

大袈裟な話しで、数分~数十分だと思っていたのですが、晩に電源を入れて、ずっと起動中なので放置して眠ると、朝には起動しているという状態らしいです。

ただ、これだと起動プロセスで何かの時限メッセージが表示されていても見過ごしてますね。(出るのかどうか知りませんが)

で、メールでのやり取りではデバイスマネージャーを確認してもらって、PIO病ではなさそう。

そうそう、スペック。
OSはVISTAでPentium Dual-Core、メモリが2Gだそうです。

イベントビューアで確認して貰うと7日前のディスクシステムのエラーが2415っていうので、内容まで書いて来なかったけど、やっぱりHDDの故障かな?

まぁ、現物見ないとわからないよね。近いうちに行ってみないとだな。自動車で二時間くらいかかるんだよなぁ。

| | コメント (0) | トラックバック (0)

Windows7のネットワーク速度チューニング

Windows7でもネットが遅いなぁ (14Mbps) と感じたので、チューニングしてみたので、自分用の覚書。

管理者としてコマンドプロンプトを起動

netsh interface tcp show global

で、現在設定を確認

Receive-Side Scaling状態 = enabled
Chimneyオフロード状態 = automatic
NetDMA状態 = enabled
Direct Cache Acess (DCA) = disabled
受信ウィンドウ自動チューニングレベル = normal
アドオン輻輳制御プロバイダー = none
ECN機能 = disabled
RFC1323タイムスタンプ = disabled

受信ウィンドウ自動チューニングレベルを色々と変えてみた
netsh interface tcp set global autotuninglevel=disabled (16Mbps) netsh interface tcp set global autotuninglevel=experimental (不調)
netsh interface tcp set global autotuninglevel=highlyrestricted (35Mbps)
netsh interface tcp set global autotuninglevel=restricted (60Mbps)
と言うことで、restrictedにしておいた。

autotuninglevelの値
disabled = 無効
highlyrestricted = 保守的に拡大します
restricted = 制限的に拡大します
normal = 既定値
experimental = 実験的

どれにすると一番速いかは、それぞれの環境に左右されるようなので、再起動が面倒くさいけど、全部ためしてみるのがいいかも知れません。

ただ、私の環境ではexperimentalにした時には、Windowsの挙動が不安定になりました。

他にも、以下をdisabledにすると効果が出るような記事も見掛けたので、autotuninglevelが決まってから、試してみるといいかも。

Receive-Side Scaling状態
netsh interface tcp set global rss=disabled
 
Chimneyオフロード状態 = automatic
netsh interface tcp set global chimney=disabled

NetDMA状態 = enabled
netsh interface tcp set global netdma=disabled

以上も全てdisabledにするわけではなく、rssだけをdisabledにするとか組み合わせによって違ってくるみたいです。
私は、再起動が面倒になってしまって、こちらは初期値のままにしておきました。

| | コメント (0) | トラックバック (0)

2012-05-01

CPU遅いメモリ少ないのパソコンを何とかしたい WindowsでソフトウェアRAID

自宅に無駄にケースだけ大きい眠っているコンピュータがありました。

Celeron1.7GHzでRAMが512MbyteでHDDはIDEで60G + 40Gでした。

Windows XPをインストールすると、それなりに動きました。が、Updateを繰り返すうちにドンドン遅くなり、最終的にはネットを使うにもストレスが生じるような状態になりました。

かといって、このコンピュータに金を掛ける気はありません。そこで、試しにソフトウェアRAIDでストライピングしてみることにしました。

ジャンク箱から使えるHDDを探すと60Gが一個見付かりました。これをステーで適当に開いているスペースに設置します。システムを60GのHDDにインストールしてしまっているので、RAID-0としては40Gのドライブしかできないので、残りの20Gは普通のボリュームとして使います。

マイコンピュータを右クリックして管理 – ディスクの管理とすすみ、右側下段のディスク1とディスク2をベーシックボリュームからダイナミックディスクに変換します。

で、ディスク1の領域でストライプボリュームを作成するウィザードでディスク2の領域を指定してDドライブとして作成しました。これで約80GのDドライブができました。

フォーマットが済んだら、仮想メモリをDドライブに指定します。マイコンピュータを右クリックしてプロパティ - 詳細設定 - パフォーマンスで詳細設定タブの仮想メモリグループの変更ボタンをクリックします。上の白い枠でCドライブを選択して、下のページングファイルなしを選択して設定ボタンをクリックするとCドライブの仮想メモリ領域がなくなります。

次に、上部でDドライブを選択して、ページングファイルのサイズを初期サイズ2048、最大サイズ4096にしました。適用するには設定ボタンを押した後、Windowsを再起動します。

このパソコンでは、ちょっとネットをしたり、時間の掛かる処理をしようと思っています。時間の掛かる処理は、寝てる間とかにやらせるので、それ程速さは求めていないのですが、ネットはストレスを感じない程度には動作して欲しい。

そこで、普段使っているchromeのキャッシュもDドライブに移動します。他に、マイドキュメントもDドライブに移動しました。

chromeのキャッシュは、junctionを作成して内容を移動してきました。他のブラウザならキャッシュのパスを指定できるような物もあると思いますので使うブラウザに応じて対処します。

実際に使ってみると、ブラウザの起動には多少時間が掛かりますが、起動してしまえば新しいタブを出すのも、そこそこの時間で出てきますし、ウェブサイトの表示も速くはありませんが、ストレスが溜まるほどではなくなりました。

体感ですが、ストライピングする前よりは断然早くなりました。メモリ不足をHDDの高速化で補った感じにはなったと思います。

たまたま、HDDが余っていたのと、IDEケーブルに空きがあってHDDが3台接続することができたので、なんとかこんな事ができました。期待していた以上の結果になりました。やる前は、多少ストレスが軽減すればいいかな?!程度にしか期待していませんでした。

Windows VISTA以降ならReadyBoostという手もありますし、SATAならSSD化というのも有りですかね。ただ、このスペックのコンピュータにお金を掛けるのはもったいないので、手持ちのパーツでどうにかしたいですね。

| | コメント (0) | トラックバック (0)

2012-03-22

ディスプレイが真っ黒だ!

会社で後輩に「ウィンドウズのロゴのあと、画面が真っ黒で何にも表示されないんだけど」と言われた。

う~っ!面倒くさい。

ウィンドウズのロゴが表示されるということは、ディスプレイの故障ではないっぽい。

とりあえず、強制的に電源を切って、電源投入後、F8連打でセーフモードへ。

セーフモードではちゃんと動く。ディスプレイドライバがロードされなかったっぽい?そういう事?

VGAモードも試してみると?

これもちゃんと動きます。

通常に再起動してみると?

なおりました。

やっぱりディスプレイドライバっぽいんだけど…。

僕に考えられることといえば、ディスプレイドライバの再インストールくらいだけど、とりあえず動いてるし、探したりするの面倒くさいし、Windows Updateで対応されるかも知れないから放置。

| | コメント (0) | トラックバック (0)

2012-01-25

dbExpressでMySQLに接続 RAD Studio 2010

今回、サーバはLinuxサーバなので、MySQLのインストールはしないので、mysql-noinstall-5.1.61-win32.zipをダウンロードしてlibmySQL.dllをパスの通ったディレクトリにコピー

どうも、5.0系では動かないっぽいので、5.1系を使わないとならないっぽい。

TSQLConnectionのDriverにMySQLを選択する。多分これだけで、ほとんどの設定を自動に選択してくれる。

Paramsパラメータにデータベース固有の情報を書く

  • HostName
    データベースサーバ
  • Database
    データベース名
  • User_Name
    ユーザー名
  • Password
    パスワード
  • ServerCharSet
    サーバーのデータの文字コード (sjis, ujis, utf8とか?)

これで、接続できるんじゃないのかな?

SET NAMES とかやっても、文字化けしちゃうからちょっと焦った。

| | コメント (0) | トラックバック (0)

2011-09-13

管理者として起動したWindows VISTA / 7のアプリケーションにファイルをドロップしてみた

メモ帳を管理者権限で起動すると、エクスプローラからファイルをドロップして開くことができない。

で、エクスプローラを管理者で起動してみたが、それでもできない。

エクスプローラのオプション設定で、各エクスプローラのウィンドウが、それぞれ独立したプロセスで動くようには設定してあるが、これでもできない。

もしかすると、Windowsを再起動しないと、適用されないのかな?

それにしても、既に開かれているエクスプローラが利用できずに、新たに管理者としてエクスプローラを起動しなければならないなら、ダイアログとかでファイルを開いても同じ気がする。

Linuxでは、rootで起動したアプリケーションに、ファイルをドロップすることができた。どうして、管理者権限ではファイルのドロップができないようになってるんだろう?

VISTAで試してみたら、エクスプローラをウィンドウごとに独立したプロセスとして起動するように設定して、管理者としてエクスプローラを起動したらドロップできた。

でも、64bitのWindows7ではできなかったらしい。私は、64bit機を持っていないので、弟に頼んでやってみてもらったので、もしかするとエクスプローラが管理者権限ではないとか、あるかもしれないが。

| | コメント (0) | トラックバック (0)

2009-12-05

BDEエリアスとTSession

BDEのエリアスからPATHを調べたい。

で、TSessionを使ってエリアスの一覧やエリアスの情報を得られますが、問題はこのTSessionの使い方です。
普通に TSession* session = new TSession (NULL); とかやって、セッション名を自動的につけるようにさせていました。

で、特定のエリアスのパスを返す関数を、実行時ライブラリにして、他のツールと共有しようと思った訳です。

まず、requiresに rtl.bpi, bdertl.bpi あたりが必要だったんですけど、これをコンパイルしたら普通にコンパイルが通って、パッケージライブラリと、インポートライブラリ、それから静的リンク用のライブラリとができあがったんですが、このパッケージライブラリを実行時ライブラリとして利用すると、bdertl.bplでメモリアクセス違反が出る。

で、どうやらTSessionList::AddSessionでTListにTThreadList.LockListを代入している所でエラーが起きてるようだ。
とりあえず、VCLはDelphiで、C++ではないが、こんな感じでbegin直後でエラーが起きるようだ。

DbTables.pas
procedure TSessionList.AddSession(ASession: TSession);
var
  List: TList;
begin
  List := FSessions.LockList;  { ここでエラー発生!! }
  try
    if List.Count = 0 then ASession.FDefault := True;
    List.Add(ASession);
  finally
    FSessions.UnlockList;
  end;
end;


で、調べてみたんですね。
そしたら、スレッドセーフにするため(?)に、Sessions変数のOpenSessionでオブジェクトを取得すればいいみたいですね。
この時、引数にセッション名を渡して、該当するセッションがあれば、そのセッションが返されて、該当セッションが見つからなければ、新しいセッションにその名前をつけて返してくれるらしい。
これが正しい使い方だったのか。

早速、パッケージを修正してから、サンプルプログラムを動かしたら、今度はエラーが出なくなった。
TSessionは基本的にはSessions変数からいただくものだったんですね。

ヤレヤレです。

ついでに見つけたんだが、borland\CBuilder6\source\vcl\Db.hppの1211行目あたりに、Currencyというプロパティがある。
TCurrencyFieldなんだが、TFloatFieldから派生している。
で、派生元クラスのTFloatFieldを見てみると、プロパティはcurrencyだ . . . 。
実際に、borland\cbuilder6\source\include\vcl\db.hppのTCurrencyField には小文字で書かれている。

C++では文字の大小を区別するので、これは別のプロパティとなる。
しかし、TCurrencyFieldでは、 __property Currency  = {default=1}; と型もなく書かれていて、試しにちょっと工夫してこれをコンパイルしてみると、やはりここで、宣言エラーが不正だというエラーが出ますね。
で、先頭のCを小文字のcに変更してみました。
コンパイルも無事通りました。

うぅむ。
なんで、include\vcl\db.hppとsource\vcl\db.hppが違うのかは、勉強不足なのか全然わからん。
同じファイルのコピーじゃダメなんだろうか?
windowsなのでdiff見ないな物の手持ちもないので、比較はしていませんが実際どうなんでしょうね。

この頃はborlandだったもんな。
会社名がよく変わるツールだな。
インプライズになってボーランドに戻って、コードギアになってから、エンバカデロだもんな。
バージョンによってインストールされているディレクトリが全然違うから、戸惑うんだよな。
エンバカデロになってからバージョンアップしてないから、どんなもんだかわからないけど . . . 。




| | コメント (0) | トラックバック (0)

2009-11-27

Win7ProでUSBマウス消えた

Sun VirtualBox にWindows XP をインストールして、
そこで、C++ Builder6 を使おうと思ったんです。

作業をしていたら、なぜか急にマウスが反応しなくなった。
最初は、統合機能が切り替わっただけかと思っていたが、
デバイスマネージャで確認すると、
ヒューマンインターフェイスデバイスが無い。

どのマウスを挿しても、反応しない。

USBメモリは認識するし、マウスをネットブックに
接続するとキチンと認識しているので、
ヒューマンインターフェイスデバイスが消えている事が
原因と思われる。

そこで、デバイスマネージャーのユニバーサルシリアルバスコントローラー (USB)
の中の Enhanced Host Controller を削除してやった。
きれいさっぱり消し去ってやった。

再起動 . . . 。

エンハンスドホストコントローラーのインストールが自動的にされた。

再起動 . . . 。

USB にマウスを挿してみた。


認識して、ドライバのインストールが始まった。


やれやれだなぁ。




それにしても、Windows XP モードってのが使いたくて、
Professional を買ったのに、 Windows Virtual PC だと、
動きがギクシャクしててストレスを感じる。

XP + C++Builder6 の組み合わせが必要なので、
使ってみたが、入力した字が表示されるまでに、
息継ぎするみたいになるし、矢印キーでカーソル (キャレット) を移動すると
消えちゃって、しばらくすると、
「ジャーンッ!こっちでしたぁ」
みたいに現れる。

これじゃ、駄目だって事で、Virtual Box に CD からインストールしなおした。
軽快に動いてる。

sp4 にして、 CppUnit とか boost とかインストールして . . . 。
とかしてる最中にマウス動かなくなっちゃうんだもんなぁ。


| | コメント (0) | トラックバック (0)

2009-04-23

レジストリ

デスクトップの操作を禁止する

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer ExplorerにDWORD値のNoDesktopを作成し、値を1にする。 元に戻すには、NoDesktopを削除するか、値を0にする。



タスクバーとスタートメニュー非表示


HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
ExplorerにDWORD値のNoSetTaskBarを作成し、値を1にする。
元に戻すには、NoSetTaskBarを削除するか、値を0にする。



ようこそ画面(ログオン)に表示しないユーザー


HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList
UserListにDWORD値の表示したくないユーザー名を作成し、値を0にする。
元に戻すには、ユーザー名を削除する。

| | コメント (0) | トラックバック (0)

2008-12-22

Roxio製品でドライブを認識しない

Roxioの製品でドライブが認識されていないので、
DVD/CDへの書き込みもできないし、
制限つきのWMA形式の音楽も、CDに書けない。

調べると、以下のページを見つけたので、
ダウンロードしてインストールしてみると、
問題が解決した。

【000008GN : 書き込みに関連した問題を解決します。】
kb.roxio.com/content/kb/General%20Information/000008GN

ついでに、こんなのも見つけた。
【000070GN : PX Engine - Description and Download】
kb.roxio.com/content/kb/General%20Information/000070GN

| | コメント (0) | トラックバック (0)