home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1998 January (DVD) / VPR980100.ISO / OLS / WIN32 / KAKIMAC / KAKIMACG.LZH / K_GREPLK.MAC < prev    next >
Text File  |  1995-12-21  |  10KB  |  339 lines

  1. //【マクロ名】k_grepLK.mac by 水銀水(Suigwinsui)/小田 明夫 (HGD01603)
  2.  
  3. //[★設定★]------------------お約束パターン(^^;  書きマクロのお好み設定コ~ナ~~~(^^)-----------
  4.  
  5. #ENDbyRetrun=0;    // [k_LOOK起動画面でリターンで終了]0=終了、1="return"は無効で、[Esc]のみで終了可能。
  6.  
  7. //---------------------------------------------------------------------------------------------------
  8.  
  9. if(selecting)escape;
  10. call starting;
  11. enableinvert;
  12. disablebreak;
  13. while(1){kktop0:##kaD=0;##kaU=0;
  14.     ##k=keypressed;
  15.     if(imestate)imeswitch;
  16.     kktop:
  17.     if(##fromU){##kaD=0;##fromU=0;}
  18.     if(##fromD){##kaU=0;##fromD=0;}
  19.     if(##k==0x1B){
  20.         goto ending;
  21.     }else if(##k==13){//return
  22.         if(!#ENDbyRetrun)goto ending;
  23.     }else if(##k==0x4C){//L ログ閲覧マクロへサイクリックに切り替え
  24.         call checkLOGLfile;
  25.     }else if(##k==38){//UP
  26.         if(##kaU==0){
  27.             golinetop;
  28.             goscreentop;
  29.             title "▲低速 [↑]Mid [↓]下 "+$titleMSG1;
  30.             while(1){
  31.                 ##k=keypressed;
  32.                 call WaitTime #wD1;
  33.                 up;
  34.                 if(!result){beep;##kaU=1;break;}
  35.                 else if(##k==32){
  36.                         title "△低停 [↑]Mid [↓]下 "+$titleMSG2;
  37.                         while(1){
  38.                             ##k=keypressed;
  39.                             if(##k!=0)break;
  40.                             if(imestate)imeswitch;
  41.                         }
  42.                         if(##k==32){
  43.                             title "▲低速 [↑]Mid [↓]下 "+$titleMSG1;
  44.                             continue;
  45.                         }else if(##k!=0){
  46.                             ##kaU=1;##fromU=1;goto kktop;}
  47.                 }else if(##k!=0){
  48.                     ##kaU=1;##fromU=1;
  49.                     title $hmH+"閲覧"+$titleMSG0;
  50.                     goto kktop;
  51.                 }
  52.                 if(imestate)imeswitch;
  53.             }
  54.         }else if(##kaU==1){
  55.             golinetop;
  56.             title "▲中速 [↑]Top [↓]下 "+$titleMSG1;
  57.             while(1){
  58.                 ##k=keypressed;
  59.                 call WaitTime #wD2;
  60.                 up 2;
  61.                 if(!result){beep;##kaU=0;break;}
  62.                 else if(##k==32){
  63.                         title "△中停 [↑]Top [↓]下 "+$titleMSG2;
  64.                         while(1){
  65.                             ##k=keypressed;
  66.                             if(##k!=0)break;
  67.                             if(imestate)imeswitch;
  68.                         }
  69.                         if(##k==32){
  70.                             title "▲中速 [↑]Top [↓]下 "+$titleMSG1;
  71.                             continue;
  72.                         }else if(##k!=0){
  73.                             ##kaU=2;##fromU=1;goto kktop;}
  74.                 }else if(##k!=0){
  75.                     ##kaU=2;##fromU=1;
  76.                     title $hmH+"閲覧"+$titleMSG0;
  77.                     goto kktop;
  78.                 }
  79.                 if(imestate)imeswitch;
  80.             }
  81.         }else if(##kaU==2){
  82.             golinetop;
  83.             title "▲高速 [↑]Low [↓]下 "+$titleMSG1;
  84.             while(1){
  85.                 ##k=keypressed;
  86.                 up 4;
  87.                 call WaitTime #wD3;
  88.                 if(!result){beep;##kaU=0;break;}
  89.                 else if(##k==32){
  90.                         title "△高停 [↑]Low [↓]下 "+$titleMSG2;
  91.                         while(1){
  92.                             ##k=keypressed;
  93.                             if(##k!=0)break;
  94.                             if(imestate)imeswitch;
  95.                         }
  96.                         if(##k==32){
  97.                             title "▲高速 [↑]Low [↓]下 "+$titleMSG1;
  98.                             continue;
  99.                         }else if(##k!=0){
  100.                             ##kaU=0;##fromU=1;goto kktop;}
  101.                 }else if(##k!=0){
  102.                     ##kaU=0;##fromU=1;
  103.                     title $hmH+"閲覧"+$titleMSG0;
  104.                     goto kktop;
  105.                 }
  106.                 if(imestate)imeswitch;
  107.             }
  108.         }
  109.         title $hmH+"閲覧"+$titleMSG0;
  110.     }else if(##k==40){//DOWN
  111.         if(##kaD==0){
  112.             golinetop;
  113.             goscreenend;
  114.             title "▼低速 [↑]上 [↓]Mid "+$titleMSG1;
  115.             while(1){
  116.                 ##k=keypressed;
  117.                 down;
  118.                 call WaitTime #wD1;
  119.                 if(!result){beep;##kaD=1;break;}
  120.                 else if(##k==32){
  121.                         title "▽低停 [↑]上 [↓]Mid "+$titleMSG2;
  122.                         while(1){
  123.                             ##k=keypressed;
  124.                             if(##k!=0)break;
  125.                             if(imestate)imeswitch;
  126.                         }
  127.                         if(##k==32){
  128.                             title "▼低速 [↑]上 [↓]Mid "+$titleMSG1;
  129.                             continue;
  130.                         }else if(##k!=0){
  131.                             ##kaD=1;##fromD=1;goto kktop;}
  132.                 }else if(##k!=0){
  133.                     ##kaD=1;##fromD=1;
  134.                     title $hmH+"閲覧"+$titleMSG0;
  135.                     goto kktop;
  136.                 }
  137.                 if(imestate)imeswitch;
  138.             }
  139.         }else if(##kaD==1){
  140.             golinetop;
  141.             title "▼中速 [↑]上 [↓]Top "+$titleMSG1;
  142.             while(1){
  143.                 ##k=keypressed;
  144.                 down 2;
  145.                 call WaitTime #wD2;
  146.                 if(!result){beep;##kaD=0;break;}
  147.                 else if(##k==32){
  148.                         title "▽中停 [↑]上 [↓]Top "+$titleMSG2;
  149.                         while(1){
  150.                             ##k=keypressed;
  151.                             if(##k!=0)break;
  152.                             if(imestate)imeswitch;
  153.                         }
  154.                         if(##k==32){
  155.                             title "▼中速 [↑]上 [↓]Top "+$titleMSG1;
  156.                             continue;
  157.                         }else if(##k!=0){
  158.                             ##kaD=2;##fromD=1;goto kktop;}
  159.                 }else if(##k!=0){
  160.                     ##kaD=2;##fromD=1;
  161.                     title $hmH+"閲覧"+$titleMSG0;
  162.                     goto kktop;
  163.                 }
  164.                 if(imestate)imeswitch;
  165.             }
  166.         }else if(##kaD==2){
  167.             golinetop;
  168.             title "▼高速 [↑]上 [↓]Low "+$titleMSG1;
  169.             while(1){
  170.                 ##k=keypressed;
  171.                 down 4;
  172.                 call WaitTime #wD3;
  173.                 if(!result){beep;##kaD=0;break;}
  174.                 else if(##k==32){
  175.                         title "▽高停 [↑]上 [↓]Low "+$titleMSG2;
  176.                         while(1){
  177.                             ##k=keypressed;
  178.                             if(##k!=0)break;
  179.                             if(imestate)imeswitch;
  180.                         }
  181.                         if(##k==32){
  182.                             title "▼高速 [↑]上 [↓]Low "+$titleMSG1;
  183.                             continue;
  184.                         }else if(##k!=0){
  185.                             ##kaD=0;##fromD=1;goto kktop;}
  186.                 }else if(##k!=0){
  187.                     ##kaD=0;##fromD=1;
  188.                     title $hmH+"閲覧"+$titleMSG0;
  189.                     goto kktop;
  190.                 }
  191.                 if(imestate)imeswitch;
  192.             }
  193.         }
  194.         title $hmH+"閲覧"+$titleMSG0;
  195.     }else if(##k==70){//fF^f//検索
  196.         execmacro "k_grepLS.mac";// k_GREP_Look_Search
  197.         title $hmH+"閲覧"+$titleMSG0;
  198.     }else if(##k==84||##k==36){//t,T,Home
  199.         gofiletop;
  200.         title $hmH+"文頭"+$titleMSG0;
  201.     }else if(##k==69||##k==35){//e,E,End
  202.         gofileend;
  203.         title $hmH+"文末"+$titleMSG0;
  204.     }else if(##k==78){//n-display filename
  205.         title "秀丸 - "+filename;// title 0;の代わり(^^;<title 0はタイトルキープの極めて便利な使い方がある(^^)>
  206.         call WaitTime 500;
  207.         title $hmH+"閲覧"+$titleMSG0;
  208.     }else if(##k==74){JumpByNum://n,j行番号ジャンプ
  209.         disableerrormsg;
  210.         jump;
  211.         if(!result){
  212.             call dispCaution "ジャンプ先の行番号は『 1~"+str(linecount)+" 』の範囲です";
  213.             goto JumpByNum;
  214.         }
  215.         enableerrormsg;
  216.         title $hmH+"閲覧"+$titleMSG0;
  217.     }else if(##k==77){//m maximize  通常<->最大
  218.         if(windowstate!=3)showwindow 3;
  219.         else showwindow 1;
  220.         title $hmH+"閲覧"+$titleMSG0;
  221.     }else if(##k==33){//PgUp
  222.         prevpage;
  223.     title $hmH+"閲覧"+$titleMSG0;
  224.     }else if(##k==34){//PgDn or Shift(on extend set)
  225.         nextpage;
  226.     title $hmH+"閲覧"+$titleMSG0;
  227.     }else if(##k==17 && #exKey==1){//Ctrl(on extend set =>PgUp)
  228.         prevpage;
  229.     title $hmH+"閲覧"+$titleMSG0;
  230.     }else if(##k==16 && #exKey==1){//Shift(on extend set => PgDn)
  231.         nextpage;
  232.     title $hmH+"閲覧"+$titleMSG0;
  233.     }else if(##k==0x53){//S:設定
  234.         execmacro "k_greplT.mac";
  235.         call getIniDW;
  236.     }else if(##k==112||##k==72){//F-1 hH help
  237.         call k_helpLook 16;
  238.     }else if(##k==79){//o この秀丸上で、元の位置へ移動
  239.         if(hidemaruhandle(0)!=#hwndOrgHM){
  240.             if(x==#orgXnow && y==#orgYnow)beep;//移動していない場合はビープ
  241.             else moveto #orgXnow,#orgYnow;
  242.         }else{
  243.             moveto #orgX,#orgY;
  244.         }
  245.         title $hmH+"閲覧"+$titleMSG0;
  246.     }else if(##k==8){//BackSpace
  247.         if(hidemaruhandle(0)!=#hwndOrgHM)setactivehidemaru #hwndOrgHM;
  248.         else if(x==#orgX && y==#orgY)beep;
  249.         moveto #orgX,#orgY;
  250.         call checkHWNDhm;
  251.         title $hmH+"閲覧"+$titleMSG0;
  252.     }else if(##k==32){// space 下方向自動スクロール
  253.         ##k=40;
  254.         goto kktop;
  255.     }else if(##k==83){//上下移動のスピード設定
  256.         call setSpeedByWaitDev;
  257.         title $hmH+"閲覧"+$titleMSG0;
  258.     }else{
  259.         if(##k==0)goto kktop0;
  260.         else beep;
  261.     }
  262. }
  263. dispCaution://キャプションに報告ビープして一定時間表示
  264. beep;
  265. title $hmH+$$1;
  266. call WaitTime 600;
  267. return;
  268.  
  269. checkHWNDhm:
  270. if(hidemaruhandle(0)==#hwndOrgHM){
  271. $hmH="●k_GREP ";
  272. }else $hmH="○";
  273. return;
  274.  
  275. WaitTime://時間待ち、空処理
  276. while(1){##n=##n+1;
  277. if(##n>=##1)break;}
  278. return;
  279.  
  280. starting:
  281. if(imestate){imeswitch;#imeYN=1;}
  282. #hwndOrgHM=hidemaruhandle(0);
  283. #orgX=x;#orgY=y;
  284. $sBuffer=searchbuffer;#sFlug=searchoption;
  285. $f0=hidemarudir+"\\kakimac\\kakimac.kdf";
  286. call getIniDW;
  287. $titleMSG0=" [↑/↓/Sp/t/e/o]動 [f/j/m/n/s/F1]操 [Bs/Esc]元/了";
  288. $titleMSG1="[Sp/t/e/o]止 [f/j/m/n/s/F1]操 [Bs/Esc]元/了";
  289. $titleMSG2="[Sp/t/e/o]動 [f/j/m/n/s/F1]操 [Bs/Esc]元/了";
  290. $hmH="●k_GREP ";
  291. title $hmH+"閲覧"+$titleMSG0;
  292. #wsINI=windowstate;
  293. #SF=getininum("hidemaru.ini","Env","SelectFound");
  294. if(!#SF){writeininum "hidemaru.ini","Env","SelectFound",1;envchanged;}
  295. #k_SRCH_use=0;    // [検索でk_SRCH使用]k_LOOKの検索:[f]で、0=k_SRCHサブセット版使用、1=k_LOOK.macそのものを完全使用。
  296. #exKey=1;    //[キー拡張設定]#exKey=1;CtrlでPgUp、ShiftでPgDnが行える。左手重視タイプ。#exKey=0:Ctrl,Shiftキーは無反応
  297. #closeAll=0;    //[終了オプション]起動された秀丸でない場合で最後の一つの秀丸になった時、0="Q"では終了しない、1=終了する。
  298. #keepOrgSize=1;    //[起動された秀丸の終了時のサイズ]0="M"で変更されたままで元に戻さない。1=起動時のサイズに戻す
  299. return;
  300.  
  301. ending:
  302. escape;
  303. if(hidemaruhandle(0)==#hwndOrgHM){
  304.     if(#keepOrgSize)
  305.     showwindow #wsINI;
  306. }
  307. if(#imeYN){if(!imestate)imeswitch;}
  308. setsearch $sBuffer,#sFlug;
  309. if(!#SF){writeininum "hidemaru.ini","Env","SelectFound",0;envchanged;}
  310. if(##1)exit;
  311. else endmacro;// k_LOOG用などは解除
  312. return;
  313.  
  314. getIniDW:
  315. #wD1=getininum($f0,"LOOK00","waitDev1");
  316. #wD2=getininum($f0,"LOOK00","waitDev2");
  317. #wD3=getininum($f0,"LOOK00","waitDev3");
  318. return;
  319.  
  320. checkLOGLfile:
  321.         $HMMacroDir=getinistr("hidemaru.ini","Env","MacroPath");
  322.         if($HMMacroDir=="")$HMMacroDir=hidemarudir;
  323.         if(existfile($HMMacroDir+"\\k_LOOG.mac")){
  324.             writeininum $f0,"LOOK00","ChangeMode",1;
  325.             endmacro;
  326.         }else{
  327.             beep;
  328.             message "●報告...ログファイル閲覧は、まだ準備ができていません(^^;\n"+
  329.                 "●理由...ログ版の k_logL.mac がありません\n"+
  330.                 "●対策...k_logL.macとk_LOOG.macをマクロ用ディレクトリに移して、k_LOOG.macを実行してください。";
  331.         }
  332. return;
  333.  
  334. k_helpLook://外部分離ヘルプ起動
  335.     $f0h=hidemarudir+"\\kakimac\\k_grep00.kdf";
  336.     writeininum $f0h,"IT0","msg",##1;
  337.     execmacro "k_grep3m.mac";
  338. return;
  339.