mogmo .NET

C#/XAML/VB6たまにC++についてメモ程度に書いていく。あくまで自分用。責任は取れません。

WinAPI|SetThreadExecutionStateを使ってスリープなどへの移行を防ぐ

WinAPIを使って、アプリ起動中に スリープモード ディスプレイの自動電源OFF スクリーンセーバー への移行を抑止する方法について、調べて実験した内容を書いていきます。 SetThreadExecutionState API 引数 戻り値 タイマーを使う場合 注意事項 テストプロ…

.NET CoreでShift JISを扱うためのおまじない

.NET Frameworkでは問題なく扱えるが, .NET Coreの場合はひと手間加えてやらないとShift JISが扱えない。 ひと手間加えないとどうなるか using (var reader = new StreamReader(file, System.Text.Encoding.GetEncoding("Shift_JIS"))) { // ... } このコー…

std::filesystemのcreate_directories関数を使おうとしたらはまった

std::filesystems::create_directories()を下のコードのようにして書いたら,Debug版では複数ディレクトリの作成に成功するが,Release版では作成できなくなるという現象に出会った。 bool CreateDirectories() { CString path = _T("C:\\DummyDir\\DummySub…

VC++のUnicodeコンソールアプリケーションで作るときの初期処理

mainではなくwmainを使う コンソールに日本語出力できるようにする wprintfを使用する std::wcoutを使う 引数を受けとる キーを入力するまでポーズする 文字列を扱うときはマクロを使う データ型 文字列 CString 次回 mainではなくwmainを使う ユニコードア…

MFCを使ったユニコード文字セットのWindowsコンソールアプリケーションを作る

まずはプロジェクトを作成する 手順 次回 まずはプロジェクトを作成する 以下の手順でMFCフレームワークを使用したC++コンソールアプリケーションが作成できます。 使用IDE:Visual Studio 2019 OS:Windows 10 手順 [新しいプロジェクトの作成]画面で[Windo…

VS2019でGoogle TestとGoogle Mockを導入する

C++の単体テストをやりたいから、Google Testプロジェクトテンプレートを使ってテスト環境を整えてみるよ! Google TestとGoogle Mockってなに? Google Test ユニットテストフレームワークの 1 種です。正式名称は、Google C++ Testing Frameworkといい、開…

CString引数の渡し方

MFC

12月までMFCのアプリを作ることになりました。 @mogmo1012です。久しぶりにMFC触るとCStringの扱いかたをいつも忘れてしまう…… 値渡し (CString text) そのまま書くと値渡しになる。 長い文字列を渡すとメモリ食う。 void CSampleClass::A(){ text = "aaa"; …

AppleScript|Finderで右クリックから新規ファイルを作成する

こんにちは。もぐも(@mogmo1012)です。 最近macを買いました。20万…高かった…それはさておき,最新版のmacOSには,Windowsのエクスプローラー上でファイルを新規作成する機能が無いみたい。解決策を探していたら,AppleScriptを使えば条件付きで実現可能で…

【コマンドスクリプト】宛先・件名・本文をテンプレート化したバッチファイルを作る【Bat】

もぐもです。(`・ω・´) 前回は,GoogleメールのURLに宛先・件名・本文が設定できる方法について書きました。 mogmo811.hatenablog.com簡単なものならこれ方法で十分です。 今回は,以下のような理由でバッチファイルを作ってみました。 件名に月日を使いたい …

【Googleメール】URLに宛先・件名・本文を設定して新規メール作成画面を開く

こんにちは。もぐもです(`・ω・´)テレワークが始まって,報告をメールで行うようになり,お決まりの相手にお決まりの内容を送ることが多くなってきたのですが,宛先・件名・本文をまとめてテンプレートに登録する機能がGoogleメールにはないだとぉぉ。。 なん…

【Ubuntu】WSLにUbuntu 18.04 LTSをインストールする

WSLとはWindows Subsystem for Linuxの略。 Windows上でLinuxを動かせる機能です。もぐもです(`・ω・´) Redmineを導入したくてUbuntuをインストールすることになったので,そのメモもかねて。 環境 Ubuntuのインストール WSLの有効化 Ubuntuインストール Ubun…

OCXファイルの登録

OCXファイルとは フルスペルはOLE Custom Control。以下引用。 OCXとは、Windowsのプログラムファイルの形式の一つで、OLEコントロールやActiveXコントロールなどの形で部品化されたコンピュータプログラムを格納するためのもの。単体で実行することはできず…

取扱説明書に使うフォントを選定した

うちの会社では取扱説明書の作成も開発者の業務なので, 毎度製品をリリースするたびに取扱説明書を作成しなければなりません。そこで読みやすいフォントについて調べてみたので投稿します。 フォントの詳しい説明はデザイン関係の書籍やデザイン専門のサイ…

コードを書くときに気を付けていること・気をつけてほしいこと

最初のうちはこんなことに気を付けながら書いてほしいなぁ,気を付けたらいいと思うなって事項のまとめ。今日のテーマの目次です。 記述ルール 命名記法 区切りの書き方 タブ コメント 記法 コメントの内容 行間 VisualStudioならオプション設定を有効活用し…

VBA|基本①データ型,繰り返し,配列など 

こんにちは。もぐもです。 VBAを基礎から見直す機会があったので投稿します。 そもそもVBAってなに Visual Basic for Applicationsの略 MicroSoftのOffice製品の一部(ExcelやWordなど)で利用可能なプログラミング言語 プログラムすることで複雑な処理を自…

リモートコードレビューを試した - 失敗

もぐもです。試験的に在宅勤務が開始されました。 そこで,りもーど環境でコードビューを試してみようとしたところ問題点だらけ... 次回コードレビューを行うときはこの問題点を解決しなければならない。 試そうとしたこと VS 2019 の Live Share 機能を使っ…

C++ | テンプレートの実装はヘッダファイルに書かなければならない

C++

こんにちは。もぐもです。 久しぶりにC++を触っています。さて,C++でMFCアプリケーションを実装している際に,以下のようなエラーが出て四苦八苦しました。 LNK2019 未解決の外部シンボル "public: static int __cdecl Calc::Add(int,int)" (?Add@?$Calc@H@…

Git|SSHで接続できなくなった

Git

新しい環境でリモートリポジトリをクローン出来なくなったのでさあ困った。ってなったときに対処した方法。 結果 lipoyang.hatenablog.com を見ていると,ユーザー設定がおかしそうだいうことが分かった。 どうやらサーバーが受け取るユーザIDの設定が違うの…

メイン画面が起動する前にダイアログを表示する

メイン画面を起動する前に独自のダイアログを表示したくて調べた。 ログイン画面を表示する時なんかが多いかもしれない。 問題点 App.xaml.csでMainWindowを表示する前にダイアログを表示するコードを書いて実行すると,ダイアログを閉じたらアプリケーショ…

テストケース管理の基礎知識

弊社はクラウドサービスの使用が禁止されているため,世に出ている便利ツールのほとんどが使えない。 Googleサービスはギリギリ使用OKなのでテスト項目管理ツール「Qase」を参考にスプレッドシートでどうにかテストケース管理できないか試行錯誤している。 …

テストについて

Googleスプレッドシートでテストケースを管理しているチームは世の中にどれくらいいるんだろう。。 うちの会社ではスプレッドシートやエクセルがゴリゴリに使われているので,無償のツールで成果を出さないと導入が厳しい。 という背景があり,テストケース…

Windowsのショートカット

たまにボケるのでメモしておく。 ショートカットキー一覧 メイン機能 スタートメニューを表示する Windows デスクトップを表示する Windows + D 設定画面を表示する Windows + I エクスプローラーを起動する Windows+ E ショートカットメニュー(右クリック…

アクセス修飾子の確認

サンプル プロジェクトを2つ用意して,アクセス権を確認した。 ClassLibrary1 namespace AccessApp { public class Server { public void PublicMethod() { } // どこからでもアクセスできる internal void InternalMethod() { } // アセンブリ外からはアク…

クラスやメソッドの使用を禁止する

使用禁止にしたいクラスやメソッドの前にObsolete属性を付けるだけでOK。 使おうとすると,警告またはエラーが発生します。第一引数:メッセージ 第二引数:trueならエラー,falseなら警告 [Obsolete("このメソッドは廃止される予定です。代わりに'NewMethod…

DataGrid の表示内容をTextBoxの入力内容でフィルタリングする

参考 WPF/XAML : DataGrid の表示内容を TextBox への入力内容でフィルタリングする - i++ 上記サイトにお世話になりました。 ポイントは以下3つとのこと。 DataGrid の ItemsSource に CollectionViewSource.View を使う CollectionViewSource.Filter にフ…

TextBoxで右クリックするとWindowsがフリーズする

現象 Visual Studio 2017でWPFアプリを開発中に, テキストボックスを右クリックするとVisual Studioがフリーズする現象が起きた。 どのアプリを作ってもフリーズする。困る。Windowsのイベントビューアを見たらこんなエラーが出ていた。Windows イベントビ…

入力エラーの検証

以下サイトが参考になりそう。WPFでの入力値検証 - SourceChordWPFでの入力値検証・その2 ~INotifyDataErrorInfoを使ってみる~ - SourceChord

GridSplitterを使う時の注意

GridSplitter の HorizontalAlignment="Center"を設定してあげないと,挙動が変になる。 正常コード <Grid Margin="20"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="auto"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Grid Grid.Column="0" Background="LightBlue"/> </grid></grid>

ThumbコントロールのMouseDownイベントを発生させる

social.msdn.microsoft.com確かに,Thumbコントロールの MouseDown は, イベントは起きないというか, 正確には,論理ツリーをbuble upして伝播していくんですが, その時にハンドラメソッドが呼ばれないように, Thumbコントロールが実装時にUIElement.Mou…

ListView/ListBoxの要素間の隙間を無くす

WPF

ItemContainerStyleでListBoxItemのスタイルのPaddingを0にすればよい。 <ItemsControl.ItemContainerStyle> <Style TargetType="{x:Type ListBoxItem}"> <Setter Property="BorderThickness" Value="1"/> <Setter Property="Margin" Value="0"/> <Setter Property="Padding" Value="0"/> </Style> </ItemsControl.ItemContainerStyle>