WindowsAPI

GetClassName

GetClassNameで、そのウィンドウのウィンドウクラス名を取得する。GetClassName function (winuser.h) - Win32 apps | Microsoft DocsGetClassName.cppで、ウィンドウクラス名は"GetClassName"。WM_CREATE時に、GetClassNameで、ウィンドウクラス名をtszClas…

CREATESTRUCT

CREATESTRUCTは、CreateWindowによってWM_CREATEが呼ばれた時に、ウィンドウ作成情報を格納している構造体。CREATESTRUCTA (winuser.h) - Win32 apps | Microsoft DocsWM_CREATEのlParamは、CREATESTRUCTへのポインタにキャストでき、ウィンドウ作成情報が格…

SOCKADDR_IRDA

赤外線通信において、接続相手の情報などは、accept時などにSOCKADDR_IRDA形式で格納される。SOCKADDR_IRDA (af_irda.h) - Win32 apps | Microsoft Docsここから本格的に赤外線通信をしていくが、まずは準備など。 STOLA充電中この日のために、数年前から中…

AF_IRDA

ここまでサービス制御やプロセス制御についてやってきたのも、赤外線通信をするため。 まずは、赤外線通信用のソケットをAF_IRDAを指定して作成する。IrDA and socket | Microsoft Docs ws2_32.lib基本的にWinSockを使うので、ws2_32.libをリンク。実行する…

PathStripPath

PathStripPathで、パスからファイル名部分を取り出す。PathStripPathA function (shlwapi.h) - Win32 apps | Microsoft Docs WindowsAPIPathGetFileTitleとかやり方はいくつかあるけど、コンソールアプリならshlwapi.lib系のほうが何かと近そうなので。 (Get…

GetProcessImageFileName

GetProcessImageFileNameで、そのプロセスのプロセス名というか、実行ファイルのパスを取得できる。GetProcessImageFileNameA function (psapi.h) - Win32 apps | Microsoft Docs C++でプロセス名からプロセスIDを取得する - 備忘録 GetProcessImageFileName…

OpenProcess

OpenProcessで、指定のプロセスIDのプロセスをオープンし、ハンドルを取得する。OpenProcess function (processthreadsapi.h) - Win32 apps | Microsoft Docs C++でプロセス名からプロセスIDを取得する - 備忘録プロセス情報取得のため、PROCESS_QUERY_INFOR…

EnumProcesses

EnumProcessesで、プロセスIDを列挙する。EnumProcesses function (psapi.h) - Win32 apps | Microsoft Docs C++でプロセス名からプロセスIDを取得する - 備忘録 psapi.libをリンクpsapi.libをリンク。cbNeededで得られるのは必要な配列の全体サイズなので、…

ControlService

サービスの停止は、StopService・・・とおもったら、そういうものはなく、ControlServiceで、SERVICE_CONTROL_STOPを指定する。ControlService function (winsvc.h) - Win32 apps | Microsoft Docs Win32 Windowsサービスを制御する ControlService - s-kita…

StartService

StartServiceで、サービスを開始する。StartServiceA function (winsvc.h) - Win32 apps | Microsoft Docs Win32 Windowsサービスを開始する StartService - s-kita’s blog "Irmon"をいったんサービス停止する"Irmon"をいったんサービス停止する。 停止状態…

OpenService

OpenServiceで、既存のサービスをオープンし、ハンドルを取得する。OpenServiceA function (winsvc.h) - Win32 apps | Microsoft Docs Win32 Windowsサービスを開始する StartService - s-kita’s blog今回は、赤外線通信を管理するサービス"Irmon"、 赤外線…

OpenSCManager

サービスを制御するには、まずOpenSCManagerで、SCManagerをオープンして、ハンドルを取得する。OpenSCManagerA function (winsvc.h) - Win32 apps | Microsoft Docs Win32 Windowsサービスを開始する StartService - s-kita’s blog コンソールアプリコンソ…

PAINTSTRUCT

PAINTSTRUCTは、WM_PAINTの中で、BeginPaintで再描画情報を取得する時に使う。PAINTSTRUCT (winuser.h) - Win32 apps | Microsoft Docs 【Win32】PAINTSTRUCT構造体 | 初心者のWindowsプログラミング日記どこを再描画するかはPAINTSTRUCTのrcPaintに格納され…

MSG

GetMessageなどで取得した、ウィンドウメッセージ情報を格納しているのがMSG。MSG (winuser.h) - Win32 apps | Microsoft Docs単純にはそうだが、メッセージループとなると、不思議な部分もある。こういうMSG構造体のmessageの値を記録しておくログ関数を作…

WNDCLASS

WNDCLASSは、どういうウィンドウなのかという属性を決めるもの(他にも決めるものはあるんだけど)で、これを登録することで、ある程度の雛形が出来る。WNDCLASSA (winuser.h) - Win32 apps | Microsoft Docs今回は、クライアント領域に独自のウィンドウクラス…

PRINTER_DEFAULTS

PRINTER_DEFAULTSも、プリンタの設定の一つだが、特に気になるのはアクセス属性。PRINTER_DEFAULTS structure (Winspool.h) - Win32 apps | Microsoft Docs前回、設定変更で、pd.DesiredAccessをPRINTER_ALL_ACCESSにしたけど、常にそれでいいのではとおもう…

SetPrinter

SetPrinterで、プリンタの設定をする。SetPrinter function (WinSpool.h) - Win32 apps | Microsoft Docs https://support.microsoft.com/ja-jp/help/140285/how-to-modify-printer-settings-by-using-setprinterこれで、プリンタ設定の変更が完了する。 // …

DocumentProperties

DocumentPropertiesは、プリンタ情報の取得、変更、プリンタ構成プロパティシートの表示、とあるけど、よくあるのは、あるプリンタの設定を変更した時に、依存している部分の設定も更新するということらしい。DocumentProperties function (Winspool.h) - Wi…

PRINTER_INFO_2

PRINTER_INFO_2は、PRINTER_INFO_1より詳細なプリンタ情報を持っている。PRINTER_INFO_2 structure (Winspool.h) - Win32 apps | Microsoft Docsわかりやすいものを出力してみた。実行すると、 C:\Users\bg1\Documents\test>PRINTER_INFO_2.exe Default Prin…

GetPrinter

GetPrinterで、プリンタ情報を取得する。GetPrinter function (Winspool.h) - Win32 apps | Microsoft Docs https://support.microsoft.com/ja-jp/help/140285/how-to-modify-printer-settings-by-using-setprinterプリンタの設定変更となると、DEVMODEが必…

StartPagePrinter

StartPagePrinterで、印刷するページの開始を通知する。StartPagePrinter function (Winspool.h) - Win32 apps | Microsoft Docstest_text.txtを、2ページ分の量に増やした2ページ分の量に増やした。 しかし、複数ページある場合、ページごとに複数回呼び出…

WritePrinter

WritePrinterで、印刷データを送って、印刷する。WritePrinter function (Winspool.h) - Win32 apps | Microsoft Docs コンソールアプリケーションで標準印刷出力を使う方法 https://support.microsoft.com/ja-jp/help/138594/howto-send-raw-data-to-a-prin…

StartDocPrinter

StartDocPrinterで、印刷するドキュメントの開始を通知する。StartDocPrinter function (Winspool.h) - Win32 apps | Microsoft DocsGDI Print APIのStartDocに相当する。 印刷ジョブIDを返す。DOC_INFO_1で、ドキュメント情報を渡す。 C:\Users\bg1\Documen…

OpenPrinter

OpenPrinterで、プリンタのハンドルを取得する。OpenPrinter function (Winspool.h) - Win32 apps | Microsoft Docs既定のプリンタのハンドルを取得する。 C:\Users\bg1\Documents\test>OpenPrinter.exe Default Printer: EPSON PX-S06 Series hPrinter = 0x…

SetDefaultPrinter

SetDefaultPrinterで、指定したプリンタを既定のプリンタにセットする。SetDefaultPrinter function (Winspool.h) - Win32 apps | Microsoft Docs既定のプリンタ名を取得して、その後入力フォームを出力して、そこにプリンタ名を入力すると、その後、既定の…

GetDefaultPrinter

GetDefaultPrinterで、既定のプリンタ名を取得する。GetDefaultPrinter function (Winspool.h) - Win32 apps | Microsoft Docs Win32API 既定のプリンタのプリンタ名を取得する - s-kita’s blogこれもNULLでサイズを確保してから、バッファを用意して、改め…

PRINTER_INFO_1

PRINTER_INFO_1は、プリンタ名の他に、プリンタの説明文、プリンタに残せるコメント、などが格納されている。PRINTER_INFO_1 structure (Winspool.h) - Win32 apps | Microsoft Docs今回は、説明文も出力する。実行すると、 C:\Users\bg1\Documents\test>PRI…

EnumPrinters

EnumPrintersで、プリンタ名を列挙する。EnumPrinters function (Winspool.h) - Win32 apps | Microsoft Docs Win32API 利用可能なプリンタを列挙する - s-kita’s blog今回からコンソール今回からコンソール。空のコンソール空のコンソール。1回NULLを渡して…

ResetDC

ダイアログを使わずに、設定変更を反映するには、ResetDCでプリンタ用デバイスコンテキストを更新する。ResetDCA function (wingdi.h) - Win32 apps | Microsoft Docs プリンタの情報普通に、 // 取得したIDごとに処理を分岐. // Printが選択された時. case …

DEVNAMES

DEVNAMES構造体は、デバイス情報、ドライバ情報、既定のプリンタかどうかのフラグなどを持つ。DEVNAMES (commdlg.h) - Win32 apps | Microsoft Docs DEVNAMES 構造体あまり、こちらから設定変更することは無い気がする。GlobalAllocしない場合は、PageSetupD…