佐々木屋

技術的なことから趣味まで色々書きます

Windows 自動ログオンを設定

支店用PCなど、特定アカウントしか使用せず、且つログイン画面も省きたい場合は自動ログイン設定にします。 いくつか設定がありますが、キーの場所は以下で一緒です。 SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon ユーザー簡易切替(WIndowsXP…

自分の作ったプログラムのメモリ使用量を知る

コスト調査であったり何かの実証実験で、自分のプログラムのメモリ使用量を知りたい場合は、System.EnvironmentクラスのWorkingSetプロパティを使用します。 byte単位なので、適当に変換して使用すればよいでしょう。 Console.WriteLine(System.Environment.…

string型は参照型

string型はプリミティブ型に分類されますが、参照型です。よく値型と勘違いされますが誰がなんと言おうと参照型です。 でも、何も考えず以下のようなコードを書くとどうでしょう。結果としては値型のような挙動になります。 string str1 = "Hoge"; string st…

デバイスオートランの無効化

何かと便利なデバイスオートランですが、一昔前にUSBウイルスが蔓延した際にこの機能を無効にしました。 特定デバイスではなく、全てのデバイスに適用できます。 //場所 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer //…

ローカルアカウントの追加と削除

Windowsローカルアカウント #追加 net user @ユーザー名 /add #削除 net user @ユーザー名 /delete Windowsローカルアカウントのグループの追加 ユーザー権限の場合は「administrators」を「users」に変更 #追加 net localgroup administrators @ユーザー名 …

オブジェクト指向型理解度チェック

VB6、VBAからC#、VB.NETへ流れてきた方専用のチェックリストを作ってみました。自分がオブジェクト指向型を理解しているかどうかを17個のチェックで確認することができます。①オブジェクトって何? ②クラスって何? ③インスタンスって何? ④クラスとインス…

手続き型とオブジェクト指向型の関係

VB6やVBAは手続き型と呼ばれていますが、別にオブジェクト指向で書けない訳ではないです。ただ「向いていない」のです。関係性としては、サッカーのフィールダーとキーパーみたいな感じですね。同じサッカー選手でボールを扱うのは一緒ですが、キーパーがド…

値型と参照型

プログラミングを学習すると必ずやらなければならない、そしてよく分からない?値型と参照型の違いについて。このブログは初学者向けの教本では無く、初学者に説明した中でよく分かってもらえない・理解してもらえない分野のみを抜粋して記録するためのもの…

オペレーションシステムのビット数を取得

オペレーションシステムをビット数を取得する方法です。これ以外にも色々ありますが、現在はこの方法が一番楽に取得できます。 なお、表記はC#です。VB.NETでもほぼ同じなので省略します。 オペレーションシステムのビット数 オペレーションシステムのビット…

オペレーションシステムの情報を取得

System.Management名前空間のManagementClassクラスにWin32_OperatingSystemを渡すと、オペレーションシステムの情報が取得できます。 詳細は以下を参照して下さい。 Win32_OperatingSystem class - Windows applications | Microsoft Docs 基本的にオペレー…

クラスを考える⑤(メソッドの引数とプロパティ)

VB6で何かメソッド(サブプロシージャ)を作成する場合、public変数を用意するか引数を持たせるかになると思います。オーバーロードはありませんので、非常に冗長な関数群が出来るのが特徴です(但し仕様上そちらの方が効率的な場合もあります)。オブジェク…

クラスを考える④(静的クラス)

静的クラス(モジュール)のおさらい 静的クラス(VB.NETではモジュールと言います)は通常クラスと違い、インスタンスを作成しないクラスです。よって、newキーワードによる静的クラスの変数を作成することは出来ません。と言いつつ、実際には一つだけ実体…

Windows7をリカバリした状態からWindowsUpdateで8007000eエラー

最近Windows7をリカバリしてWindows Updateすると、8007000e エラーが表示されてWindows Updateが続行できません。 この場合、以下の手順で解決できます。 .NET Framework4.6をインストール(ひょっとするとこれは無くても大丈夫かも) KB3138612(https://s…

クラスを考える③(勘違い)

ここまでのお話で、知らず知らずに「現実世界とプログラミング世界の乖離」が出てきています。じゃあクラスの中身(フィールドやメソッド)はあんこの量とか焼き加減だけど、現実のたい焼きの型にはあんこを入れる場所はないし、焼き加減もはたい焼きの型と…

クラスを考える②(クラスとは?インスタンスとは?)

クラスって何? まず、VB6訛が残っている方は、「モジュール」という概念を一旦忘れて下さい。この概念は後程「静的クラス」でお話します。前にも話しましたが、クラスを調べると設計図という言葉が出てきます。確かに設計図という例えは間違いないのですが…

クラスを考える①(前置き)

クラスはオブジェクト指向プログラミングの世界ではなくてはならない存在です。というか、クラスそのものがオブジェクト指向と言っても過言ではないくらい、大切な存在です。クラスって何?という方はググるか本を読んでみてください。「設計図」という表現…

datetime型から年、月、日、時、分などを操作

前回SQL-Serverのdatetime型の値を日付のみで比較操作するお話でしたが、日付ではなく年や日、時だったりと部分だけを操作する方法です。 前回同様のテーブルを考えます。 支店コード 支店名 アクセス日時 001 岐阜支店 2018-12-11 19:07:33 002 多治見支店 …

datetime型から日付を操作

SQL-Serverのdatetime型の値を日付のみだったり時間のみだったりで操作する方法です。 普段はプログラム側で制御する事が多いですが、結合やWHERE句での条件設定の際はよく使用します。 例えば、以下のテーブルを考えます。 支店コード 支店名 アクセス日時 …

アプリケーションを管理者権限で実行する

UACが有効の場合はアプリケーションを実行する際、管理者権限で実行しないと色々不便になります。 「右クリック」→「管理者権限で実行」とするか、アプリのプロパティの互換性の所で「管理者としてこのプログラムを実行する」とすればいいのですが、アプリケ…

INSERTかUPDATEかをSELECTで確認せずに実行する方法

SQL-Serverにてテーブルにデータを追加する場合の方法を考えます。 「絶対にキー重複しない」のであれば、単純にINSERTすればいいのですが、キー重複する可能性がある場合エラーとなりトランザクションが失敗する恐れがあります。 方法① DELETE→INSERT 俗に…

非同期処理、マルチスレッド(余談:別スレッドからフォームコントロールを操作)

そもそもフォームもクラスですし、クラスにあるオブジェクトを別スレッドから操作は出来ません。フォーム自体がスレッドセーフではないから当然と言えば当然なんですが、非同期処理をやるとカウンタや進捗表示など、どうしてもフォームオブジェクトへアクセ…

WIndows Server 2003(WindowsXP)からWindows10へのダラー接続が出来ない件について

支店のパソコンが続々とWindows10が導入されていく中、ある時期からWindows Server 2003からWindows10端末にダラー接続が出来ないことが発覚しました。よくよくログ見ると、管理者コマンドによるバッチも全部こけてる・・・。事前検証はしてたけど、まさかダ…

コマンドによるIISのインストール(FTPサービスあり)

IIS7.0よりコマンドによるサイレントインストールが可能となりました。会社の環境だとFTPサービスも同時にインストールするので、一緒にやっちゃいます。 インストール pkgmgr.exeを利用して実行します。pkgmgr.exeはWindowsオプション機能をインストールで…

SQL Server 2008 R2 SP2 Express Edition のサイレントインストール

正直役に立つのか?分かりませんが、一応備忘録として。 情報がありそうでなかった(というよりは多すぎて取捨選択が大変)ので、まとめてみました。ここでのサイレントインストールはWindows7、8、8.1、10環境下で実行を想定しています。以下は私の使用して…

アクセス修飾子

アクセス修飾子はメンバや型などのアクセスを制限することができる機能です。「スコープ」と言ったりもします。 アクセス修飾子一覧を記載します。これ以外にもありますが、主要というか、私が日常的によく使われるものだけをピックアップしています。 アク…

クラスのプロパティ④(アクセスレベル制御)

getter、setterそれぞれにアクセス修飾子を設定することが可能です。 C#のみ、自動実装プロパティでも従来の記述でもどちらも設定可能です。 //読み取り、書き込みともに公開 public string Hoge { get; set; } //読み取りのみ公開、書き込みはクラス内部か…

クラスのプロパティ③(getter/setter制御)

外部からの制御用として読み取り、書き込みの設定制御が可能です。 C#とVB.NETで少し記法が異なりますので注意しましょう。 読み取り専用 //getterのみを記述すれば読み取り専用となる //自動実装プロパティの場合 public string Hoge1 { get; } //通常記述…

クラスのプロパティ②(自動実装)

前回お話した通り、プロパティは自分でgetアクセサとsetアクセサを設定する必要がありました。自動実装プロパティを利用すると、この部分を簡略して記述することが可能です。 //通常 private string _hoge; public string Hoge { get { return _hoge; } set …

クラスのプロパティ①(基本)

クラスのプロパティはオブジェクト指向プログラミングの中でも非常に有用で、クラス構築ではなくてはならない存在です。オブジェクト指向プログラミングの話でよく出てくる「隠蔽」を実現することができます。VB6出身であれば分かりますが、所謂Public変数を…

Cookieの設定

作成と取得の基本 Cookieはクライアントに保存されますので、Sessionと違いWebアプリケーションを終了しても残すことが可能です。 例えば、条件によって表示結果を変えるようなサイトでのチェックボックスを記憶するとか。 Response.Cookies["UserName"].Val…