SlideShare una empresa de Scribd logo
1 de 9
Descargar para leer sin conexión
自作saoriの紹介




              http://white-ball.hp.infoseek.co.jp/
                                          しらたま

2009/03/15     伺的ソフトウェア勉強会 横浜#3                  1
saoriって?
 ●   ベースウェアとかに依存せずいろいろやる仕組み
 ●   機能別にいろいろあります
       –     SAORI COLLECTION
       –     さおりん
       –     何かの略歴




2009/03/15              伺的ソフトウェア勉強会 横浜#3   2
自作saori
 ●   filewatch.dll
       –     ファイル更新チェック
 ●   imgctl_saori.dll
       –     画像処理
 ●   ssparser_saori.dll
       –     さくらスクリプト解析
 ●   call_func.dll
       –     DLL関数呼び出し

2009/03/15              伺的ソフトウェア勉強会 横浜#3   3
filewatch.dll
 ●   WinAPI FindFirstChangeNotificationのラッパー
 ●   ファイル/フォルダの更新をNOTIFY SSTPで通知
  OnFileWatchChangeNotify{
     _a = REPLACE(reference0,"","")
     --
     if FWID != -1 {
          _b = FUNCTIONEX('filewatch.dll','StopFileWatch',FWID);
          FWID = -1;
     }
     --
     "1s[10]0s[0]%_aの更新を確認。e"
  }
  OnBoot{
     FWID = FUNCTIONEX('filewatch.dll',
               'StartFileWatch','C:nanikassp','true','',sakurahwnd)
  }

2009/03/15                       伺的ソフトウェア勉強会 横浜#3                       4
imgctl_saori.dll
 ●   画像処理ライブラリ imgctl.dllのラッパー
 ●   ただし、一部機能に制限あり
 #define IMGCTL_SAORI 'imgctl_saori.dll'
    _h1 = FUNCTIONEX(IMGCTL_SAORI,'ToDIB','src1.jpg')
    _h2 = FUNCTIONEX(IMGCTL_SAORI,'ToDIB','src2.jpg')
    if _h1 != 0 {
       _ = FUNCTIONEX(IMGCTL_SAORI,'PasteDIB',
           _h1,100,100,-100,-100,_h2,200,200,"frame",30)
       _ =
 FUNCTIONEX(IMGCTL_SAORI,'DIBtoPNG','des.png',_h1,0)
    }else{
       _ = FUNCTIONEX(IMGCTL_SAORI,'ImgctlError')
    }
    _ = FUNCTIONEX(IMGCTL_SAORI,'DeleteDIB',_h1)
    _ = FUNCTIONEX(IMGCTL_SAORI,'DeleteDIB',_h2)
2009/03/15             伺的ソフトウェア勉強会 横浜#3                    5
ssparser_saori.dll
 ●   さくらスクリプト解析クラス TSsParserのラッパー
 ●   パターンを定義して柔軟な対応が可能
 ●   定義の仕方はSSTP Bottle Clientを参考に
       –     tagpat.txt
       –     metapat.txt




2009/03/15                    伺的ソフトウェア勉強会 横浜#3   6
ssparser_saori.dll
#define SAORI 'ssparser_saori.dll'
   _ = FUNCTIONEX(SAORI,'SetTagPattern',
      'h','u','s[%D]','s[-%D]','s%d','!s%b','!s%b','!s%.')
    FUNCTIONEX(SAORI,'GetTagPatternAsDelimitedText')
    --
    _ = FUNCTIONEX(SAORI,'SetTagPatternFromFile','tagpat.txt')
    _ = FUNCTIONEX(SAORI,'SetMetaPatternAsDelimitedText',
       'selfname'+CHR(1)+'keroname'+CHR(1)+'username')
    _ = FUNCTIONEX(SAORI,'SetInputString',
       'tus[10]hs[7]おとーさーん!w9w9us[13]こーしーん!e')
    FUNCTIONEX(SAORI,'GetStrAsDelimitedText')
    --
    FUNCTIONEX(SAORI,'GetMarkUpTypeAsDelimitedText')
2009/03/15               伺的ソフトウェア勉強会 横浜#3                         7
call_func.dll
 ●   Stdcallな任意のDLL関数を呼び出しが可能
 ●   メモリ操作もできます
  #define CALL_FUNC_SAORI 'call_func.dll'
     _ = FUNCTIONEX(CALL_FUNC_SAORI,'add_func','kernel32.dll',
        'GetCurrentDirectoryA','u32','u32','ptr')
     _a = FUNCTIONEX(CALL_FUNC_SAORI,'alloc_mem','p',260)
       _ = FUNCTIONEX(CALL_FUNC_SAORI,'call_func',
          'GetCurrentDirectoryA',260,_a)
       _path = FUNCTIONEX(CALL_FUNC_SAORI,'get_mem',_a,'s')
       _ = FUNCTIONEX(CALL_FUNC_SAORI,'free_mem',_a,'p')
       _ = FUNCTIONEX(CALL_FUNC_SAORI,'remove_func',
          'GetCurrentDirectoryA')

2009/03/15                伺的ソフトウェア勉強会 横浜#3                       8
Saoriネタ募集中




2009/03/15     伺的ソフトウェア勉強会 横浜#3   9

Más contenido relacionado

La actualidad más candente

iTamabi 13 第7回:ARTSAT API 実践 2 衛星の情報で表現する
iTamabi 13  第7回:ARTSAT API 実践 2 衛星の情報で表現するiTamabi 13  第7回:ARTSAT API 実践 2 衛星の情報で表現する
iTamabi 13 第7回:ARTSAT API 実践 2 衛星の情報で表現する
Atsushi Tadokoro
 
Lightweight Language Tiger 2010
Lightweight Language Tiger 2010Lightweight Language Tiger 2010
Lightweight Language Tiger 2010
biscuitjam
 
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
Atsushi Tadokoro
 
USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413
博文 斉藤
 
System4 comment h
System4 comment hSystem4 comment h
System4 comment h
Jun Chiba
 

La actualidad más candente (19)

Stroustrup11章雑感
Stroustrup11章雑感Stroustrup11章雑感
Stroustrup11章雑感
 
Local php-100828 2
Local php-100828 2Local php-100828 2
Local php-100828 2
 
iTamabi 13 第7回:ARTSAT API 実践 2 衛星の情報で表現する
iTamabi 13  第7回:ARTSAT API 実践 2 衛星の情報で表現するiTamabi 13  第7回:ARTSAT API 実践 2 衛星の情報で表現する
iTamabi 13 第7回:ARTSAT API 実践 2 衛星の情報で表現する
 
Start printf 6_takarakasai
Start printf 6_takarakasaiStart printf 6_takarakasai
Start printf 6_takarakasai
 
EmacsとGlossでお絵描きしてみるよ
EmacsとGlossでお絵描きしてみるよEmacsとGlossでお絵描きしてみるよ
EmacsとGlossでお絵描きしてみるよ
 
Testman
TestmanTestman
Testman
 
Subprocess no susume
Subprocess no susumeSubprocess no susume
Subprocess no susume
 
New Generation Build System "Fly"
New Generation Build System "Fly"New Generation Build System "Fly"
New Generation Build System "Fly"
 
Ll xcode
Ll xcodeLl xcode
Ll xcode
 
Lightweight Language Tiger 2010
Lightweight Language Tiger 2010Lightweight Language Tiger 2010
Lightweight Language Tiger 2010
 
Poolboy
PoolboyPoolboy
Poolboy
 
What is Metasepi?
What is Metasepi?What is Metasepi?
What is Metasepi?
 
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
 
USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413
 
実用裏方 Perl 入門
実用裏方 Perl 入門実用裏方 Perl 入門
実用裏方 Perl 入門
 
System4 comment h
System4 comment hSystem4 comment h
System4 comment h
 
Marionettejs getting started
Marionettejs getting startedMarionettejs getting started
Marionettejs getting started
 
test
testtest
test
 
知って得する標準関数の使い方
知って得する標準関数の使い方知って得する標準関数の使い方
知って得する標準関数の使い方
 

Similar a 自作saoriの紹介

データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
Naoyuki Yamada
 
20110714 j queryベーシック
20110714 j queryベーシック20110714 j queryベーシック
20110714 j queryベーシック
良太 増子
 
TestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテストTestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテスト
Yoichiro Sakurai
 
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterWTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
Masanori Oobayashi
 
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -
Akio Katayama
 

Similar a 自作saoriの紹介 (20)

データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
 
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋
 
Silex入門
Silex入門Silex入門
Silex入門
 
きつねさんでもわかるLlvm読書会 第2回
きつねさんでもわかるLlvm読書会 第2回きつねさんでもわかるLlvm読書会 第2回
きつねさんでもわかるLlvm読書会 第2回
 
TensorFlowをもう少し詳しく入門
TensorFlowをもう少し詳しく入門TensorFlowをもう少し詳しく入門
TensorFlowをもう少し詳しく入門
 
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
 
20110714 j queryベーシック
20110714 j queryベーシック20110714 j queryベーシック
20110714 j queryベーシック
 
JavaScript入門
JavaScript入門JavaScript入門
JavaScript入門
 
はじめてのCodeIgniter
はじめてのCodeIgniterはじめてのCodeIgniter
はじめてのCodeIgniter
 
TestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテストTestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテスト
 
ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用
 
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624
 
使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!
 
Programming camp Codereading
Programming camp CodereadingProgramming camp Codereading
Programming camp Codereading
 
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterWTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
 
20130924 Picomon CRH勉強会
20130924 Picomon CRH勉強会20130924 Picomon CRH勉強会
20130924 Picomon CRH勉強会
 
What is doobie? - database access for scala -
What is doobie? - database access for scala -What is doobie? - database access for scala -
What is doobie? - database access for scala -
 
JavaScript 実践講座 Framework, Tool, Performance
JavaScript 実践講座 Framework, Tool, PerformanceJavaScript 実践講座 Framework, Tool, Performance
JavaScript 実践講座 Framework, Tool, Performance
 
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -
 
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -
 

Más de wizstargaer

Más de wizstargaer (12)

Inside COLORS
Inside COLORSInside COLORS
Inside COLORS
 
ウカガカ動画(¥e)
ウカガカ動画(¥e)ウカガカ動画(¥e)
ウカガカ動画(¥e)
 
使いやすいサイト・見やすいサイトってなんぞや
使いやすいサイト・見やすいサイトってなんぞや使いやすいサイト・見やすいサイトってなんぞや
使いやすいサイト・見やすいサイトってなんぞや
 
AYAでクイズを作ろう~データの取り扱い方
AYAでクイズを作ろう~データの取り扱い方AYAでクイズを作ろう~データの取り扱い方
AYAでクイズを作ろう~データの取り扱い方
 
順路のない物語――差別化・重みづけ・描写のゴースト作成
順路のない物語――差別化・重みづけ・描写のゴースト作成順路のない物語――差別化・重みづけ・描写のゴースト作成
順路のない物語――差別化・重みづけ・描写のゴースト作成
 
PNA3秒クッキング
PNA3秒クッキングPNA3秒クッキング
PNA3秒クッキング
 
べ、別に来て欲しいなんて言ってないんだからっっ
べ、別に来て欲しいなんて言ってないんだからっっべ、別に来て欲しいなんて言ってないんだからっっ
べ、別に来て欲しいなんて言ってないんだからっっ
 
みんなもっとツール作ろうよ
みんなもっとツール作ろうよみんなもっとツール作ろうよ
みんなもっとツール作ろうよ
 
「今」のSSPを伝える動作デモ
「今」のSSPを伝える動作デモ「今」のSSPを伝える動作デモ
「今」のSSPを伝える動作デモ
 
伺うかのうだうだぐだぐだ
伺うかのうだうだぐだぐだ伺うかのうだうだぐだぐだ
伺うかのうだうだぐだぐだ
 
ゴースト・と・で・の・お話
ゴースト・と・で・の・お話ゴースト・と・で・の・お話
ゴースト・と・で・の・お話
 
我々はどこから来たのか 我々は何者か 我々はどこに行くのか
我々はどこから来たのか 我々は何者か 我々はどこに行くのか我々はどこから来たのか 我々は何者か 我々はどこに行くのか
我々はどこから来たのか 我々は何者か 我々はどこに行くのか
 

Último

Último (6)

生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
 
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
 

自作saoriの紹介

  • 1. 自作saoriの紹介 http://white-ball.hp.infoseek.co.jp/ しらたま 2009/03/15 伺的ソフトウェア勉強会 横浜#3 1
  • 2. saoriって? ● ベースウェアとかに依存せずいろいろやる仕組み ● 機能別にいろいろあります – SAORI COLLECTION – さおりん – 何かの略歴 2009/03/15 伺的ソフトウェア勉強会 横浜#3 2
  • 3. 自作saori ● filewatch.dll – ファイル更新チェック ● imgctl_saori.dll – 画像処理 ● ssparser_saori.dll – さくらスクリプト解析 ● call_func.dll – DLL関数呼び出し 2009/03/15 伺的ソフトウェア勉強会 横浜#3 3
  • 4. filewatch.dll ● WinAPI FindFirstChangeNotificationのラッパー ● ファイル/フォルダの更新をNOTIFY SSTPで通知 OnFileWatchChangeNotify{ _a = REPLACE(reference0,"","") -- if FWID != -1 { _b = FUNCTIONEX('filewatch.dll','StopFileWatch',FWID); FWID = -1; } -- "1s[10]0s[0]%_aの更新を確認。e" } OnBoot{ FWID = FUNCTIONEX('filewatch.dll', 'StartFileWatch','C:nanikassp','true','',sakurahwnd) } 2009/03/15 伺的ソフトウェア勉強会 横浜#3 4
  • 5. imgctl_saori.dll ● 画像処理ライブラリ imgctl.dllのラッパー ● ただし、一部機能に制限あり #define IMGCTL_SAORI 'imgctl_saori.dll' _h1 = FUNCTIONEX(IMGCTL_SAORI,'ToDIB','src1.jpg') _h2 = FUNCTIONEX(IMGCTL_SAORI,'ToDIB','src2.jpg') if _h1 != 0 { _ = FUNCTIONEX(IMGCTL_SAORI,'PasteDIB', _h1,100,100,-100,-100,_h2,200,200,"frame",30) _ = FUNCTIONEX(IMGCTL_SAORI,'DIBtoPNG','des.png',_h1,0) }else{ _ = FUNCTIONEX(IMGCTL_SAORI,'ImgctlError') } _ = FUNCTIONEX(IMGCTL_SAORI,'DeleteDIB',_h1) _ = FUNCTIONEX(IMGCTL_SAORI,'DeleteDIB',_h2) 2009/03/15 伺的ソフトウェア勉強会 横浜#3 5
  • 6. ssparser_saori.dll ● さくらスクリプト解析クラス TSsParserのラッパー ● パターンを定義して柔軟な対応が可能 ● 定義の仕方はSSTP Bottle Clientを参考に – tagpat.txt – metapat.txt 2009/03/15 伺的ソフトウェア勉強会 横浜#3 6
  • 7. ssparser_saori.dll #define SAORI 'ssparser_saori.dll' _ = FUNCTIONEX(SAORI,'SetTagPattern', 'h','u','s[%D]','s[-%D]','s%d','!s%b','!s%b','!s%.') FUNCTIONEX(SAORI,'GetTagPatternAsDelimitedText') -- _ = FUNCTIONEX(SAORI,'SetTagPatternFromFile','tagpat.txt') _ = FUNCTIONEX(SAORI,'SetMetaPatternAsDelimitedText', 'selfname'+CHR(1)+'keroname'+CHR(1)+'username') _ = FUNCTIONEX(SAORI,'SetInputString', 'tus[10]hs[7]おとーさーん!w9w9us[13]こーしーん!e') FUNCTIONEX(SAORI,'GetStrAsDelimitedText') -- FUNCTIONEX(SAORI,'GetMarkUpTypeAsDelimitedText') 2009/03/15 伺的ソフトウェア勉強会 横浜#3 7
  • 8. call_func.dll ● Stdcallな任意のDLL関数を呼び出しが可能 ● メモリ操作もできます #define CALL_FUNC_SAORI 'call_func.dll' _ = FUNCTIONEX(CALL_FUNC_SAORI,'add_func','kernel32.dll', 'GetCurrentDirectoryA','u32','u32','ptr') _a = FUNCTIONEX(CALL_FUNC_SAORI,'alloc_mem','p',260) _ = FUNCTIONEX(CALL_FUNC_SAORI,'call_func', 'GetCurrentDirectoryA',260,_a) _path = FUNCTIONEX(CALL_FUNC_SAORI,'get_mem',_a,'s') _ = FUNCTIONEX(CALL_FUNC_SAORI,'free_mem',_a,'p') _ = FUNCTIONEX(CALL_FUNC_SAORI,'remove_func', 'GetCurrentDirectoryA') 2009/03/15 伺的ソフトウェア勉強会 横浜#3 8
  • 9. Saoriネタ募集中 2009/03/15 伺的ソフトウェア勉強会 横浜#3 9