2009年12月03日

VistaやWindows7でスタートアップにショートカットを登録するには

「スタート」メニューで「スタートアップ」の項目を右クリックして「開く」や「エクスプローラ」を選択。
スタートメニュー

スタートアップ用フォルダが開くのでそこにショートカットをコピー。
(「All Users」の方を使えば全てのユーザーで起動させられる)
ショートカットのコピー

XPでも同様にできる。ただ私が知らなかっただけのこと(^^;
posted by なっちゃん at 11:39| 静岡 ☁| Comment(1) | TrackBack(0) | Windows Vista & 7 | このブログの読者になる | 更新情報をチェックする

2009年11月06日

SQLServer Express版の自動バックアップ

SQLServer2005の無償版であるExpress版ではAgentサービスが実装されていないため管理ツールSQLServer Management Studio(Express)からメンテナンス機能が使えない。
よってタスクメニューから手動でのバックアップはできても自動で(定期的に)バックアップを行うことができない。そのためどうしてもWindowsのタスク機能を使ってバッチ処理などで実行させる必要がある。

事例:
SQLServerインスタンス:SQLEXPRESS
データベース名:testdb
SQLServer認証ユーザー名:sa、同パスワード:pass
バックアップ保存先フォルダ:C:\sqlback

用意するのは2つのファイル(ファイル名は任意)
これをバックアップ保存先フォルダに配置する

1.バックアップ命令文(SQL):backup.sql
BACKUP DATABASE testdb TO DISK='C:\sqlback\testdb.bak' WITH INIT
GO
※解説
@DISK=''でバックアップファイルを指定したパスに保存
AWITH INIT の文が無いと、バックアップデータが毎回追加されてtestdb.bakが大きくなってしまう。この文を付けることで上書きモードになる。

2.バッチファイル(BAT):backup.bat
sqlcmd -S .\SQLEXPRESS -U sa -P pass -i C:\sqlback\backup.sql > C:\sqlback\backup.log
※解説
sqlcmdの詳細はサイトで確認
@-S はサーバー名(インスタンス名含)
A-U はログイン名
B-P はログインパスワード
 注:-U -P はSQLServer認証の場合に必要だが、Windows認証の場合は -E だけになる(下参照)
 例:sqlcmd -S .\SQLEXPRESS -E -i C:\sqlback\backup.sql
C-i は実行するSQLのファイル名
D > 以下は無くても良いがログを残したい時に使う

あとはWindowsのタスクでバッチファイルbackup.batを指定すれば良い。
今回は毎日指定された時刻に行う予定で作成したので、前日以前のバックアップは保存されない。
1週間分バックアップを保存したい場合には、曜日毎に別々のSQLとバッチファイルを用意してタスクに登録すれば良い。
posted by なっちゃん at 11:43| 静岡 ☀| Comment(2) | TrackBack(0) | ETC | このブログの読者になる | 更新情報をチェックする

2009年11月05日

アップロード可能なファイルサイズの上限変更

FileUploadコントロールを使ってWebサーバにファイルをアップロードさせるときファイルサイズの上限があることをご存知だろうか?

そんなことを何も意識せず普通に使った場合(Web.Config等に何も指定していない場合)では、上限初期値が4MBになっている。これを超えるとエラーになる。

最初はサイズが原因だとは思わなかったが、どうやらそうらしい。

設定変更はWeb.Configで行う。

system.web要素に次の項目を追加する。

<httpRuntime executionTimeout="600" maxRequestLength="40960"/>

executionTimeout:実行タイムアウト(秒)初期値110
maxRequestLength:リクエストデータ最大サイズ(KB)初期値4096(=4MB)

※location要素と組合せて必要なページのみ指定できるそうだが私は確認していない。
posted by なっちゃん at 12:45| 静岡 ☀| Comment(1) | TrackBack(0) | ASP.NET Tips | このブログの読者になる | 更新情報をチェックする

2009年09月03日

チェックボックス、ラジオボタンを大きく表示して使う:その2

以前掲載した「チェックボックス、ラジオボタンを大きく表示して使う」では、WebコントロールのCheckBoxやRadioButtonでは大きく表示できないためHTMLコントロールを使う方法を紹介しました。

それに対してコメントを寄せてくれた蒼い音速鼠さんの情報によりWebコントロールでも可能なことが判り、また前回のサンプルソースではIE8に対応できない問題も解決することができました。

そこで改正版サンプルを作成しましたので紹介します。
bigctrsamp2.lzh(24KB)
・Default.aspx: HTMLコントロールによるサンプル
・Default2.aspx: Webコントロールによるサンプル

Webコントロールでサイズを変更するにはInputAttributesプロパティでスタイルの設定を行えば良いこと。
IE8でも有効にするにはスタイルにborder:noneやborder-width:1pxを加えれば良いことが判りました。

蒼い音速鼠さんありがとうございました。

その後、更にmidorikawaさんよりコメントをいただき、もっと簡単な記述でWebコントロールを大きく表示する方法が判りました。(IE7〜IE9はOK、IE6はNG)下のコメント欄をご覧ください。
posted by なっちゃん at 11:46| 静岡 ☔| Comment(2) | TrackBack(0) | ASP.NET Tips | このブログの読者になる | 更新情報をチェックする

2009年06月06日

サービスプログラムのデバッグ方法(Visual Studio 2005)

Windowsサービスを作成したが、動作がおかしいのでデバッグすることになった。
その時のデバッグ操作が結構てこずったので注意書きとしてまとめておく。

デバッグの方法はWindowsプログラムとはちょっと違う。WindowsプログラムではDebugモードで実行させるだけで済むがサービスプログラムは実際にサービスとして稼動させてから開発ツールでそのプロセスを監視させて行う。
ここで注意すべきなのはWindowsプログラムと同様にビルドの構成をDebugにしておく必要があることだ。(過去ログ:ブレークポイントで止まらないを参照)

サービスプログラムを実行させるには
(Windows)\Microsoft.NET\Framework\(バージョン)\installutil.exe を使ってインストールする必要がある。コマンドプロンプトから実行するので私の場合は、このコマンドだけをサービスプログラムの実行ファイル(exe)のあるフォルダ(bin\debug)にコピーして、そこからインストールしている。

InstallUtil.exe (サービスプログラム名).exe

※Vistaの場合コマンドプロンプトを管理者として実行させておかないとインストールに失敗する。

インストール後、サービスがまだ開始されていないのでコントロールパネルの管理ツールからサービスマネージャを開いて開始させる。

あとはデバッグポイントを設定し、「ツール」メニューにある「プロセスにアタッチ」を開き「選択可能なプロセス」から当サービスプログラムを選択し「アタッチ」ボタンをクリックする。このとき「すべてのユーザーからのプロセスを表示する」と「すべてのセッションのプロセスを表示する」にチェックを入れておかないとサービスプログラムは表示されない。
プロセス一覧には(プログラム名).vshost.exeというファイル名がグレー表示しているが、これはサービスプログラムのプロジェクトを開いている開発ツールのことだ。

なお、上記手順から判るようにサービスプログラムの起動時(OnStartイベント)のデバッグは出来ない。(開始されていないサービスは選択可能なプロセス一覧には表示されず、表示されたときは既にOnStart内のコードは終了しているから)

デバッグで問題点が見つかり修正する場合、一時サービスを停止しておかないとプログラムの置き換えができない。またサービスをアンインストールするときも停止する必要がある。
アンインストールのコマンド以下の通り

InstallUtil.exe /u (サービスプログラム名).exe

posted by なっちゃん at 11:19| 静岡 ☔| Comment(0) | TrackBack(0) | VB.NET Tips | このブログの読者になる | 更新情報をチェックする

2009年05月07日

Windows7の「Windows XP Mode」

Windows7のRC版の公開のアナウンスと共に興味深い記事があった。
それが「Windows XP Mode」と呼ばれるものだ。これはWindows7とは別に提供される。
http://www.microsoft.com/windows/virtual-pc/download.aspx

アナウンスでは「Professional」「Enterprise」「Ultimate」エディションでしか使えないらしい。RC版はUltimateだから試すことができる。

「Windows XP Mode」の実体は、別途起動させた「Virtual PC」 から特定のアプリケーションだけを表示させて、あたかもWindows7で起動しているかのように見せるものである。
ちなみに、ウィンドウデザインはXPそのままなので、Vista以降の新しいインターフェースのウィンドウに混じって表示されると変な感じがするが、XP Modeで起動しているのが一目でわかる。

この新しい「Virtual PC」を使うには幾つか制限がある。
まず一番の障害になると思われるのは、プロセッサー(CPU)で「ハードウェア依存の仮想化機能」がないと使用できないことである。最近のCPU(AMDのAMD-VやIntelのIntel-VTが組み込まれたCPU)でないと使えない。ちなみに私がテストしたのはAMDのAthlon 64X2である。
・非対応のCPUだと下図のようなエラーが出る。
起動エラー

またWindows7から起動させるためには、あらかじめ作成したVirtualXPにプログラムをインストールする必要があるが、必ず全ユーザー用のスタートメニューのプログラムフォルダにショートカットを作成しないといけない。
インストーラーが自動で作る場合なら楽だがフリーソフトなどインストーラが無い場合、またあってもログインユーザーだけのプログラムフォルダに作成するものだと、自前で作らないといけない。
・下図参照
ショートカットの配置
スタートメニューの「Virtual Windows XP」フォルダに「Virtual Windows XP アプリケーション」フォルダが作成され、その中にショートカットがあるが、これはVirtual Windows XP の「C:\Documents and Settigns\All Users\スタート メニュー\プログラム」フォルダ内に新規作成されたショートカットが表示されたものだ。

もう一つの制限は、起動元がVirtualPCなので読み書きするドライブもVirtual PC上にあるドライブになることだ。VirtualPC側でホスト側(Windows7)OSのドライブを仮想化してドライブに割り当てることができるが、ホスト側と同じドライブ名にはならないし、ドキュメントフォルダも異なる。 (これは間違いで、マイドキュメント、マイピクチャーに保存するとホスト側のマイドキュメント、マイピクチャーに保存された。どうやらリダイレクトされているようだ。)
アプリケーションが単独で動作し、他の影響を受けないような場合には使えるだろうが、外部と連携したりする場合には使えない問題がある。

また当然ながらキャプチャーソフトなどは全く使い物にならない。
Windows7で起動しているように見えても、実体はVirtualXP上にあるのでキャプチャーしている画面空間が見えているものと異なっているのだ。
・下図参照キャプチャーの様子
自作ソフト「ScreenCutter」がキャプチャーしたのはWindows7のデスクトップではなくVirtualPC上のデスクトップらしき一部である。

クリップボードの内容はホスト側と共有するのでホスト側でコピーしたものはVirtual側にも伝わるが、Virtual側のクリップボード取得では意味がない。

以上の点から「Virtual XP mode」は、あくまでもVirtual PCであり、仮想PC上にインストールしたアプリケーションをちょっと楽に起動できるようにしただけのものだ。Windows7で互換モードで起動したものではない。だからシステムに関わるようなツール、たとえばアンチウィルスソフト等をこのXPモードで使うことはナンセンスなのだ。
なお、試用したものはベータ版であり、正規版までにどう改善されるかも注目しておこう。

補足:
従来のVirtualPCとの違いを言うと、単独のVirtualPC2007とも違う。
というのも、「終了」の代わりに「切断」ボタンがある。つまりVirtualPCにリモートデスクトップで接続しているという感じなのである。
他にUSBメモリが使えるようになったのは良いが、Virtual側で使うとホスト側から使用できなくなるのは改善して欲しい。
posted by なっちゃん at 17:56| 静岡 ☔| Comment(0) | TrackBack(1) | Windows Vista & 7 | このブログの読者になる | 更新情報をチェックする

Windows7 RC版をインストール

Windows7のRC版がダウンロードできるようになった。
http://www.microsoft.com/windows/windows-7/download.aspx
http://technet.microsoft.com/ja-jp/evalcenter/dd353205.aspx?ITPID=mscomsc

試してみたが見た目は、前回のベータ版と比べてインストール時の画面が綺麗になり、日本語表記も増えている程度である。

今回の目玉は「Windows XP Mode」というVirtual PCの機能を使った新たな互換性機能がどうなったかということだが、これは別途ダウンロードする必要がある。
http://www.microsoft.com/windows/virtual-pc/download.aspx
これについては次回に解説する。

windows7-rc-1
windows7-rc-2
windows7-rc-3
windows7-rc-4
posted by なっちゃん at 14:58| 静岡 ☔| Comment(0) | TrackBack(0) | Windows Vista & 7 | このブログの読者になる | 更新情報をチェックする

2009年04月21日

VB2005(VB.NET)のNotifyIconからのフォーム表示の問題点

タスクトレイにアイコンを表示させる時、VB6の時はかなり面倒な処理をする必要があったが、VB.NETではNotifyIconコントロールという大変便利なものがある。

今回これを使ったプログラムを作っていて問題が見つかった。
それは、タスクトレイに表示されたアイコンをクリックしてフォームを開くとき、そのままではアクティブになっていないのである。

たとえば、パスワードを入力させるためにパスワード用フォームを開いてもキー入力を受け付けないのである。一回フォームをクリックしてアクティブにしてからでないとキー入力できないというのでは使い勝手が悪い。これが別のフォーム上のButtonコントロールから開くときにはちゃんとアクティブになっているのだから始末が悪い。

何とかアクティブにならないかと悪戦苦闘してみたが100%確実にアクティブにする方法が見つからない。

ところがやっと見つかった解決策は実に単純だった。
フォームのLoadイベントのなかで、Me.Activate() と一行追加するだけで解決した。
やれやれ(^^;
posted by なっちゃん at 12:53| 静岡 ☔| Comment(0) | TrackBack(0) | VB.NET Tips | このブログの読者になる | 更新情報をチェックする

2009年04月15日

アプリケーション情報(VB6とVB2005)

アプリ情報VB6VB2005
実行パスApp.PathMy.Application.Info.DirectoryPath
実行ファイル名
(拡張子を除く)
App.EXENameMy.Application.Info.AssemblyName
メジャー番号App.MajorMy.Application.Info.Version.Major
マイナー番号App.MinorMy.Application.Info.Version.Minor
ビルド番号(該当無し)My.Application.Info.Version.Build
リビジョン番号App.RevisionMy.Application.Info.Version.Revision
バージョンの構成(Major.Minor.0.Revision)(Major.Minor.Build.Revision)
タイトルApp.TitleMy.Application.Info.Title
ファイルの説明App.FileDescription
会社名App.CompanyNameMy.Application.Info.CompanyName
コメントApp.CommentsMy.Application.Info.Description
ヘルプファイル名App.HelpFile(該当無し)
著作権情報App.LegalCopyrightMy.Application.Info.Copyright
商標App.LegalTrademarksMy.Application.Info.Trademark

※バージョン情報については、こちらも参考に→「自アプリケーションのバージョンを取得
posted by なっちゃん at 14:27| 静岡 ☔| Comment(0) | TrackBack(0) | VB vs VB.NET | このブログの読者になる | 更新情報をチェックする

2009年03月27日

デフォルトボタンの指定方法

VB6では、Enterキーを押すと自動で応答するボタンをDefaultプロパティをTrueにすることで指定できた。
VB.NET(2005,2008含)になってその方法が変わり、フォームのAcceptButtonプロパティでボタンの名前を指定する。

VB6:
Private Sub Text1_Change()
If Text1.Text = "" Then
Command1.Default = False
Else
Command1.Default = True
End If
End Sub
VB6のサンプル画面
vb6:default=false vb6:default=true

VB.NET:
Private Sub TextBox1_TextChanged(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles TextBox1.TextChanged
If TextBox1.Text = "" Then
Me.AcceptButton = Nothing
Else
Me.AcceptButton = Button1
End If
End Sub
VB2008のサンプル画面
vb.net:AcceptButton=Nothing VB.NET:AcceptButton=Button1

同様にESCキーに応答させるVB6のボタンのCancelプロパティは、VB.NETではフォームのCancelButtonプロパティになる。
posted by なっちゃん at 11:34| 静岡 ☁| Comment(0) | TrackBack(0) | VB vs VB.NET | このブログの読者になる | 更新情報をチェックする
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。