2012年10月27日

Window7でXPで作ったショートカットが開けない

■早く WindowsXP を止めろってことなのか、

WindowsXP で作成したショートカットを Windows7 で開けないという現象が発生しました。
Win7 でショートカットファイルのプロパティを見ると、リンク先の欄が空白になっています。もちろんWinXP では適切です。

ネットで調べても解決策が見つからなかったので、ショートカットを作成する VBスクリプトを作ってみました。このスクリプトで作成したショートカットは WinXP でも Win7 でも開けます。とりあえずこれでしのぎます。

VBスクリプトなんて作成したことがないので、ネットで調べながら作ってみました。結果オーライと言うことで。

ソース:
' ファイルおよびフォルダのショートカット作成
'
' 使用方法:
'   ショートカットを作成したいファイル、フォルダをこのスクリプトファイル上へ
'   ドラッグ&ドロップしてください。デスクトップ上にショートカットを作成します。

set objShell = WScript.CreateObject("WScript.Shell")
set objFS = WScript.CreateObject("Scripting.FileSystemObject")

set objArgs = Wscript.Arguments
filecount = objArgs.Count

if filecount < 1 then
    WScript.Echo "ショートカットを作成するファイルをドラッグ&ドロップしてください。"
    WScript.Quit
end if

strDesktop = objShell.SpecialFolders("Desktop")
strLogMessage = ""

for each strPathName in objArgs
    if objFS.FileExists(strPathName) or objFS.FolderExists(strPathName) then
        strFileName = objFS.GetBaseName(strPathName)
        strExtName = LCase(objFS.GetExtensionName(strPathName))
        if strExtName <> "" then
            strFileName = strFileName & "." & strExtName
        end if
        strShortCutName = strDesktop & "\" & strFileName & "へのショートカット.lnk"
        set objShortCut = objShell.CreateShortcut(strShortCutName)
        objShortCut.TargetPath = strPathName
        objShortCut.Save
        strLogMessage = strLogMessage & "    " & strFileName & vbCrLf
    end if
next
' WScript.Echo "次のファイル/フォルダのショートカット" & _
'              filecount & "個をデスクトップに作成しました。" & vbCrLf & _
'              strLogMessage
posted by ピカリ入道 at 19:04| Comment(0) | TrackBack(0) | コンピュータ

2009年12月13日

Windows7でMFC-610CLNを使う

■プリンタドライバをインストールする

うちのMFC-610CLNはネットワークで接続しています。詳しい操作を忘れてしまいましたが、おおよそ次の手順でプリンタドライバを正常にインストールできました。
メーカーサイトからプログラムをダウンロードする必要はありません。また古いOS用のCD-ROMは使いません。
  1. 管理者ユーザでログイン
  2. スタート--デバイスとプリンタ
  3. [プリンタの追加]
  4. ->ネットワーク、ワイヤレスまたはBluetoothプリンタを追加します
  5. WindowsUpdateして、「MFC-610CLN USB」を選択する
  6. ポートをチェックして、プリンタ名を「MFC-610CLN LAN」と変更する
こんな感じでうまく行ってます。

■スキャンドライバとユーティリティをインストールする

年賀状を作る時期が近づいていますので、何とかスキャナの機能を動かさないと困るなぁ。
以前やってうまく行かなかったので、もう一度チャレンジしてみました。
  1. ブラザーのサイトからMFC-610CLN Windows Vista用の「フルパッケージダウンロード【推奨】」のファイルをダウンロードします
  2. 「Setup.exe」を実行して、ファイルを展開します。
  3. 展開したファイルの「Setup610CLN\Jpn\Setup.exe」を右クリックしてプロパティを開きます。
  4. 「互換性」タブを開き、互換性モードを「Windows Vista (SP2)」に設定します。
  5. 「Setup610CLN\Jpn\Setup.exe」を実行します。
  6. ◎ネットワーク接続 □カスタム をチェックして、[次へ>]をクリックします。
  7. □ネットワークスキャナドライバ □ControlCenter3 をチェックして、[次へ>]をクリックします。
  8. 以下省略
これでうまく動いています。

ご自分の責任でやってください。うまく行かなかったらごめんなさい。
posted by ピカリ入道 at 20:40| Comment(2) | TrackBack(0) | コンピュータ

2008年06月16日

OpenOfficeとSqlite3

■OpenOfficeでテーブル上でレコード更新すると文字化けします

Sqliteのデータベースに登録されているデータの文字コードをUTF-8に変換して、文字コードの問題は解決したと安心していましたら、何の何のまだ残っていました。

OpenOffice Baseのテーブル表示で、直接レコードを更新しました。つまり表形式にレコード表示したウィンドウで、直接フィールドをクリックし、文字列をタイプして変更しました。[Enter] キーを押すと、正しく更新できたように見えます。この時点では文字化けも発生していません。

ところが、メニュー「ファイル」->「現在のレコードを保存」を実行すると、更新したフィールドだけが文字化けします。どうやらWindowsの文字コードShift_JISをそのままSqliteに書き込んでいるようです。

■更新時に文字コード自動変換することはできないのか

更新したフィールドをデータベースに書き込むときに文字コードを自動的に変換してくれる機能があればうまく行くはずです。そんな機能があるとしたら、OpenOffice側か、ODBCドライバ側か?

OpenOffice Baseのメニュー「編集」->「データベース」->「プロパティ」->「追加設定」に「データ変換」「文字セット」というパラメータが見えます。「やったこれか」と思い、設定値を「Unicode(UTF-8)」にセットしました。でも何も変わりません。相変わらず文字化けします。

ODBCドライバに文字コードの自動変換機能はないのでしょうか?Googleでサーチしてみましたら、次のサイトがヒットしました。
SQLiteの面白さ(11) ODBCドライバを改造した
すでに本家のsqlite3odbc.dllは入っていますから、指示どおり改造版のsqlite3odbc.dllを上書きしました。再度OpenOffice Baseを起動して、テーブルをいじってみました。おお、文字化けが止まった。Shift_JIS→UTF-8の変換がうまく行かない漢字にぶち当たるまでは使ってみようと思います。
posted by ピカリ入道 at 22:49| Comment(0) | TrackBack(0) | コンピュータ

2008年06月05日

携帯Javaアプリ(その1)

■携帯Javaアプリって何だ?

携帯Javaアプリは携帯電話で任意のプログラムを動作させる仕組みです。Java実行環境で動かすので「Javaアプリ」と一般に呼んでいます。携帯キャリア各社ではそれぞれ独自の名称を付けています。例えば、Docomoは「iアプリ」、auは「オープンアプリ」などです。キャリア間で互換性がありません。同じキャリアの携帯電話でも機種の世代間で互換性がない場合があります。

普通は、ゲームやナビなどの機能が入っています。携帯サイトから好きなJavaアプリをダウンロードして使用することもできます。実はJavaアプリは誰でも作ることができます。開発環境はすべて‘ただ’で提供されています。

■開発環境を整えます

  1. Java SE DownloadsからJavaの開発環境をダウンロードします。この時点では「JDK 6 Update 6」が最新です。ダウンロードした.exeファイルを起動して、インストールします。
  2. 続いてNetBeans IDE 6.0.1 ダウンロードからNetBeansパックの「Java SE」をダウンロードします。ダウンロードした.exeファイルを起動して、インストールします。
  3. NetBeansを起動します。
  4. メニュー「ツール」->「プラグイン」->「使用可能なプラグイン」の一覧から「Mobility」と「Sun Java Wireless Toolkit 2.5.2 for CLDC for Windows」にチェックを入れます。[インストール]をクリックし、指示に従って導入します。
  5. 2つのプラグインのインストールに成功したら、「今すぐIDEを再起動」をチェックして[完了]をクリックします。
  6. NetBeansを再起動したら、Sun Java Wireless Toolkitのインストールが始まります。表示にしたがって導入します。

■「こんにちは、世界!」と表示してみます

  1. メニュー「ファイル」->「新規プロジェクト」をクリックし、「Mobility」->「MIDPアプリケーション」を選択し、[次へ]をクリックします。
  2. プロジェクト名を例えば「HelloWorld」と入力し、[次へ]をクリックします。
  3. デフォルトプラットフォームの選択では、エミュレータプラットフォームを「Sun Java Wireless Toolkit 2.5.2 for CLDC」、デバイスを「DefaultColorPhone」、デバイス構成を「CLDC-1.1」、デバイスプロファイルを「MIDP-2.0」とします。[次へ]をクリックします。
  4. [完了]をクリックすると、ソースの雛形ができます。
  5. Midlet.javaのstartApp()メソッドに次のコードを書きます。
    public void startApp() {
        Canvas c = new Canvas() {
            protected void paint(Graphics g) {
                g.setColor(128,255,128);
                g.fillRect(0,0,getWidth(),getHeight());
                g.setColor(0,0,0);
                g.drawString("こんにちは、世界!", 0, 0,
                             Graphics.LEFT|Graphics.TOP);
            }
        };
        Display.getDisplay(this).setCurrent(c);
    }
  6. メニュー「実行」->「主プロジェクトを実行」を実行します。携帯電話のシミュレータが起動します。
  7. 携帯シミュレータにアプリの起動ページが表示されますので、Midletを選択して、Launch(一番右上のキー[●])をクリックすると、「こんにちは、世界!」と表示されるはずです。

■補足

NetBeansのプラグインとして導入した「Sun Java Wireless Toolkit 2.5.2 for CLDC for Windows(WTK)」は英語版になりました。日本語版をダウンロードして、同じフォルダに上書きインストールすると、JWTが日本語表示になりました。
posted by ピカリ入道 at 20:27| Comment(0) | TrackBack(0) | コンピュータ

2008年04月26日

OpenOfficeとSqlite3

■OpenOfficeでクエリの結果が不正です

OpenOfficeバージョン2.3.1+Sqlite3で住所録の管理がうまく行っていたのですが、クエリの結果が不正なことに気づきました。データベースのレコードに「東京都」という都道府県名があるにも関わらず、クエリの条件を「LIKE '東京%'」としてもヒットしません。OpenOfficeのバージョンを最新版の2.4.0に上げるとクエリの結果が不正となるだけでなく、テーブルの表示さえも文字化けするようになりました。
原因は文字コードです。Windows2000でOpenOffice、Sqliteを使っていますので、当然文字コードはShift-JISで、SqliteにShift-JISで住所を登録していました。ところがSqliteが扱う文字コードはUTF-8ですので、食い違いが発生するのです。

■SqliteのレコードをUTF-8に変換します

まずShift-JISで入っているSqliteのデータをバックアップします。Sqliteのデータファイル名が「addressbook.db」で、テーブル名が「addressbook」とします。
> sqlite3 addressbook.db
sqlite> .output insert_addressbook.sql
sqlite> .dump addressbook
sqlite> .quit
これで「insert_addressbook.sql」というファイルにデータベースの作成から、全データの追加までのSQL文が生成されます。

続いて「insert_addressbook.sql」の文字コードをShift-JISからUTF-8に変換します。サクラエディタなどを使って変換するか、フリーの変換ソフトを利用します。
rubyが利用できるならこんなバッチファイルを作ればいいかも。
sjis2utf8.bat:
@echo off
ruby -e "require 'nkf'; open( '%1' ) do |f| print( NKF.nkf( '-S -w', f.read ) ); end;"
んでもって、コマンドプロンプトで
> sjis2utf8.bat insert_addressbook.sql > utf_insert_addressbook.sql

■新たにSqliteのデータファイルを作成します

上の手順で作成したutf_insert_addressbook.sqlを使って、新しいデータファイルを作成します。SQL文を作成するときに利用したコマンドプロンプトは文字コードがShift-JISですから、コマンドプロンプトの文字コードをUTF-8に変更します。
> chcp 65001
次に、SQL文を実行します。
> sqlite3 new_addressbook.db < utf_insert_addressbook.sql
これでnew_addressbook.dbというデータファイルができますので、これをユーザDSNに追加して、OpenOffice BaseからODBCで接続すればOKです。
posted by ピカリ入道 at 19:27| Comment(0) | TrackBack(0) | コンピュータ

2007年10月20日

Nexyz.BBでメール送信できました

■Nexyz.BBでメール送信できない問題が解決しました

Flet's ADSLからNexyz.BBに変えたら、Nexyz.BB以外のISPのSMTPサーバを経由するメールが送信できなくなったため、土曜日を待ってカスタマーセンターに電話しました。

「何か制限していませんか?」と聞きましたが、「何も制限していない。他のISPのSMTPサーバの問題だから、そのISPに聞いてくれ」の一点張りでとりつく島もありません。この辺りがNexyz.BBの悪評の原因かと思い、少し頭に来ました。

で、営業担当者に電話して同じ相談をしましたところ「25番ポートを587番ポートに変更してうまく行ったお客様がいます」と教えてくれました。営業の方がよく知っているじゃないか。

やはり25番ポートを遮断していたのです。Outbound Port 25 Blocking(OP25B)といいます。OP25BについてはOP25Bに影響されない上手な使い方(迷惑メール相談センター)に分かりやすい説明があります。

OP25Bに対応するには、メールソフトの設定を変える必要があります。メール送信に使用するSMTPサーバのポート番号を通常の25から587に 変更し、SMTP認証を有効にします。SMTP認証に必要なユーザIDとパスワードはPOP認証と同じ場合も異なる場合もあるようなので、インターネット サービスプロバイダに聞いてください。

私の場合は、これでうまく行きましたので、引き続きNexyz.BBを使用していこうと思います。
posted by ピカリ入道 at 00:00| Comment(0) | TrackBack(0) | コンピュータ

2007年10月17日

Nexyz.BBでメール送信ができない

■Nexyz.BBに変えたらメール送信ができなくなりました

Webの閲覧、動画のストリーミング再生、ファイルのダウンロード/アップロード、メールの受信と正常に行えたので安心していたのですが、メールの送信だけができないことに気づきました。
 
Nexyz.BBのSMTPサーバを経由して送るメッセージはうまく行くのに、他のサービスプロバイダのSMTPサーバを経由すると全く応答が返ってきません。
 
Nexyz.BBのホームページから相談メールを送りましたら「カスタマーセンターに電話せよ」とのお返事。受付時間が10〜18時じゃあ、宮仕えの身には無理な相談。
 
土曜日まで待つことにしました。

posted by ピカリ入道 at 00:00| Comment(0) | TrackBack(0) | コンピュータ

2007年10月15日

Nexyz.BB ADSL その2

■Flet'sからNexyz.BBにADSL接続を変更しました

会社から帰って、スプリッタとADSLモデムをNexyz.BBからのレンタル品に入れ替えました。このADSLモデムは正確にはルータ機能付きADSLモデムです。
 
まずモデムとPCを直接つないで、PCのIPアドレスをモデムのDHCPサーバから取得する設定にし、インターネットにアクセスしてみました。正常に接続できました。
 
うちは家庭内LANを敷いていますので、BUFFALOのダイアルアップルータでFlet's ADSLにつないでいました。Nexyz.BBのモデムがダイアルアップルータを兼ねているので、BUFFALOのルータは不要になりますが、設定を変え るのが面倒なのと、Nexyz.BBモデムの使い方を調べるのが面倒なので、次のように設定しました。
 
Nexyz.BBのADSLモデム
  • NATを無効
BUFFALOのルータ
  • WAN側:DHCPからIPアドレスを取得
  • LAN側:固定IPアドレス(以前のまま)
ネットワークのセキュリティはすべてBUFFALOのルータで確保する方針です。

posted by ピカリ入道 at 00:00| Comment(0) | TrackBack(0) | コンピュータ

2007年10月07日

Nexyz.BB ADSL

■Nexyz.BBを契約しました

9月終わりに突然Nexyz.BBから電話があり「ADSL接続料金+インターネット接続料金が月額1,999円になる」との勧誘がありました。
 
Flet's ADSLでは、利用料2,520円/月に加えて、モデム、スプリッタのレンタル料が490円/月、インターネット接続料が735円/月で、計3,745円 /月かかっています。現在のインターネット接続を解約すると、メールアドレスが変わってしまうので、735円はそのままとしても、約1,000円安くなる ことになります。
 
値段につられて、契約しました。
 
数日後カタログが送られてきて内容を確認したところ、無償レンタルされる機器にスプリッタが含まれなく、電話機はADSLモデムに接続するように なっています。つまり「IP電話を使え」ということらしい。まだIP電話を信頼していないので営業担当者に「スプリッタも欲しい」と告げますと、快く承諾 され、2日後には早々とスプリッタだけが届きました。
 
そしてFlet'sからNexyz.BBへの切替工事が10月15日に決まりました。

■リンク:

posted by ピカリ入道 at 00:00| Comment(0) | TrackBack(0) | コンピュータ

2007年07月14日

OpenOfficeとAccessとSqlite

■住所録の管理

ある会の住所録管理係になってしまいました。前任者はMS Accessで管理していましたが、私はAccessを持っていません。さてどうしたものか?

OpenOffice.orgというものがあります。Writer、Drawは使ったことがあるのですが、データベースのBaseは使ったことがありません。これ、使えないだろうか?

OpenOffice自体もデータベースを持っています。全部OpenOfficeにお任せするのも手ですが、次に引き継ぐ人がOpenOfficeではなかったときにまたデータの変換に困ります。

OpenOfficeはデータベース管理のフロントエンドとして使用し、データベース自体はSqliteに任せるのはどうでしょうか。SqliteはODBCで接続できますし、引き継ぐときもファイルひとつ渡せばすみます。

会員の住所録更新と、タックシールへの印刷が最終目標です。

■AccessのデータをOpenOfficeに移管

まずAccessのデータをOpenOfficeに取り込みます。

OpenOffice Baseを開きますと、データベースウィザードが起動します。「◎既存のデータベースに接続」にチェックし、「Microsoft Access」を選択します。後はAceessデータの.mdbファイルを指定すればOpenOfficeから見ることができます。

実際は、残念ながらデータを閲覧することができても、新規追加や更新はできませんでした。レコードの形式が適切ではないのかもしれません。

OpenOffice自体のデータベースに変換するには次のようにします。
  1. OpenOffice Baseを新規作成します。
  2. 「データベース」ペインで「テーブル」を選択します。
  3. Accessに接続したOpenOfficeでも同様に「テーブル」を選択します。
  4. Accessに接続したOpenOfficeの「テーブル」ペインから、変換したいテーブルを、新規作成したOpenOfficeの「テーブル」ペインへドラッグします。
これでOpenOffice自体のデータベースになります。新規追加や更新ももちろんうまく行きます。

■SqliteのWindows版

SqliteのWindows版は本家 http://www.sqlite.org/ にありますが、これだけではODBCドライバが足りません。

ググッて見ますとSQLite ODBC Driver http://www.ch-werner.de/sqliteodbc/ が見つかりました。本家よりもバージョンが古いですが、ODBCドライバをインストールできます。

sqliteodbc.exeを実行すると[スタート]メニューに「SQLite ODBC Driver」が追加されます。CUIの管理コマンド「sqlite3」もありますから、データベースのテーブルを作成したり、レコードをインサートした りできます。次のコマンドを実行すればSqliteのデータファイルができます。
> sqlite3 filename
テーブルを作成するときに注意があります。

必ずprimary keyとautoincrementを指定したフィールドを用意してください。これがないと、OpenOfficeから新規追加、更新ができないようです。前述のAccessデータの更新ができなかった理由も同様なものかもしれません。

「sqlite3」で作成したファイルをユーザDSNに追加して、OpenOffice BaseからODBCで接続すればOKです。
posted by ピカリ入道 at 00:00| Comment(0) | TrackBack(0) | コンピュータ