約 949,164 件
https://w.atwiki.jp/memoprogram/pages/19.html
Tips/ウィンドウの作成 構造体/WNDCLASS 関数/CreateWindow() 関数/LoadCursor() 関数/LoadIcon() 関数/MessageBox() 関数/RegisterClass() 関数/ShowWindow() 関数/UpdateWindow() 関数/WinMain()
https://w.atwiki.jp/suffix/pages/190.html
GoogleマップAPIの本家サイトからの転載(http //code.google.com/intl/ja/apis/maps/documentation/index.html#AJAX_Loader) script type="text/javascript" src="http //www.google.com/jsapi?key=ABCDEFG" /script script type="text/javascript" google.load("maps", "2.x"); // ページが読み込まれたときにこの関数を呼び出します function initialize() { var map = new google.maps.Map2(document.getElementById("map")); map.setCenter(new google.maps.LatLng(37.4419, -122.1419), 13); } google.setOnLoadCallback(initialize); /script とすると、GoogleMapsAPIの利用が行える。 google.load("mapsとかfeedとかsearchとかの指定","バージョン");でAPIの読み込みが可能。 GMaps2オブジェクトはgoogle.maps.*を使ってますよーということ。 setOnLoadCallback("関数名");は起動時に呼ぶ関数で初期化の意味合い。
https://w.atwiki.jp/m_shige1979/pages/599.html
APIライブラリー C C++ PHP Perl Python
https://w.atwiki.jp/pspprogram/pages/50.html
int sceCtrlSetSamplingCycle(int cycle); int sceCtrlGetSamplingCycle(int *pcycle); int sceCtrlSetSamplingMode(int mode); int sceCtrlGetSamplingMode(int *pmode); int sceCtrlPeekBufferPositive(SceCtrlData *pad_data, int count); int sceCtrlPeekBufferNegative(SceCtrlData *pad_data, int count); int sceCtrlReadBufferPositive(SceCtrlData *pad_data, int count); int sceCtrlReadBufferNegative(SceCtrlData *pad_data, int count); int sceCtrlPeekLatch(SceCtrlLatch *latch_data); int sceCtrlReadLatch(SceCtrlLatch *latch_data); 簡単な使い方
https://w.atwiki.jp/pspprogram/pages/27.html
機能 pspのリアルタイムクロックを担当するハードからrtcを取得します。 API int sceRtcGetCurrentTick(u64 *tick); 第一引数(u64 *tick) 受け取るデータを格納するためにu64のポインタを渡してください。 戻り値 0だと成功 0以下だとエラーです。
https://w.atwiki.jp/pspprogram/pages/30.html
pcm出力初期化割り当て int sceAudioChReserve(int channel, int samplecount, int format); pcm出力解放 int sceAudioChRelease(int channel); pcmデータ出力関数 int sceAudioOutput(int channel, int vol, void *buf); int sceAudioOutputBlocking(int channel, int vol, void *buf); int sceAudioOutputPanned(int channel, int leftvol, int rightvol, void *buffer); int sceAudioOutputPannedBlocking(int channel, int leftvol, int rightvol, void *buffer); 設定変更関係 int sceAudioGetChannelRestLen(int channel);//Get count of unplayed samples remaining. int sceAudioSetChannelDataLen(int channel, int samplecount); //多分reserveの第2引数の変更 int sceAudioChangeChannelConfig(int channel, int format); //多分reserveの第3引数の事後変更 int sceAudioChangeChannelVolume(int channel, int leftvol, int rightvol); //多分ボリューム変更 サンプル wavファイルから再生
https://w.atwiki.jp/javadsge/pages/8763.html
(1)表 (2)プログラム (3)グラフ 表 (4)出所 政府統計API (5)メモ (6)作業記録 10月31日表追加 imageプラグインエラー 画像を取得できませんでした。しばらく時間を置いてから再度お試しください。 imageプラグインエラー 画像を取得できませんでした。しばらく時間を置いてから再度お試しください。 imageプラグインエラー 画像を取得できませんでした。しばらく時間を置いてから再度お試しください。 -
https://w.atwiki.jp/jennychan/pages/17.html
大抵の場合は、Win32 APIを使用しなくても済んでしまうのですが、たまに必要なときがあります。 ファイルIO .NET FrameworkのSystem.IOクラスでは、「\\.\physicaldrive0」などの物理ドライブに対するアクセスが出来ないので、CreateFile APIを使用する事になります。 参考資料は、Windows の ReadFile 関数を使用するで、ポイントは、 DllImportでDLLとAPIを指定する プロジェクトのビルドプロパティで、「アンセーフコードの許可」をチェック となります。 ただし、MSのサンプルでは、CreateFileメソッドの返却値が0以外のときは成功としているのですが、無効なドライブを指定した時は、0xffffffffが返され、正常終了扱いとなってしまいます。 なお、「\\.\c 」の様な、論理ドライブに対する処理は、System.IO.DriveInfoクラスを使用すれば可能です。 System.IO.DriveInfo = new System.IO.DriveInfo("c"); Console.WriteLine(string.Format("{0} {1} {2}Byte(s)", info.ToString(), info.DriveFormat, info.TotalSize)); 全てのドライブを取得するには、staticメソッドのGetDrivesを使用します。 foreach (System.IO.DriveInfo info in System.IO.DriveInfo.GetDrives()) { Console.WriteLine(string.Format("{0} {1} {2}Byte(s)", info.ToString(), info.DriveFormat, info.TotalSize)); } MSのWindows の ReadFile 関数を使用するの、CreateFileのエラー判定処理を修正すると共に、ドライブの容量を取得するDeviceIoControl処理を追加した、C#のコンソールアプリケーションベースのコードをメモとして載せておきます。 なお、DeviceIoControl処理の詳細は、Microsoft Platform SDKのWinIoCtl.hを見るのが一番かもしれません。 class FileReader { const uint GENERIC_READ = 0x80000000; const uint FILE_SHARE_WRITE = 0x00000002; // 物理ディスクを指定する場合、OPEN_EXISTINGを指定しなければいけないらしい const uint OPEN_EXISTING = 3; System.IntPtr handle; [System.Runtime.InteropServices.DllImport("kernel32", SetLastError = true)] static extern unsafe System.IntPtr CreateFile ( string FileName, // file name uint DesiredAccess, // access mode uint ShareMode, // share mode uint SecurityAttributes, // Security Attributes uint CreationDisposition, // how to create uint FlagsAndAttributes, // file attributes int hTemplateFile // handle to template file ); [System.Runtime.InteropServices.DllImport("kernel32", SetLastError = true)] static extern unsafe bool ReadFile ( System.IntPtr hFile, // handle to file void* pBuffer, // data buffer int NumberOfBytesToRead, // number of bytes to read int* pNumberOfBytesRead, // number of bytes read int Overlapped // overlapped buffer ); [System.Runtime.InteropServices.DllImport("kernel32", SetLastError = true)] static extern unsafe bool CloseHandle ( System.IntPtr hObject // handle to object ); // ドライブの容量を取得するためにDeviceIoControlを使用する const uint IOCTL_DISK_GET_LENGTH_INFO = 0x7405c; [System.Runtime.InteropServices.DllImport("kernel32", SetLastError = true)] static extern unsafe bool DeviceIoControl( System.IntPtr hFile, // handle to file uint dwIoControlCode, // 実行する動作の制御コード void* lpInBuffer, // 入力データを供給するバッファへのポインタ uint nInBufferSize, // 入力バッファのバイト単位のサイズ void* lpOutBuffer, // 出力データを受け取るバッファへのポインタ uint nOutBufferSize, // 出力バッファのバイト単位のサイズ uint* lpBytesReturned, // バイト数を受け取る変数へのポインタ int Overlapped // overlapped buffer ); public bool Open(string FileName) { // open the existing file for reading handle = CreateFile ( FileName, GENERIC_READ, FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0 ); // 物理ドライブ処理のエラーは、0xffffffffとなる if (handle != System.IntPtr.Zero (uint)handle.ToInt32() != (uint)0xffffffff) { return true; } else { return false; } } public unsafe int Read(byte[] buffer, int index, int count) { int n = 0; fixed (byte* p = buffer) { if (!ReadFile(handle, p + index, count, n, 0)) { return 0; } } return n; } public bool Close() { return CloseHandle(handle); } // ディスクの容量を取得する public unsafe long GetDiskSize() { long lDiskSize = 0; uint nBytes = sizeof(long); bool bResult = DeviceIoControl(handle, IOCTL_DISK_GET_LENGTH_INFO, null, 0, lDiskSize, nBytes, nBytes, 0); return lDiskSize; } } class Program { static void Main(string[] args) { FileReader fr = new FileReader(); for (int i = 0; i = 9; i++) { string sDrivePath = string.Format(@"\\.\physicaldrive{0}", i); if (fr.Open(sDrivePath)) { long lDiskSize = fr.GetDiskSize(); fr.Close(); double dSize = lDiskSize / 1000000; if (dSize 1000) { dSize /= 1000; System.Console.WriteLine( string.Format("Drive{0} {1,7 F1}GB", i, dSize)); } else System.Console.WriteLine( string.Format("Drive{0} {1,7 F1}MB", i, dSize)); } } return; } } レジストリ .NET Frameworkでは、Microsoft.Win32.Registryからルートレジストリをアクセスできます。 たとえば、ADO.NET 2.0では、Microsoft Data Access Components(MDAC)2.8以降のバージョンが必要とされています。 MDACのバージョンは、レジストリのHKEY_LOCAL_MACHINE\Software\Microsoft\DataAccess\FullInstallVerを取得する事で確認できます。 そこで、MDACのバージョンを確認するメソッドは、 private bool ChkMDAC() { string sFullVer = (string)Microsoft.Win32.Registry.GetValue (@"HKEY_LOCAL_MACHINE\Software\Microsoft\DataAccess", "FullInstallVer", ""); bool bResult = false; if (!string.IsNullOrEmpty(sFullVer)) { string[] sVer = sFullVer.Split( . ); int iVer1 = Convert.ToInt16(sVer[0]); int iVer2 = Convert.ToInt16(sVer[1]); if (iVer1 2 || (iVer1 == 2 iVer2 80)) bResult = false; else bResult = true; } return bResult; } の様になります。 ※ マイクロソフトのサポート情報では、レジストリ上のバージョン情報はあてにならない場合があるので、Component Checkerというツールを使って確認する事を推奨していますが、不特定多数のユーザ向けのソフトウェアの場合、Component Checkerツールのインストールも要求するような事は非現実的だと思います。 また、レジストリのバージョン情報を参照するときも、FullInstallVer値と、Version値の両方の値を確認するように推奨していますが、手元のマシンの場合、 FullInstallVer "2.81.1117.0" Version "2.0.0" となっています
https://w.atwiki.jp/urokun/pages/5.html
メモリ領域の初期化ZeroMemory sprintfの使い方 固定幅フォントを用意するGetStockObject フォントのサイズを調べるGetTextMetrics 新しいブラシを作成する WM_PAINT以外のメッセージ処理中に描画を行う 矩形を描画する RGB COLORREF ファイルの読み書きCreateFile メモリ領域の初期化 ZeroMemory void ZeroMemory( PVOID ポインタ , SIZE_T サイズ ) sprintfの使い方 int _stprintf_s( 出力の格納場所, 格納する最大文字数, 書式指定文字列, ... ) 固定幅フォントを用意する SelectObject(hdc,GetStockObject(SYSTEM_FIXED_FONT)); 上の処理を2行に分割したもの↓ HFONT hFont = GetStockObject(SYSTEM_FIXED_FONT); SelectObject(hdc,hFont); GetStockObject HGDIOBJ GetStockObject( int 定数 ) GetStockObject フォントのサイズを調べる TEXTMETRIC tm; LONG textHeight; GetTextMetrics(hdc, tm); textHeight = tm.tmHeight; GetTextMetrics BOOL GetTextMetrics( HDC hdc, LPTEXTMETRIC lptm) 新しいブラシを作成する LOGBRUSH logbrush; logbrush.lbColor = RGB(255,0,0); logbrush.lbHatch = HS_CROSS; logbrush.lbStyle = BS_SOLID; HBRUSH hBrush = CreateBrushIndirect( logbrush); LOGBRUSH CreateBrushIndirect WM_PAINT以外のメッセージ処理中に描画を行う GetDC()でクライアント領域のデバイスコンテキストハンドルを取得する HDC GetDC( HWND hWnd; ); GetDC 描画する ReleaseDC()で開放する 矩形を描画する BOOL Rectangle( HDC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect ); Rectangle RGB RGB COLORREF COLORREF ファイルの読み書き CreateFile HANDLE CreateFile( LPCTSTR lpFileName, // ファイル名 DWORD dwDesiredAccess, // アクセスモード DWORD dwShareMode, // 共有モード LPSECURITY_ATTRIBUTES lpSecurityAttributes, // セキュリティ記述子 DWORD dwCreationDisposition, // 作成方法 DWORD dwFlagsAndAttributes, // ファイル属性 HANDLE hTemplateFile // テンプレートファイルのハンドル ); CreateFile
https://w.atwiki.jp/api_programming/pages/255.html
情報は溢れているが、イメージが掴めないと作業に手間取るから、忘備録。 使うAPIを決めて Google Cloud Console 上で ON にして、認証をもらうclient_secret.jsonファイルが貰える ここからOATHでの認証手順 client_secret.json なんか、このファイルが無いと動かないような気にさせるが、jsonファイルなので中身は見れて、「ウェブ アプリケーション のクライアント ID」にある情報が書き込まれているだけ。あれば楽。 別で一つ一つ設定しても動く。 パターン とりあえず サービス(service) APIサービスを操るserviceをもらう際に、credentialsが必要(プライベートなデータにセル属する際は。)google calendar なら from googleapiclient import discovery service = discovery.build( calendar , v3 , credentials=creds) https //googleapis.github.io/google-api-python-client/docs/epy/googleapiclient.discovery-module.html#build oauth2client.Credentials Credentials アクセストークンから作ろう、の場合 from oauth2client import client service = client.AccessTokenCredentials(access_token, user_agent) https //oauth2client.readthedocs.io/en/latest/source/oauth2client.client.html#module-oauth2client.client code と access_token を交換する 認証の一連の流れに Flow オブジェクトを使うと、 認証画面のurl表示 flow.authorization_url コードとトークンの交換 flow.fetch_token を利用できる。 from google_auth_oauthlib.flow import Flow ### appflow は Flowオブジェクトです。### # Tell the user to go to the authorization URL. auth_url, _ = appflow.authorization_url(prompt= consent ) # auth_url に移動して、認証を受ける。 # print( Please go to this URL + auth_url) # The user will get an authorization code. This code is used to get the # access token. code = input( Enter the authorization code ) appflow.fetch_token(code=code) google_auth_oauthlib.flow authorization_url() fetch_token() Flowオブジェクトを利用する 利用するに当たり、APIを有効にして、認証コードを受けておく必要がある。 Flowオブジェクトを初期化する際に、from_json_secret_fileを使って、先程の client_secret 利用した処理ができる。 from google_auth_oauthlib.flow import Flow appflow = Flow.from_client_secrets_file( path/to/client_secrets.json , scopes=[ profile , email ], redirect_uri= urn ietf wg oauth 2.0 oob ) Flow Flow.from_client_secrets_file