2020年1月11日土曜日

HP B210a トラブル対策

昨年末は暖冬のせいか、給紙失敗は少なかった...
が、インク交換時から、縦筋汚れ(ヘッドが紙に当たっているような??)が出るようになった → "システムエラー"が出るようになり起動しなくなる まで行ったので対策を

電源を引っこ抜いてしばらく放置
 (30秒程度だとダメ、5分以上なら大丈夫そう)

その他
- プリンタヘッド右側のレバーでプリンタヘッドを外して端子を掃除すると治るとか
 (インクを水洗いしてメンテする人もいる模様) - "HP178 空気穴"で検索すると100均のcanon用インクでスポンジから補充できるみたい

もうちょっと使えそうかな


2019年2月16日土曜日

Travel keyboardとWindows10でトラックポイント効かない

Windows10にしてからドライバが勝手にアップデートされたりするせいか挙動が変わることが多いですが、トラベルキーボードのトラックポイントとUltraNaviが効かなくなったので対処法 (キーボードやマウスは効くんですけどねぇ)

とりあえす1803では以下で対処出来ました。

1. 設定 -> デバイス
 "IBM USB Travel Keyboard with UltraNav"と表示されている状態
2. ↑をスクロールさせると"デバイスとプリンター"があるので選択 (探しにくい...)
3. "IBM USB ..."を右クリック
4. "ハードウェア"タブに"Synaptics Composit USB HID device"が2つ存在するので以下の対応をそれぞれに対して行う
 プロパティ -> 設定の変更 -> "ドライバ"タブ -> ドライバーの更新 -> "コンピュータを参照して..." -> "コンピュータ上の利用可能なドライバ" -> "USB Composite Device"を選択


"4"で2個"Synaptics..."があるが、片方がトラックポイントで片方がUltraNaviの模様。

以前は別の対策を行ったのだけど、Windows Updateでドライバが更新されたりするとまた使えなくなるのでこの方法の方がお手軽な模様。
(自動のドライバ更新はちと勘弁してほしいところです...Lenovoの印象も悪いし先日もX220がログイン黒画現象でグラフィックドライバ削除で回復というのもありましたし)



 

2019年1月5日土曜日

HP 210aで年賀状を印刷する 2019年版(位置ずれ対応)

平成最後の年賀状となったが...印刷位置がズレる!!
今回はGIMPからの印刷ではなく、Windows10のエクスプローラから印刷することで回避できたので設定をメモ


0. あらかじめGIMPでpngとかでエクスポート
1.上記ファイルをエクスプローラで右クリック -> 印刷
2. 以下設定
 用紙サイズ はがき
 品質 高画質
 用紙の種類 インクジェット用官製はがき
 画像の部数 お好みで
 写真をフレームに合わせる チェック
3. オプションの以下をチェック
 印刷をシャープにする
 プリンターと互換性のあるオプションのみを表示する
4. 上記オプション -> プリンターのプロパティ
  給紙方法 フォトトレイ <テスト印刷時はA4で位置を検討
 用紙サイズ はがき < テスト時もこれでOK
 メディア インクジェット用官製はがき
 品質の設定 カスタム
5. さらに、上記から詳細設定
  グレースケール印刷 オフ < 他を選択すると白黒になるので注意
  フチなし印刷 フチあり印刷 < これでよい!!

※ レイアウトタブに"印刷の向き"があるが、最初は横になっている。縦にするとプレビューにも反映されるので、上記ハガキ印刷時は"縦"にしている

とりあえずコレでなんとかなった...


というわけで、HP210aも連続印刷でスジスジになるがまだ来年も使っているであろう??
(帰還後、追加印刷したらスジスジが出なくなっていたので時間をおけば治る感じ??)


2018年5月3日木曜日

VisualStudioCommunity2015でインストールが進まない

ASP.netのインストールでプログレスバーが進まない場合は、TiWorker.exeを落とすと解決しました。

1.タスクマネージャー
2.詳細
3.TiWorker.exeを右クリック
4.待機チェーンの分析
5.全部チェックしてプロセスの終了ボタン

上記操作でプログレスバーが先に進みます。

2018年4月8日日曜日

C#で正規表現

基本
. : 任意の1文字
+ : 直前の文字が文字が無いか1文字以上連続
* : 直前の文字が1文字以上連続
? : 直前の文字がないか、1文字あるか

^ : 行頭
$ : 行末

hoge[a-z]hoge : []内のアルファベットいずれか
hoge[^1-9]hoge : []内は数字以外

()はグループ化
(aaa|bbb) : aaaかbbbいずれか
hoge(eb)+ : hogeeb, hogeebeb, hogeebebeb など

\d : 数字

こちらのサイトがとても参考になります
http://hodade.com/seiki/page.php?chapter_3

一例ですが、以下からxxx-xxxxを抜き出したい場合 (xが数字)
123-4567 111111-6666 9990-999

こんな感じで
(\s|^)\d{3}-\d{4}\s
-行頭かスペースで始まり
- 数字3桁
- "-"を挟んで
- 数字4桁
- 空白で終わり
という意味になります


C#だと"Matches"を使うとマッチした内容がリストに追加されるので以下のようなコードが書けます

例: textbox_inの文字列をtextbox_regのパターンで検索する場合
---
using System.Windows.Forms;

using System.Text.RegularExpressions;

namespace RegEx01
{
    public partial class Form1 : Form
    {


        private void button_exe_Click(object sender, EventArgs e)

        {
            var text = textBox_in.Text;
            // var pattern = @"\s+";       // space
            var pattern = textBox_regPattern.Text;
            var regex = new Regex(pattern);
            textBox_out.Text = "";

            /*
            // 存在するかどうかを調べる
            var match = regex.IsMatch(text);

            textBox_out.Text = match.ToString();
            */


            // 検索結果を表示
            var matches = regex.Matches(text);
            foreach( var match in matches)
            {
                textBox_out.Text += match.ToString() + "\r\n";
            }

2018年2月24日土曜日

画像ファイルのノルム値を比較

- input側のtextboxにファイルをまとめてドラッグ&ドロップ
- "計算"ボタンでoutput側textboxにファイル名とノルム地をカンマ区切りで表示

using OpenCvSharp;

namespace PhotoDiffAnalyzer
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        // 入力ファイルリスト
        List<string> sourceFileList = new List<string>();

        /// <summary>
        /// Ctrl-A対応
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void textBox_DiffFiles_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Control && e.KeyCode == Keys.A)
                textBox_DiffFiles.SelectAll();
        }


        private void textBox_InputFiles_Enter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))

            {

                e.Effect = DragDropEffects.Copy;

            }
            else
            {

                e.Effect = DragDropEffects.None;

            }
        }

        private void textBox_InputFiles_Drop(object sender, DragEventArgs e)
        {
            // 操作対象のリストをクリアする
            sourceFileList.Clear();
            textBox_InputFiles.Text = "";


            // ファイルリスト更新
            string[] fileName = (string[])e.Data.GetData(DataFormats.FileDrop, false);
            foreach (string file in fileName)
            {
                if (File.Exists(file))
                {
                    string ext = Path.GetExtension(file).ToUpper();
                    if (ext == ".JPG" || ext == ".BMP" || ext == ".PNG")
                    {
                        // 入力ファイルリストに追加
                        sourceFileList.Add(file);

                        // 表示更新
                        string dispStr = Path.GetFileName(file);
                        textBox_InputFiles.Text += dispStr + "\r\n";
                    }
                }
            }
        }

        private void button_Exec_Click(object sender, EventArgs e)
        {
            String outStr = "";

            foreach(String File in sourceFileList)
            {
                Mat image = new Mat(File);

                image.Canny(120, 80);
                double norm = Cv2.Norm(image);

                outStr = Path.GetFileName(File) + "," + norm.ToString() + "\r\n";

                textBox_DiffFiles.Text += outStr;
            }
        }
    }
}

2018年2月18日日曜日

ファイルをまとめてドラッグ&ドロップ

1. ファイルをまとめてテキストボックスにドラッグ&ドロップ
2. テキストボックスに↑のファイルを表示

という動作をさせます。

1. FormにTextBoxを配置
2. TextBoxのプロパティのAllowDropをtrueにする
3. 上記TextBoxに "DragEnger" , "DragDrop"イベントを追加
4. 上記イベントを実装
        private void textBoxPhotoFile_Enter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                e.Effect = DragDropEffects.Copy;
            } else
            {
                e.Effect = DragDropEffects.None;
            }
        }

        // 入力ファイルリスト
        List<string> sourceFileList = new List<string>();

        /// <summary>
        /// 操作対象の画像ファイルをドラッグ & ドロップした際にfileListとして登録する
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void textBoxPhotoFileDrop(object sender, DragEventArgs e)
        {
            // 操作対象のリストをクリアする
            sourceFileList.Clear();
            textBox_InputFile.Text = "";

            // ファイルリスト更新
            string[] fileName = (string[])e.Data.GetData(DataFormats.FileDrop, false);
            foreach (string file in fileName)
            {
                if (File.Exists(file))
                {
                    string ext = Path.GetExtension(file).ToUpper();
                    if(ext == ".JPG")
                    {
                        // 入力ファイルリストに追加
                        sourceFileList.Add(file);

                        // 表示更新
                        string dispStr = Path.GetFileName(file);
                        textBox_InputFile.Text += dispStr + "\r\n";
                    }
                }
            }
        }