OnSheet
オンライン表計算アプリ「OnSheet」
インフォテリアは7月25日、Webブラウザから利用できる表計算アプリケーション「OnSheet」を開発、ベータ版の公開を開始した。法人向けにSaaS形式で10月から提供する。料金は未定。また個人向けには無料でサービスを提供する。
同社のデータ連係技術と香港のTeam and Conceptsが開発したブラウザベースの表計算技術を組み合わせた。Excelなどのデータを読み込むことができ、表計算のほか36種類のグラフ描画機能も備える。500種類以上の関数のほか、罫線を引くことも可能だ。シートは自動的に保存され、編集ごとに履歴も保存され、遡って過去のシートを閲覧することもできる。
ワークシートやグラフには固定のURLが与えられ、パーマリンクとして利用できる。
また表の一部やグラフなどをブログに貼り付けることもできる。iFrameまたはJavascriptを使い、表の変更は動的に反映される。
*ITMediaから転載*
IoPageLockLimit
ファイルアクセスを高速化 IoPageLockLimit
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\
HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Control SessionManager MemoryManagement IoPageLockLimit(DWord)
IoPageLockLimit 4MBに指定する場合10進数で4194304(= 1*1024*1024*4 bytes規定値は512KB=524288)を指定してください。
Windows XP の動作を軽快にしたい
http://www.mtblue.org/pc/tips/speed_up_xp.php
レジストリ技、Windows XP速度向上
http://www.geocities.jp/genta_ro/reg/reg.html
Windowsの快適化 > XP編
http://www.micnet.ne.jp/k-sawada/contents/win/winxp.html
VBA10進16進+gb2312表
10進数を16進数に変換
Function Dec2Hex(Dec As Long) As String
Dec2Hex = Hex(Dec)
End Function
16進数を10進数に変換
Function Hex2Dec(Hex As String) As Long
Hex2Dec = Val("&H" & Hex)
End Function
16進数表示による演算の例
Sub TestHex()
MsgBox Hex(&Ha + &Hd)
End Sub
Sub chrAndChrW()
Dim iLoop As Integer
Application.ScreenUpdating = False
For iLoop = 1 To 9999
Cells(iLoop, 1) = CStr(iLoop)
Cells(iLoop, 2) = CStr(Hex(iLoop))
Cells(iLoop, 3) = Chr(iLoop)
Cells(iLoop, 4) = ChrW(iLoop)
If Cells(iLoop, 3) = Cells(iLoop, 4) Then
Cells(iLoop, 5) = "○"
Else
Cells(iLoop, 5) = "×"
End If
Next iLoop
Application.ScreenUpdating = True
Application.StatusBar = False
Cells(1, 1).Select
End Sub
http://www.chi2ko.com/tool/CJK.htm
http://www.kishugiken.co.jp/cn/code09c.html
タスクバーの位置や大きさ
タスクバーの位置や大きさ
タスクバーの位置や大きさを取得するには、SHAppBarMessage関数で簡単に取得できます。
まず、この関数を使うために
次にパラメーターとして使うAPPBARDATA構造体を0で初期化し、cbSizeメンバにこの構造体の大きさを入れておきます。
そして、SHAppBarMessage関数を呼び出します。
#include
APPBARDATA ABData;
ZeroMemory(&ABData, sizeof(ABData)); //0で初期化
ABData.cbSize = sizeof(ABData); //構造体の大きさを入れる
SHAppBarMessage(ABM_GETTASKBARPOS, &ABData);
これで、タスクバーの位置がAPPBARDATA構造体のrcメンバにRECT型で入っています。
サンプル
void GetTaskBarPosition(CRect* lpcRectTaskBar)
{
APPBARDATA sBarInfo;
ZeroMemory(&sBarInfo,sizeof(APPBARDATA));
sBarInfo.cbSize = sizeof(APPBARDATA);
sBarInfo.hWnd = m_hWnd;
SHAppBarMessage(ABM_GETTASKBARPOS,&sBarInfo);
*lpcRectTaskBar = sBarInfo.rc;
}
結果
*lpcRectTaskBarに{top=1412 bottom=1442 left=-2 right=1802}のように
スクリーン座標で格納される。leftの値が負であることに注意。
//*********************************************************
// タスクバー領域の矩形を返す。
//*********************************************************
RECT GetTaskbarRect( void )
{
APPBARDATA abd;
memset( &abd, 0, sizeof( abd ) );
abd.cbSize = sizeof( abd );
SHAppBarMessage( ABM_GETTASKBARPOS, &abd );
return abd.rc;
}//GetTaskbarRect
デスクトップ領域のサイズ
デスクトップ領域のサイズを取得する方法。
GetSystemMetrics( SM_CXSCREEN ) // デスクトップ領域の幅を返す。
GetSystemMetrics( SM_CYSCREEN ) // デスクトップ領域の高さを返す。
//*********************************************************
// デスクトップ領域の矩形を返す。
//*********************************************************
RECT GetScreenRect( void )
{
RECT Rect;
Rect.left = 0;
Rect.top = 0;
Rect.right = GetSystemMetrics( SM_CXSCREEN );
Rect.bottom = GetSystemMetrics( SM_CYSCREEN );
return Rect;
}//GetScreenRect
--------------------------------------------------------------------------------
デスクトップ作業領域(デスクトップ領域からタスクバー等を除いた領域)のサイズを取得する方法。
このサイズは最大化されたウィンドウのサイズと一致する。
GetSystemMetrics( SM_CXFULLSCREEN ) // デスクトップ作業領域の幅を返す。
GetSystemMetrics( SM_CYFULLSCREEN ) // デスクトップ作業領域の高さを返す。
//*********************************************************
// デスクトップ作業領域の矩形を返す。
//*********************************************************
RECT GetWorkareaRect( void )
{
RECT Rect;
SystemParametersInfo( SPI_GETWORKAREA, 0, &Rect, 0 ); // デスクトップ作業領域の矩形を取得する。
return Rect;
}//GetWorkareaRect
タスクバーの大きさをのぞいた画面の大きさ
タスクバーの大きさをのぞいた画面の大きさを得たいときがあると思います。
そんなときはSystemParametersInfoAPIを使います。
使用法は、
RECT rc;
SystemParametersInfo(SPI_GETWORKAREA,0,&rc,0);
です。
これで、RECT構造体のrcに画面の左上と右下の座標が入ります。
プログラムが起動するまで待つ
はじめに
バッチ処理等で、あるプログラムが終了するまで次のプログラムを実行させたくないときに、プログラムの終了を待つ方法です。
プログラムの終了を待つには、WaitForSingleObjectというAPIを使います。この関数は、あるオブジェクトがシグナル状態になるまで待つという関数です。なんかややこしい言い方ですが、要するに指定したスイッチがオンになるまで待つということです。そして今回使うスイッチは、プログラムが終了するとオンになるスイッチです。このスイッチは、CreateProcessを使ってプログラムを実行すると手に入ります。PROCESS_INFORMATION構造体に返ってくるhProcess(プロセスのハンドル)がそれです。あとはそれを、WaitForSingleObjectに渡せばOKです。
PROCESS_INFORMATION Procinfo;
STARTUPINFO StartInfo;
StartInfo.cb=sizeof(stinfo);
StartInfo.lpReserved=NULL;
StartInfo.lpDesktop=NULL;
StartInfo.lpTitle=NULL;
StartInfo.dwFlags=0;
StartInfo.cbReserved2=0;
StartInfo.lpReserved2=NULL;
//プログラムの実行
CreateProcess(NULL,"notepad.exe",NULL,NULL,FALSE,0,NULL,NULL
,&StartInfo,Procinfo);
//終了まで待つ
WaitForSingleObject(Procinfo.hProcess,INFINITE);
さいごに
これでプログラムの終了が待てますが、エクスプローラーだけはこの方法が使えないので注意してください。エクスプローラー(explorer.exe)は、別のエクスプローラー本体を実行して自分はさっさと終了してしまうので、その時点でWaitForSingleObjectから戻ってきてしまいます。
閉じるボタンを灰色にして使えなくする
ウインドウの閉じるボタンを灰色にして使用できなくします。
閉じるボタンはシステムメニューの閉じる項目を使用不可にすると、一緒に使用不可になってくれます。
hMenu = GetSystemMenu(hWnd,FALSE);
EnableMenuItem(hMenu,SC_CLOSE,MF_BYCOMMAND|MF_GRAYED);
元に戻すときは、
hMenu = GetSystemMenu(hWnd,FALSE);
EnableMenuItem(hMenu,SC_CLOSE,MF_BYCOMMAND|MF_ENABLED);
とします。
環境変数の展開
はじめに
%windir%\explorer.exeのように環境変数を含んだパスを、c:\windows\explorer.exeのように環境変数を展開したパスにする方法です。
方法といっても、そういうAPIがあるので別になんということはないです。
char Name[] = "%windir%\explorer.exe";
char ExpandName[MAX_PATH];
ExpandEnvironmentStrings(Name,ExpandName,sizeof(ExpandName));
これだけです。
このAPIは別にパスじゃなくても単なる文字列でも使えます。というかそっちが本当の使い方。
おわりに
今回のは、小技でも何でもないのですが、私がどうするのか分からなくて結局人に教えてもらったので、誰かが私のように悩まないように載せました。
メモリリークチェック
はじめに
今回はメモリリークのチェックに使っているツールを紹介します。
このツールはVisual C++のデバッグルーチン
ソース
リファレンス
必要なインクルードファイル
#include
#include "MyMacro.h"
#include "MyCrtDbg.h"
プロジェクトに追加するファイル
MyCrtDbg.cpp
int WinMain(.............)
{
DEBUGMEMINIT();
//DEBUGMEMSETFLAG(DBGMEM_LOG); //メモリ確保時にログが出力される
pTest = NEW CTest(); //newの代わりにNEWを使用する
DEBUGMEMRELEASE();
}
出力結果
D:\MyProjects\test.cpp(737) : Allocate Size = 68byte
D:\MyProjects\test.cpp(737) : Allocate Size = 68byte
D:\MyProjects\test.cpp(77) : Allocate Size = 14byte
D:\MyProjects\test.cpp(737) : Allocate Size = 68byte
↑DEBUGMEMSETFLAG(DBGMEM_LOG)設定時のみ
----------------------------------------------------------
メモリ分布
0 ~ 31 Total: 47 Max: 41
32 ~ 63 Total: 28 Max: 27
64 ~ 95 Total: 10 Max: 10
96 ~ 127 Total: 4 Max: 3
128 ~ 159 Total: 1 Max: 1
160 ~ 191 Total: 0 Max: 0
192 ~ 223 Total: 0 Max: 0
224 ~ 255 Total: 0 Max: 0
256 ~ 287 Total: 0 Max: 0
288 ~ Total: 3 Max: 1
----------------------------------------------------------
最大6204バイトのメモリを確保しました。
64バイト以下のメモリを最大68個 最大1918バイト確保しました。
おわりに
メモリサイズごとの確保回数が出力されるので個人的には重宝しています。
FTP ファイルでログイン
Windowsの場合:
コマンド
ftp -ns:filename
ファイル内容
open [sever-address]
user [name password]
ls
pwd
cd [your-dir]
ls
pwd
Linux/Unixの場合:
コマンド
ftp -nv < .ftp.ini ファイル内容
open [sever-address]
user [name password]
ls
pwd
cd [your-dir]
your command
auto exit