PMPの流儀

PMPの流儀

エンジニアのページ

MENU

Programming

プロセスとマルチスレッドの違いについて

WindowsなどのOSが持つプロセスとスレッドの関係について解説します。またCPU用語で最近8core 16thread などのスレッドという単語も出てきていますが、その関係についても触れます。 1. プロセスとは 1.1 メモリ空間 1.2 CPUレジスタ情報 1.3 プロセスの欠点…

C++クラスによるマルチスレッドのデザインパターン

C++によるマルチスレッドプログラムのデザインパターンについて紹介します。マルチスレッドはうまく使えば便利ですが、理解が不完全だと簡単にアクセス違反などの例外が発生します。クラスによるカプセル化によりマルチスレッドの複雑さを限定的にすることで…

【日付計算】何日後、何日前の日付計算を極める by C言語

今日から1万日後の日付けは何日か ?というような日付計算を1から考えました。C#なんかだとライブラリがありますが、あえてC言語でアルゴリズムを自分で考えてみます。最初はシンプルに実現し、完成系は足す値に寄らない高速演算をします。日付計算は簡単なよ…

PowerShell フォルダから特定のファイルを抽出

PowerShell をつかうとフォルダ内から条件に一致するファイルを抽出する事が簡単にできます。最大の特徴であるオブジェクトをパイプ渡しする事で、簡潔に記載できるところがポイントです。Where-Object の ? と、For-Each の % を組み合わせることで、様々な…

PowerShell 数値の2進数文字列 取得関数(パイプライン対応)

PowerShell で数値を2進数文字列に変換する関数を紹介します。桁数合わせや間にスペースを入れて見やすくしています。最終形態はPowerShellらしくパイプラインに対応します。 1. 単純な例 2. 自作関数 3. パイプライン対応版 (adsbygoogle = window.adsbygoo…

ネットワーク上のPowerShellスクリプトをバッチファイルから起動する

ネットワークにあるPowerShellスクリプトをバッチファイルから起動する方法を紹介します。PowerShellスクリプトと起動用バッチファイルをセットでどこに配置しても動作する汎用性を持たせます。 概要 解説 解決策1 ネットワークドライブ 解決策2 環境変数 (a…

PowerShell ログ出力クラス (前の行からの経過時間つき)

PowerShellで便利なログ出力クラスを紹介します。関数でも良かったのですが、ファイル名称を保持するためにクラス化してすっきりさせました。時間情報と合わせて前の行からの経過時間付きです。 クラスについて ロギングフォーマット コード (adsbygoogle = …

C言語でgoto文を適切に使うとメリットがあります

C言語を筆頭として多くのプログラム言語にはgoto文と呼ばれる命令があります。にもかかわらずプログラム界からは長い間忌み嫌われるタブーな命令として君臨しています。 多用すると収拾がつかなくなるのは確かですが、適切な場面(多重ループからの脱出と異常…

PowerShell から Excel を操作(オートメーション)

PowerShell から、Excel をVBAのように使う事が出来ます。VBAよりも PowerShellが好きって方に紹介します。 Excel をプログラムで操作する サンプルプログラム PowerShellとVBA (adsbygoogle = window.adsbygoogle || []).push({}); Excel をプログラムで操…

Windows10 標準機能で、ログイン時に音量を下げる方法 (PowerShell)

ログイン時にPCの音量を自動的に下げる方法を紹介します。ツールなどは不要でWindows10の素の状態のままできるのでインストールが禁止されている会社のPCでも安心です。 大きな音がして驚かれた経験がある方はどうぞ 1. 概要 2. スクリプト準備 2.1 AudioVol…

PowerShell CSVファイルにアクセスする

PowerShellからCSVファイルを開いて内容にアクセスする方法を紹介します。以前はWindowsにはテキストのストリームを扱うツールがないため、awk やsed などUnix系のコマンドを使っていましたが、PowerShellでも簡単にアクセスができます。 (adsbygoogle = win…

PowerShell UIAutomation Extensionsでアプリを操作(オートメーション)

アプリケーションのウインドウ操作は分かりすく使いやすいですが、同じ作業を何度もやるのは苦痛です。Excelのようにオートメーション機能があるものは限られています。今回は PowerShell から、Win32アプリケーションを操作(オートメーション)する方法を紹…

PowerShell バックアップと過去データの削除

データのバックアップと、古いバックアップを削除するバッチ処理を紹介します。バックアップには定番のrobocopyを使用します。古いディレクトリの削除をどう実現するかがポイントです。 バッチファイルとPowerShellの両方の形式で記載して、両者の違いを比較…

PowerShell 文字コードを16進数に変換する

PowerShell で文字コードを16進数に変換する方法です。 文字を[byte]型に変換した後に、16進数の文字列化をしています。[Convert]は、.Net Framework のクラスです。.Net Frameworkを自由に使えるのはとても便利です。 (adsbygoogle = window.adsbygoogle ||…

PowerShell 空き(フリー)ドライブレターを探す

PowerShell にてネットワークなどのUNCパスを取り扱う時に、ネットワークドライブに割り付けをしてからローカルドライブとして取り扱う時があります。 Zなど固定で済ませたいところですが、汎用化を考えて空きのドライブレターを探す関数を作ります。 (adsby…

PowerShell ショートカットファイルを実行する

PowerShell からショートカットファイルのリンク先を実行する方法を紹介します。 (adsbygoogle = window.adsbygoogle || []).push({}); まず、ショートカットはWsh(Windows Script Host) の力を借りてフィルター関数を作成します。フィルターを作っておくと…

PowerShell 関数に複数の引数を参照渡し

PowerShellは一癖ある言語で、文法が少し違うのため戸惑う事が多いです。関数に参照渡しの引数を使うのも一苦労。 新しい言語ではこういう基本的なところではまってしまうんですよね。 (adsbygoogle = window.adsbygoogle || []).push({}); STEP1 参照に ref…

VBA から PowerShell スクリプトをウインドウ非表示で起動する

VBAからPowerShellのスクリプトをウインドウ非表示で起動する方法を紹介します。 PowerShellを非表示で起動するには、こちらで紹介している通りWSHを経由させます。 pmp-style.hatenablog.com その結果、VBA → WSH → PowerShell というコール順になります。 …

PowerShell 実行時にウインドウを非表示にする方法

PowerShell スクリプト実行時は必ずPowerShellのウインドウが開きます。スクリプトをタスクスケジューラーで実行させるようなケースではウインドウが表示されるのは避けたいものです。 PowerShell をウインドウ非表示で実行する方法を紹介します。 スクリプ…

PowerShell プロセスのCPU使用率を取得する

PowerShell でプロセスのCPU使用率を監視することができます。Get-Counter コマンドでパフォーマンスモニタの値を簡単に取得することが可能です。 (adsbygoogle = window.adsbygoogle || []).push({}); メモ帳を起動してCPU使用率を監視し続ける 起動した後…

UI Automation PowerShell Extensions の配布サイト

最近 PowerShellがマイブームです。 中でもWin32アプリでもなんでもオートメーションが容易にできる Extension パックが気に入っています。 本家が閉鎖され、今はここで最終版が公開されています。 UI Automation PowerShell ExtensionsのDownload(再配布) –…

C++演算子オーバーロードのサンプル

C++ 演算子のオーバーロードのサンプルを紹介します (adsbygoogle = window.adsbygoogle || []).push({}); double 型のラッパークラスとして Double 型を作成します。 なるべく標準型の演算子と同じ意味になるようにするのと、コールコストを減らすためにき…

C++独立性の高いクラス設計(インターフェース)

C++はC言語にオブジェクト指向を無理やり付け加えたため落とし穴が至る所にある言語です。だからといって駆逐されてはおらず、速度を求めたり軽くする個所にはC, C++は必要です。 C++の問題点の認識とそれを解決するクラス設計を紹介します。 C++のクラス設…

(fciv)複数のファイルのハッシュリストを作成する

マイクロソフトから公開されているツールで複数のファイルをまとめてハッシュ値を取得して保存することができます。 ファイルの整合性確認に使用できます。 (adsbygoogle = window.adsbygoogle || []).push({}); ダウンロード https://support.microsoft.com…

社外でMicrosoft Teams, OneDrive を自動起動しない方法

コロナウイルスの影響でリモートでパソコンを使用する機会が増えています。Office365を導入している会社では Microsoft Teams を使用している方も多いでしょう。社外で集中して仕事をするときには起動したくない時があります。ぶっちゃけ仕事外の私用で起動…