Mistel BAROCCO の設定について1 右クリック

右クリックをキーに割り当てたい。

 

右クリックのショートカットキーは「SHIFTG+ F10」

なので、

「FN + CTRL」でマクロ記録スタート。

今回は「FN + SPACE」に割り当てるので、「FN + SPACE」を押下。

「SHIFT + FN + 0」を押下

「FN + CTRL」で記録完了

 

以上です。

VB.net パラメータクエリ DBNull.Value を入れているのに、0になってしまう。

 

 

params.Add(New OleDb.OleDbParameter("@data1",
params.Add(New OleDb.OleDbParameter("@data2"
params.Add(New OleDb.OleDbParameter("@data3",

params.Add(New OleDb.OleDbParameter("@data1", ← これが重複していた
params.Add(New OleDb.OleDbParameter("@data2", ← これが重複していた
params.Add(New OleDb.OleDbParameter("@data3" ← これが重複していた

 

params.Add(New OleDb.OleDbParameter("@data4",
params.Add(New OleDb.OleDbParameter("@data5", DBNull.Value) ← これが0になる
params.Add(New OleDb.OleDbParameter("@data6"

 

こんなかんじで最初のパラメータ3つが重複して、順番がおかしくなっていたようです。しかし、パラメータが多くても通るんですね。気を付けます。

実行されないサービスの罠

案件: 指紋ダブル認証システム

    

ログイン時に指紋認証画面を表示し、二人の認証がない場合には、Windows を強制的にシャットダウンする。

 

ログイン画面は.netで、シャットダウン処理はWindowsServiceを.net で作成し実現する。

ログイン画面はタスクスケジューラに、Priority0で登録し、ログイン時になるべく早く起動する。また、起動するまでに時間がかかる場合があるので、Win32アプリで「お待ちください」の表示を行う。Win32なので.netより早く表示される。これもタスクスケジューラにPriority0で登録しておく。(一度エクスポートし、XMLを編集しインポートする)※もっと早く画面表示する方法をご存知の方、ご教示ください。

 

さて、サービスは起動と同時に開始され、認証フォームのプロセスが出現するのを監視している。認証フォームにおいて認証がなされると、サービスのその旨が通知される。

認証フォームのプロセスの消失とともに、

認証されていれば、サービスは監視動作を停止する。

認証されていなければ、強制的にシャットダウンする。

のどちらかの処理を行う。

ちなみに、サービスはもう一つのサービスと相互監視を行い、どちらかが止まっている場合に、相手を再起動することにより、サービスの停止を防止する。

 

今回なぜか、強制シャットダウンが行われないことがあった。

たまに再現するが条件が分からない。

たまたまタスクマネージャを開いていると、

認証フォームが二重に起動していた。

画面に表示されているのは一つだけで、もう一つはプロセスにあるだけだったので気づかなかった。

この隠れたプロセスにより、プロセスの消失を検出できず、シャットダウン処理が行われなかったようだ。

Windowsアプリケーションフレームワークプロパティ」の「単一インスタンスのアプリケーションを作成する」にチェックを入れた。

また、タスクスケジューラの「タスクが既に実行中の場合に適用される規則」について、「新しいインスタンスを並列で実行」にしていたのを、「新しいインスタンスを開始しない」に変更した。

この二つの処理により、二重起動しないようになるといいな。

 

※追記 二重起動でもなくて、シャットダウンに失敗することがあるようだ。

原因は不明だが、シャットダウン処理をタイマーで3秒おきに起動するとうまく動作しているような気がする。ちょっと処理を待つのがコツなのか?

今後のテストで安定動作するかどうか。また報告する。

 

シャットダウンが行われなかった時のために、サービスの後に、コンソールアプリで認証が終了しているかチェックし、認証されていなければシャットダウンするダブルシャットダウンとして実装しましたが。はてさてどうなることか。

 

コンソールアプリでの監視の方が確実のようだ。

しかし、シャットダウンまでの時間はサービスの方が上。

ということで、コンソールアプリは100秒待機してから動作するようにしました。

 

この話はここまでにしとうございます。

VisualStudio2017 Microsoft.Office.Interop.Access が参照できない 

COM参照「4affc9a0-5f99-101b-af4e-00aa003f0f07」バージョン9.0を解決できませんでした。 オブジェクト参照がオブジェクト インスタンスに設定されていません。

 

始まりはOFFICE365の上にそのままOFFICE2016をインストールしたこと。

気づいたら、Interop.Accessが参照ができなくなっていました。

アンインストール、再インストール、Fixit 挙句はEXCEL2007を再インストールまでしてみましたがダメでした。

レジストリの該当箇所を削除もしてみましたが、ダメ。

 

 

結局、直接参照したら、エラーは解消した。

とりあえずですが。

参照の追加で、「C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Access

を参照するとエラーが消えました。

が、普通には参照できないので、今度クリーンインストールする予定です。

VB.NET WindowsService 起動しない 実行されない

指紋二重ログインの機能を自作していました。

 

認証されなかった場合に、ウィンドウズサービスで強制的にシャットダウンします。

管理者ではなく、標準ユーザーを作成し、

試すと、ログインしてもサービスが起動していませんでした。

 

手動になっていたところを、サービスのプロパティで自動に変更したのですが、きどうしません。インストールした管理ユーザーの時は起動したのですが。

 

ServiceProcessInstollerをデザインビューで開いて、プロパティを確認すると、

AccountがUserになっていたので、LocalSystemに変更しました。

また、ServiceInstaller の StartType も Automaticに変更しました。

 

以上で、インストール後再起動したところ、自動で起動しました。

 

※追記 後に、なぜか作成したサービスが全く自動で起動しなくなりました。

管理者ユーザーで、一度手動で開始ししてから、もう一度再起動すると起動するようになりました。

Account LocalSystem → Userにしてインストール時にパスワードを入れても改善せず。

????サービスが起動時にエラーをおこしているのか。タイミングの問題なのか。

もう少し検証してみます。

→ サービスのプロパティの「回復」で

  最初のエラー「サービスを再起動する」でとりあえず様子を見ますが。

 

※※ 二つのサービスが相互監視し、動いていなければ再起動、みたいな処理をしているのですが、それを起動と同時に行っているのが悪いような気がしてきました。

タイマーで少しだけ監視処理の開始をずらすことにしました。

 

Windows 起動時に すぐにフォームを表示したい。

スタートアップに登録しても、遅い。

20秒くらいかかっている。遅すぎて使えない。

 

 

そんな時は、タスクスケジューラで、トリガをログイン時にすると結構早いです。

5~10秒にまで縮まりました。

 

さらに、作成したタスクを一度XMLにエクスポートし、

Priority を規定の7 →0 にすると、

!ついにログインご1秒以内に立ち上がりました。

やったね。

 

※追記

 結局安定してすぐにフォームを表示することはできませんでした。

 再起動時は早くても、起動時はすごく時間がかかったりとか。

 また、起動時の状況にもよるようで、

 早く表示されたり、40秒くらいかかったりと、安定しないですね。

コリコランを買いました

迷った末に、購入しました。

肩こりがひどく、毎日痛みに苦しんでいます。

キーボードに長時間向かうことができなくなりつつありましたが。。。

 

コリコラン・・・効きます。

使う前と比較すると、仕事終わりでの肩の痛みが全く違います。

痛みがなくなったわけではないですが、平均すると確実に楽になっています。

 

整体、整形外科、筋トレ、鉄棒、ジョギング。

効果が大きくあったのは、ジョギングとコリコランでした。

運動を忘れずに、コリコランで頑張ります。