備忘録

備忘録

Windows

タスクトレイのアイコンを消す方法

Ⅰ. はじめに タイトルの通り「タスクトレイのアイコンを消す方法」です。 Ⅱ. やり方 C++の場合 #include <Windows.h> int main() { auto hWnd = FindWindow(L"ApplicationWindow", NULL); NOTIFYICONDATA data; data.cbSize = sizeof(NOTIFYICONDATA); data.hWnd = hWnd</windows.h>…

LinodeでWindowsを起動する方法

https://github.com/ClickSimply/docs/blob/windows-on-linode/docs/tools-reference/windows-on-linode/installing-windows-on-linode-vps.md

WPFでGridを使いコントロールの位置を動的に変更する方法

Ⅰ. はじめに Ⅱ. サンプルプログラム MainWindow.xaml MainWindow.xaml.cs Ⅲ. 実行結果 参考 Ⅰ. はじめに タイトルの通り「WPFでGridを使いコントロールの位置を動的に変更する方法」です。 Ⅱ. サンプルプログラム MainWindow.xaml <Grid Name="grid1" ShowGridLines="True"> <Grid.RowDefinitions> <RowDefinition Height="1*" MaxHeight="80"/> <RowDefinition Height="3*" /> </rowdefinition></rowdefinition></grid.rowdefinitions></grid>

Windowsでポートフォワーディングする方法

Ⅰ. はじめに タイトルの通り「Windowsでポートフォワーディングする方法」です。 Windowsではnetshコマンドを使います。 Linuxではiptablesやufwコマンドを使います。 Ⅱ. やり方 「127.0.0.1:8080に来たパケットを全て127.0.0.1:80に流す」設定を追加する ne…

VisualStudioでx64アセンブリを書き、実行する方法

Ⅰ. はじめに 2018/01/03時点、VisualStudioでプラットフォームをx64と指定した場合インラインアセンブリ(__asm)がサポートされていない為使えません。 エラー C4235 非標準の拡張機能が使用されています: '__asm' キーワードはこのアーキテクチャではサポ…

C++(EXE)からC#(DLL)の関数を呼び出す

Ⅰ. はじめに Ⅱ. 「C++/CLIを使う」方法 1. C++のプロジェクト設定を開き「共通言語ランタイム サポート (/clr)」に変更する 2. サンプルプログラム 3. 実行結果 Ⅲ. 「C#(DLL)側で関数をエクスポートする」方法 1. サンプルプログラム 2. DllExport.bat をダ…

Windowsでsyscallする方法

Ⅰ. はじめに タイトルの通り「Windowsでsyscallする方法」です。 この記事はWOW64を対象とした内容になっています。 x64向けはこちら http://kagasu.hatenablog.com/entry/2018/01/03/200337 Ⅱ. 環境 Windows 10 64bit 1709 Ⅱ. サンプルプログラム サンプル…

C#でChromiumを使う(WinForms, WPF)

Ⅰ. はじめに Ⅱ. WinFormsで使う場合 1. NuGetからパッケージをインストールする 2. プラットフォームをx86またはx64に変更する 3. サンプルプログラムを書く 4. 実行結果 Ⅲ. WPFで使う場合 1. NuGetからパッケージをインストールする 2. プラットフォームをx…

C++でWindowsのバージョンを取得する

Ⅰ. はじめに タイトルの通り「C++でWindowsのバージョンを取得する」方法です。 Ⅱ. サンプルプログラム #include <Windows.h> #include <iostream> typedef LONG NTSTATUS, *PNTSTATUS; #define STATUS_SUCCESS (0x00000000) #define OS_ANYSERVER 29 typedef NTSTATUS(WINAPI* Rt</iostream></windows.h>…

C++でプロセス名からプロセスIDを取得する

Ⅰ. はじめに タイトルの通り「C++でプロセス名からプロセスIDを取得する」方法です。 Ⅱ. サンプルプログラム #include <Windows.h> #include <tlhelp32.h> #include <iostream> DWORD GetProcessIdByName(const wchar_t *processName) { auto entry = PROCESSENTRY32{ sizeof(PROCESSENTRY32) </iostream></tlhelp32.h></windows.h>…

C++ リンカエラーを非表示にする方法

Ⅰ. はじめに タイトルの通り「C++ リンカエラーを非表示にする方法」です。 型キャスト等で出力されるコンパイラ警告は以下の一行で非表示にできますが、リンカエラーは #pragma では不可能です。 #pragma warning(disable:4312) コンパイラ警告の例 「C4312…

cpprestsdk をビルドしてstatic linkする

Ⅰ. はじめに cpprestsdk の使い方はこちらcpprestsdk はNuGetで dynamic link 版が配布されています。 static link 版は配布されていません。static link する為には2017/10/08時点、自分でビルドするしか方法がありません。 Ⅱ. 必要なもの VisualStudio 201…

C++でHTTP(S)でGET/POSTする(cpprestsdk の使い方)

Ⅰ. はじめに Ⅱ. なぜ「C++ RESET SDK(cpprestsdk)」を選んだのか Ⅲ. インストール方法 Ⅳ. GET 実行結果 Ⅴ. POST(JSON) 実行結果 Ⅵ. POST(form-urlencoded) 実行結果 その他 Ubuntuでコンパイルする時 参考 Ⅰ. はじめに .NET系 であれば WebClient や HttpCli…

OpenSSLをWindowsでビルドする方法

Ⅰ. はじめに タイトルの通り「OpenSSLをWindowsでビルドする方法」です。 コンパイル済みライブラリだけ欲しい人はこちら Ⅱ. 環境(必要なもの) ・Visual Studio 2017 Community (C++) ・Perl(ActivePerl を利用しました) ・OpenSSL 1.0.2l のソースコー…

SYSTEM権限でアプリケーションを実行する方法

Ⅰ. はじめに タイトルの通り「NT AUTHORITY\SYSTEM」でアプリケーションを実行する方法です。 Ⅱ. やり方 やり方は3つあります。 1. AprelTech社のRunAsSystemを使う方法 https://www.apreltech.com/Free/How_to_run_as_system_user非常にわかりやすいGUIがあ…

Administrator アカウントの有効化、無効化を行う方法

有効化 コマンドプロンプトで以下のコマンドを実行する net user administrator /active:yes 無効化 コマンドプロンプトで以下のコマンドを実行する net user administrator /active:no 参考 https://msdn.microsoft.com/ja-jp/library/windows/hardware/dn8…

Windows ダウンロードしたファイルをブロックさせない

Ⅰ. はじめに デフォルト設定の場合、インターネットからダウンロードしたファイルには自動的に「ゾーン識別子情報」が付加されます。 これによりファイルにアクセスしようとするとセキュリティの警告が表示されます。 Ⅱ. ブロックさせない方法(「ゾーン識別…

右クリックで出てくるSkyDrive Proを消す

Ⅰ. はじめに タイトルの通り「右クリックで出てくるSkyDrive Proを消す」方法です。 Office 2013をインストールすると右クリックに出てきます。 Ⅱ. 消し方 1. 以下のテキストをx.regという名前をつけて保存し、実行する。 Windows Registry Editor Version 5…

Windows 10 アプリのバックグラウンド実行を許可しない

Ⅰ. はじめに Windows10 では使っていないアプリでもバックグラウンドで動作していることがあるそうです。 Ⅱ. バックグラウンド実行を許可しない方法 1. Windows キー + I で設定を開く 2. 「プライバシー」→「バックグラウンドアプリ」 3. 「オフ」に変更す…

Windows10 右クリックの編集の関連付けを変更する

Ⅰ. はじめに タイトルの通り「Windows10 右クリックの編集の関連付けを変更する」方法です。 Ⅱ. やり方(拡張子がtxtの場合) 1. レジストリエディタを起動 2. 以下のキーに移動 HKEY_CLASSES_ROOT\SystemFileAssociations\text\shell\edit\command 3. 任意…

Windows 10 でUACを無効にする

Ⅰ. はじめに タイトルの通り「Windows 10 でUACを無効にする」方法です。 無効にしてもユニバーサルアプリ(Edge等)の使用が可能です。レジストリの FilterAdministratorToken を書き換えても意味はありません。 Ⅱ. 動作確認済み環境 Windows 10 64bit 1703…

Windows 10 ナビゲーションウィンドウの邪魔なフォルダを消す

Ⅰ.はじめに 私個人としては「ビデオ」「ピクチャ」「ドキュメント」といったフォルダは頻繁に使用しないため非常に邪魔です。 消し方 1. 以下のテキストをx.regという名前をつけて保存し、実行する。 Windows Registry Editor Version 5.00 ; Desktop [-HKEY…

C++ で全ての例外を try catch 出来るようにする

Ⅰ. はじめに Visual Studioのデフォルト設定ではWindowsが発行する「システム的な例外」を捉えることはできません。 無効なメモリアドレスへのアクセス 0での割り算 等が「システム的な例外」に該当します。また、「『システム的な例外』をプログラム上で扱…

C++で複数プロセスから読み書き可能な共有メモリを作る

Ⅰ. はじめに あるプロセスのメモリ空間には他のプロセスからアクセスする事ができません。 OpenProcess してアクセス権を得てもメモリ上のどのアドレスに何のデータが保存されているか簡単に分かりません。 この問題は複数プロセスで共有して使えるメモリ空…

BCD を修正する

Ⅰ. はじめに BCD(Boot Configuration Data)(ブート構成データ)を修正する方法です。 Windows と Linux をデュアルブートした状態から Grub を消して Windows のみブートさせる場合などに必要な作業となります。 Ⅱ. やり方 1. ブート可能な Windows メディ…

プロセスセキュリティまとめ

Ⅰ. はじめに OpenProcess などで使われるアクセス権のフラグまとめです。 Ⅱ. まとめ PROCESS_ALL_ACCESS 0x1FFFFF PROCESS_CREATE_PROCESS 0x80 PROCESS_CREATE_THREAD 0x2 PROCESS_DUP_HANDLE 0x40 PROCESS_QUERY_INFORMATION 0x400 PROCESS_SET_QUOTA 0x10…

プロテクトを回避してメモリをフルダンプする

Ⅰ.はじめに 物理メモリを任意の物理記憶媒体にダンプする方法です。 Belkasoft社の無料ダンプツール(Belkasoft Live RAM Capture)を利用します。 Ⅱ. Belkasoft Live RAM Captureのすごいところ 無料 ダンプ後のファイルを解析するBelkasoft Evidence Cente…

Windows 10 Hyper-Vを有効/無効にする方法

有効にする 1. コントロールパネル→プログラム→プログラムと機能→Windows の機能の有効化または無効化 2. Hyper-Vのチェックを入れる 3. コマンドをプロンプトを起動して以下のコマンドを実行 bcdedit /set hypervisorlaunchtype auto 無効にする 1. コント…

Windows 10 右クリックメニューの「3D Builderによる3D印刷」を消す方法

以下のレジストリを消す Windows Registry Editor Version 5.00 [-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\.bmp\Shell\T3D Print] [-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\.jpg\Shell\T3D Print] [-HKEY_LOCAL_…

Glancesをインストールする

Glancesとは システムモニタリングツールです。 クロスプラットフォームで動作します。 Unix系に限らずWindowsでも動作します。 Pythonで書かれています。 公式WEBサイト https://nicolargo.github.io/glances/ インストール方法 1. インストールする $ curl…