マクロ 公開データ (2000.10~2008.01)

[1050] Q-encode された US-ASCII をデコードするマクロ - こういちろう <koichiro@ss.iij4u.or.jp> 01/07/31 16:18[1051] (1050の改良版) Q-encoded US-ASCII のデコード - こういちろう <koichiro@ss.iij4u.or.jp> 01/07/31 19:35


Subject: [1050] Q-encode された US-ASCII をデコードするマクロ Date: Tue, 31 Jul 2001 16:18:41 +0900 From: こういちろう <koichiro_@_ss.iij4u.or.jp>
// ヘッダに、Q-encode された US-ASCII 文字列 // (「=?us-ascii?q?」で始まるもの) が含まれていた場合に // それをデコードするためのマクロです。 // EdMax 本体で対応されるまでの対応策として作成しました。 // 【使用法】 // あらかじめ、該当のヘッダを含むメッセージを表示しておいた状態で // 本マクロを実行します。 // 【制限事項】 // 本マクロがデコードできるのは、実行1回につき1行だけです。 // 複数行にわたって Q-encode された US-ASCII 文字列がある場合は // すべてデコードされるまで本マクロを繰り返し実行させてください。 // Start of EdMax Macro ToggleMailEditMode( ) ; ToggleEnableHeaderEdit( ) ; SetFocusToView( ) ; KeyDown( VK_HOME , 2 ) ; FindString( TRUE , FALSE , TRUE , FALSE , TRUE , FALSE , FALSE , TRUE , TRUE , "=?us-ascii?q" ) ; KeyDown( VK_HOME , 0 ) ; SetAnchor( ) ; KeyDown( VK_END , 0 ) ; SetAnchor( ) ; SelectAnchorArea( ) ; CopyString( ) ; NewMessageSx( ) ; SelectAllString( ) ; PasteString( ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , " =?us-ascii?q?" , " " ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "?= " , "" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "?=" , "" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "_" , " " ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=5F" , "_" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=21" , "!" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=23" , "#" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=24" , "$" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=28" , "(" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=29" , ")" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=2E" , "." ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=2A" , "*" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=2B" , "+" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=2C" , "," ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=2E" , "." ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=2F" , "/" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=3A" , ":" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=3B" , ";" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=3C" , "<" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=3E" , ">" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=40" , "_@_" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=5B" , "[" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=5D" , "]" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=60" , "`" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=5C" , "\\" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=3F" , "?" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=3D" , "=" ) ; SelectAllString( ) ; CopyString( ) ; CloseFileNoConfirmation( ) ; ActivateMailerPart( ) ; SetFocusToView( ) ; SelectAnchorArea( ) ; PasteString( ) ; KeyDown( VK_HOME , 0 ) ; SetAnchor( ) ; KeyDown( VK_END , 0 ) ; SetAnchor( ) ; ToggleEnableHeaderEdit( ) ; ToggleMailEditMode( ) ; // End of EdMax Macro
Subject: [1051] (1050の改良版) Q-encoded US-ASCII のデコード Date: Tue, 31 Jul 2001 19:35:36 +0900 From: こういちろう <koichiro_@_ss.iij4u.or.jp>
ヘッダに Q-encode された US-ASCII 文字列 (「=?us-ascii?q?」で始まるもの) が含まれているメッセージについて そのメッセージがあるフォルダを開いて本マクロを実行すると Q-encode の部分がデコードされます。 デコードする範囲はカスタマイズ可能です。 EdMax 本体で対応されるまでの対応策として作成しました。 # No.1050 として投稿したものは環境依存性が高かったので # 削除のうえ書き直しました。 【制限事項】 * 本マクロがデコードできるのは、実行1回につき1行だけです。 複数行にわたって Q-encode された US-ASCII 文字列がある場合は すべてデコードされるまで本マクロを繰り返し実行させてください。 * 本マクロを実行するとクエリー結果ウィンドウが開いたまま終了します。 (クエリー結果ウィンドウを閉じる動作がマクロ化できないため) * 本マクロを実行するとクリップボードの中身が消えます。 = = = = = = = = = この次の行から = = = = = = = = = // Start of EdMax Macro SaveCurrentAutoFormSwitch( ) ; SaveMailEditHeaderEditMode( ) ; SaveCurrentQueryCondition( ) ; // ここまでおまじない DoQuery( FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , FALSE , 0 , 2 , "=?us-ascii?q?" , "2001/07/31" , "2001/07/31" , FALSE , FALSE , FALSE , FALSE , FALSE , 1 ) ; // この「DoQuery」について "=?us-ascii?q?" の2つ前の値を書き換えると // デコードする範囲が設定できる。 // 0 (初期値) = 現在のフォルダ // 1 = 現在+下位のフォルダ // 2 = 現在のアカウント // 3 = すべてのアカウント OffAutoForm( ) ; OnHeaderEdit( ) ; SetFocusToView( ) ; KeyDown( VK_HOME , 2 ) ; FindString( TRUE , FALSE , TRUE , FALSE , TRUE , FALSE , FALSE , TRUE , TRUE , "=?us-ascii?q" ) ; KeyDown( VK_HOME , 0 ) ; SetAnchor( ) ; KeyDown( VK_END , 0 ) ; SetAnchor( ) ; SelectAnchorArea( ) ; CopyString( ) ; NewMessageSx( ) ; SetFocusToEditor( ) ; SelectAllString( ) ; PasteString( ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , " =?us-ascii?q?" , " " ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "?= " , "" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "?=" , "" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "_" , " " ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=5F" , "_" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=21" , "!" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=23" , "#" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=24" , "$" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=28" , "(" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=29" , ")" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=2E" , "." ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=2A" , "*" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=2B" , "+" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=2C" , "," ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=2E" , "." ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=2F" , "/" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=3A" , ":" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=3B" , ";" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=3C" , "<" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=3E" , ">" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=40" , "_@_" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=5B" , "[" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=5D" , "]" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=60" , "`" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=5C" , "\\" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=3F" , "?" ) ; ReplaceString( 2 , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , "=3D" , "=" ) ; SelectAllString( ) ; CopyString( ) ; CloseFileNoConfirmation( ) ; ActivateMailerPart( ) ; SetFocusToView( ) ; SelectAnchorArea( ) ; PasteString( ) ; ClearClipboard( ) ; // 以下おまじない KeyDown( VK_HOME , 0 ) ; SetAnchor( ) ; KeyDown( VK_END , 0 ) ; SetAnchor( ) ; ToggleEnableHeaderEdit( ) ; ToggleMailEditMode( ) ; RestoreMailEditHeaderEditMode( ) ; RestoreAutoFormSwitch( ) ; RestoreCurrentQueryCondition( ) ; // End of EdMax Macro