ソフトウェアを開発し続けて早六年。 バグを憎んで人を憎まず。。 株式投資で脱サラをめざすITエンジニアのホームページ......
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Explorerのコンテキストメニューに独自のメニューを追加します。
Shell Extensionとか呼ばれているものです。
ATLとCOMが解っていれば、とても簡単!

自分用のソフトウェアの場合は、SendTo (送る)にショートカットを入れておくだけで
大体の場合は事足りますけど、
人に公開する場合は、こっちのほうがかっこいいです。
⇒ 続きを読む
スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

Firefox1.5の日本語版がリリースしてたようです。
FTPサイトからインストールしてみました。


私の使っているプラグインの中ですでに1.5で使えるものです。
Tabbrowser Extensions
FlashGot
Google Toolbar for Firefox
PDF Download
IE View
Sage
Web Developer
Allow Right-Click
Download Statusbar
User Agent Switcher

また、今はまだ使えなかったものは、
bbs2chreader
mozImage
TargetAlert
Boolmarks Synchronizer
でした。

テーマ:Firefox - ジャンル:コンピュータ

仁科式波動チャートでラクラク大儲け―5日、5週、5か月先の株価がわかる!
に書いてある波動チャートです。
2005年11月27日に分析した週足のチャートです。

2005年11月27日版波動チャート(pdf)ダウンロード

このチャートのpdfファイルに関しては、
私は一切の権利を主張しませんので、
どうぞご自由にご利用ください。

テーマ:株式入門 - ジャンル:株式・投資・マネー

ォルダを監視して、ファイルの追加,変更,削除を検出します。
これをビルドするだけでも結構実用的なものができます。
grepと組み合わせて使えば、便利です。
特定のプログラムを動かしたときに変更されるファイルを見つけたりするときとか。。。
っていうか、自分で必要だったんで作りました。


001 #define _WIN32_WINNT 0x0500//なんか←これ書かないとReadDirectoryChangesWが見つけられない
002 #include <windows.h>
003 #pragma comment(lib, "shlwapi.lib")
004 #include <shlwapi.h>
005 #include <iostream>
006
007 static HANDLE s_hFolder;
008
009 //終了時に呼ばれる(予定だったけど。Ctrl+Cで終了すると、呼ばれなかった)
010 static void OnExit(){
011 ::CloseHandle(s_hFolder);
012 std::cerr << "close." << std::endl;
013 }
014
015 int wmain(int argc, wchar_t* argv[])
016 {
017 //ターゲットのディレクトリ
018 wchar_t targetDirectory[MAX_PATH];
019 if(argc < 2){
020 //引数なしだとカレントディレクトリが対象
021 ::GetCurrentDirectoryW(MAX_PATH, targetDirectory);
022 }else{
023 wcscpy(targetDirectory, argv[1]);
024 }
025 //対象のフォルダを開く
026 s_hFolder = ::CreateFile(targetDirectory, FILE_LIST_DIRECTORY,
027 FILE_SHARE_READ | FILE_SHARE_DELETE,
028 NULL, OPEN_EXISTING,
029 FILE_FLAG_BACKUP_SEMANTICS, NULL);
030 if(s_hFolder == INVALID_HANDLE_VALUE){
031 //オープン失敗
032 std::cerr << "invalid folder.(" << targetDirectory << ")" << std::endl;
033 return -1;
034 }
035 atexit(OnExit);
036
037 BYTE buf[1024];
038 DWORD dwReturned = 0;
039 wchar_t fileName[MAX_PATH];
040 wchar_t fullName[MAX_PATH];
041 for(;;){
042 //フォルダの変更を監視
043 if(!::ReadDirectoryChangesW(s_hFolder, buf, sizeof(buf),
044 TRUE, FILE_NOTIFY_CHANGE_SIZE | FILE_NOTIFY_CHANGE_CREATION | FILE_NOTIFY_CHANGE_LAST_WRITE | FILE_NOTIFY_CHANGE_FILE_NAME | FILE_NOTIFY_CHANGE_DIR_NAME, &dwReturned, NULL, NULL))
045 {
046 continue;
047 }
048 if(dwReturned == 0){
049 continue;
050 }
051 DWORD dwNext = 0;
052 for(;;){
053 FILE_NOTIFY_INFORMATION* pInfo = reinterpret_cast<FILE_NOTIFY_INFORMATION*>(buf + dwNext);
054 //変更のあったファイル(s_hFolderからの相対パス)を取得。
055 //(末尾に\0が入ってない)
056 wcsncpy(fileName, pInfo->FileName, pInfo->FileNameLength / sizeof(wchar_t));
057 fileName[pInfo->FileNameLength / sizeof(wchar_t)] = '\0';
058 //フルパスにする
059 wcscpy(fullName, targetDirectory);
060 ::PathAppendW(fullName, fileName);
061 //変更があったのが、ディレクトリだったら飛ばす
062 if(!::PathIsDirectoryW(fullName)){
063 const char* state = NULL;
064 switch(pInfo->Action){
065 case FILE_ACTION_ADDED://追加された
066 std::cout << "[Add]";
067 break;
068 case FILE_ACTION_MODIFIED://変更された
069 std::cout << "[Mod]";
070 break;
071 case FILE_ACTION_REMOVED://削除された
072 std::cout << "[Rem]";
073 break;
074 case FILE_ACTION_RENAMED_OLD_NAME://リネームされた(変更前のファイル名)
075 std::cout << "[RenameOld]";
076 break;
077 case FILE_ACTION_RENAMED_NEW_NAME://リネームされた(変更後のファイル名)
078 std::cout << "[RenameNew]";
079 break;
080 default://予期せぬステータスが返ってきた
081 std::cerr << "invalid action.(" << pInfo->Action << ")" << std::endl;
082 continue;
083 }
084 std::wcout << fileName << std::endl;
085 }
086 if(NULL == pInfo->NextEntryOffset){
087 break;
088 }
089 dwNext += pInfo->NextEntryOffset;
090 }
091 ::Sleep(10);
092 }
093 return 0;
094 }

テーマ:プログラミング - ジャンル:コンピュータ

ずっと、「アジャックス」だと思ってました。
恥ずかしい。。。
「エイジャックス」だったんですね。
この前も、会社で「アジャックス」って連呼してしまいました。
http://oasis.noblog.net/blog/a/10030661.writeback

テーマ:インターネット関連 - ジャンル:コンピュータ

IEのコンテキストメニューは、簡単なHTMLファイルを
作るだけで追加できます。
また今回は紹介しませんが、HTMLにActiveXを使うスクリプトを記述すれば、複雑な処理を実装することも可能です。

【IEコンテキストメニュー手順】
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\
にサブキーを作成します。
このサブキー名でコンテキストメニューに表示されます。
作成したキーの規定値(REG_SZ)に、IEのコンテキストメニューをクリックしたときに呼び出されるHTMLファイルのパスを入力します。


【IEコンテキストメニューから呼び出されるHTMLの例】
表示中のWebページでテキストを選択して以下のコンテキストメニューを実行すると、
選択したテキストをGoogleで検索します。


<html>
<script language="JavaScript">
//Documentを取得する
var parentwin = external.menuArguments;
var doc = parentwin.document;
//ページ内の選択された文字列を取得する
var sel = doc.selection;
var rng = sel.createRange();
var strhtml = new String(rng.htmlText);
var str = strhtml.replace(/<[^>]*>/g," ");
str = str.replace(/\s+/g, " ");
str = str.replace(/^\s*/,"");
str = str.replace(/\s*$/,"");
if (str.indexOf(" ") != -1)
str = '"' + str + '"';
//googleで検索するためのURLを作成する
var url = "http://www.google.co.jp/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=" + encodeURI(str);

//Shiftキーを押しているか
var bnewwindow = external.menuArguments.event.shiftKey;
//Shiftキーを押していたら、新しいウィンドウ。
//押してなかったら現在のウィンドウでGoogleの検索結果を表示する
if(bnewwindow){
newwnd = parentwin.open("","","resizable=yes,scrollbars=yes,width=800,height=600");
}else{
parentwin.navigate(url);
}
</script>
</html>

テーマ:プログラミング - ジャンル:コンピュータ

週足の波動チャートを公開します。

以前、
仁科式波動チャートでラクラク大儲け―5日、5週、5か月先の株価がわかる!
を読んで、波動チャートを自動生成するアプリケーションを作りました。
下のリンク先(pdf)は、その本に書いてある選び方で、
私のアプリケーションが自動的にピックアップした銘柄の波動チャートです。

私は、投資額が少ないので少しずつですが、着実に儲かっています。(2005.11.22現在)

そのうち、私のアプリケーションを公開しようと思っています。
その先行PRとして、時々、ピックアップした銘柄のチャートを公開しようと思います。

このチャートのpdfファイルに関しては、
私は一切の権利を主張しませんので、
どうぞご自由にご利用ください。
2005年11月13日版波動チャート(pdf)ダウンロード

このチャートは、
仁科式波動チャートでラクラク大儲け―5日、5週、5か月先の株価がわかる!
とあわせて利用すると、よりいっそう効果的です。

感想,結果,クレームなどなど、ぜひご連絡ください。
アプリケーションの改善に役立てたいと思います。

テーマ:株式入門 - ジャンル:株式・投資・マネー

自分のアプリのなかでVBScriptやJScriptを呼び出します。
この機能を使うと自分のアプリでExcelやWordのマクロと同じことが実現できます。

ソースのダウンロード(zipファイル)
↓さわりの部分
/// <summary>
/// スクリプトを実行する
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void OnRun(object sender, System.EventArgs e)
{
try
{
MSScriptControl.IScriptControl scriptCtl = new MSScriptControl.ScriptControlClass();
scriptCtl.SitehWnd = (int) this.Handle;
//スクリプトエンジンを指定する
scriptCtl.Language = comboScriptEngine.Text;
/*
* スクリプトから呼び出すオブジェクトを登録する
* ここで登録するオブジェクトはIDispatchを実装する必要がある
*/

//オブジェクト名を省略して呼び出すオブジェクトを登録する
scriptCtl.AddObject("TestCls", new ScriptClasses.TestCls(), true);
//オブジェクト名"Env"で呼び出すオブジェクトを登録する
scriptCtl.AddObject("Env", new ScriptClasses.Environment(this), false);
try
{
//スクリプトを実行する
scriptCtl.AddCode(textSource.Text);
}
catch(Exception ex)//スクリプト実行時エラー発生
{

MSScriptControl.Error err = scriptCtl.Error;
if(err == null)
{
textResult.Text = ex.ToString();
return;
}
string msg = string.Format("({0}, {1}): error {2}: {3}", err.Line, err.Column, err.Number, err.Description);
textResult.Text = msg;
}
}
catch(Exception ex2)
{
textResult.Text = ex2.ToString();
}
}

テーマ:プログラミング - ジャンル:コンピュータ

とても勉強になります。
・ソフトウェア・ビジネスを成功させるための10ヶ条
・ビジネスプランのフレームワーク
・ブランド資産の確立プロセス
・マイケル・ポーターの5つの競争要因
・情報サービスに対するニーズの現状
・特化戦略のための6つの軸と顧客戦略の関係
・プロフェッショナルに欠かせない8つのコンピテンシー
などなど。。
http://www.pref.fukushima.jp/industry/downloadfile/biz/report/200402software.pdf

テーマ:ソフトウェア - ジャンル:コンピュータ

WindowsのC++でコールスタック(関数呼び出しの階層状態,Java風に言うとスタックトレース)を取得する方法です。
例外やエラー時にコールスタックをロギングすると
デバッグがとても楽になります。

私の昔のサイトでも同じようなのを載せてたんですけど、
とても重要な機能なので、こっちにも買いときます。

※WindowsXP SP2では、なぜかうまく取れませんでした。
※どなたか解決方法をご存知でしたら、おしえてください。
⇒ 続きを読む

テーマ:プログラミング - ジャンル:コンピュータ

select id from dbo.sysobjects where id = object_id(N'[dbo].[%ここにテーブル名%]') and OBJECTPROPERTY(id, N'IsUserTable') = 1

テーマ:プログラミング - ジャンル:コンピュータ

スレッドプールの最大サイズを変更するメソッドが、
COMだとあるのに、なぜか.NET Frameworkには無いんです。
ってことで、.NETでスレッドプールの最大サイズを変更する方法を公開します。
⇒ 続きを読む

テーマ:プログラミング - ジャンル:コンピュータ










ポインタの参照先をチェックするWindowsAPIです。
参照先の内容によって4種類あります。
IsBadReadPtr呼び出し側プロセスが、指定されたメモリブロックに対して読み取りアクセスを行えるかどうかを判断します。
IsBadStringPtr呼び出し側プロセスが、1 つの文字列ポインタで指定されたメモリ範囲に対して読み取りアクセスを行えるかどうかを判断します。
IsBadWritePtr呼び出し側プロセスが、指定されたメモリ範囲に対して書き込みアクセスを行えるかどうかを判断します。
IsBadCodePtr呼び出し側プロセスが、指定されたアドレスのメモリに対して読み取りアクセスを行えるかどうかを判断します。

テーマ:プログラミング - ジャンル:コンピュータ

Microsoft Office 2003 のOCRをC++で使う。
画像から文字列を抽出するプログラム。
【必須環境】
・Microsofto Office 2003
⇒ 続きを読む

テーマ:プログラミング - ジャンル:コンピュータ

IBMのThinkPadから引っぺがしたようなキーボード。
この記事を書いているのにも、もちろん使ってます。
会社と自宅で計2台置いてます。
(トラベルキーボードなのに会社と自宅で持ち運んでないことはツッこまないで。。)
レノボ・ジャパンレノボ・ジャパン USBトラベルキーボード ウルトラナビ付
なにがそんなにスゴいのかって、それは、
GとHとBの間にある赤ポッチ(ポインティングデバイス)。
これは本当にすばらしい!
ホームポジションのまま、

1~2ミリの挙動でマウスポインタが動かせる!!
1~2ミリの挙動でスクロールできる!!

だって、デスクが散らかっててマウス動かせないし。。。。。
これさえあれば、もうモニタを見ながら右手でマウスを探す必要なし!
無駄な動きが減って、集中力途切れなくなるし作業効率もアップ!

ちなみに私は、右Altを田キーにしてます。

テーマ:プログラミング - ジャンル:コンピュータ

前回書いた「C#でWebブラウザをつくる」を作ったときに使ったツールです。
デスクトップの操作をFlashムービーにしてくれます(無料)。
デモをWebで公開したり、
開発中のバグレポートに使ったり
活用方法はいろいろ。動いてる画面を配布できるので、コミュニケーションが円滑になります。

Wink公式サイト

テーマ:フリーソフト - ジャンル:コンピュータ

とあるきっかけでC#を教えたときに作ったFlashムービーです。
VisualStudioを起動してから簡単なWebブラウザが完成するまでの一連の流れを記録してみたものです。
って言ってもIEのコンポーネントを張っつけただけなんだけどね。
ここにあります。。

テーマ:プログラミング - ジャンル:コンピュータ

// HOME // 
シャトー・フルール・ド・ジャン・ゲイ・レゼルヴ 2001
↑これ、お気に入りのワインです
毎日ペースで飲んでる中からの
厳選(?)チョイスする予定。。
(ちなみに赤が好き)
カテゴリー
最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
ブロとも申請フォーム
ブログ内検索

RSSフィード
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。