home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1998 January (DVD) / VPR980100.ISO / OLS / WIN32 / KAKIMAC / KAKIMACJ.LZH / K_CHPOP.MAC < prev    next >
Text File  |  1995-09-03  |  3KB  |  111 lines

  1. // k_chpop.mac //クリップボード履歴を保存
  2. // 平成7年09月03日(日曜日) 午前01時36分38秒
  3. // by 水銀水(Suigwinsui)/小田明夫(HGD01603)
  4.  
  5. // k_CHist メインマクロ(Clipboard CHISTry)
  6. //   従属マクロ(k_CHpop.mac,k_CHpush.mac)
  7. // 
  8. // 前提として、常駐秀丸の存在、クリップボード履歴の既使用。
  9.  
  10. getcliphist #i;
  11. if(!result){
  12. message "●報告...保存すべきクリップボード履歴が取得できません。\n"+
  13.     "●理由...下記の3つが考えられます。\n  (1)クリップボード履歴の「全消去」をおこなった\n  (2)常駐秀丸がない\n  (3)動作環境で「クリップボード履歴を取る」がOFFになっている\n"+
  14.     "●対策...それぞれの原因への対応策です。\n  (1)コピーか切り抜きの後にk_Chistを実行します\n  (2)秀丸を常駐させます\n  (3)「クリップボード履歴を取る」をONにするには、「その他(O)-動作環境(E)-編集(E)-クリップボード履歴を取る(H)」をチェックします。なお、バッファは大きな方が履歴を長くとれます、一応(^^;";
  15. endmacroall;
  16. }
  17. $sBuffer=searchbuffer;#sFlug=searchoption;
  18. #hwndOrg=hidemaruhandle(0);
  19. $f0=hidemarudir+"\\kakimac\\k_CHst00.kdf";
  20. if(filename!=""){// ファイル名がつけられている場合
  21.     if(findhidemaru($f0)<0){
  22.         openfile " /(1800,1800,100,100) "+$f0;
  23.     }else{
  24.         setactivehidemaru findhidemaru($f0);
  25.         showwindow 0;
  26.     }
  27. }else{// 無題秀丸の場合は、無題を(ダミー)に換えて、終了時に無題に戻す
  28.     changename "k_CHist.tmp";
  29.     #changeFileName=1;
  30.     if(findhidemaru($f0)<0){
  31.         openfile " /(1800,1800,100,100) "+$f0;
  32.     }else{
  33.         setactivehidemaru findhidemaru($f0);
  34.         showwindow 0;
  35.     }
  36. }
  37. gofiletop;
  38. if(code!=eof){
  39.     selectall;
  40.     delete;
  41. }
  42. #hwndTmp=hidemaruhandle(0);
  43. while(1){
  44.     getcliphist #i;
  45.     if(!result){
  46.         call endOpe;
  47.         break;
  48.     }
  49.         call popClip #i;
  50.     #i=#i+1;
  51. }
  52. call reSort;
  53. setactivehidemaru #hwndOrg;
  54. closehidemaruforced #hwndTmp;
  55. title "● 現在のクリップボード履歴を保存しました(^^)";
  56. if(#changeFileName){
  57.     #hwndNow=hidemaruhandle(0);
  58.     if(#hwndOrg!=#hwndNow)setactivehidemaru #hwndOrg;
  59.     changename "";
  60.     insertfix "a";// (無題)(変更)の表示の(変更)を消すための操作(^^;ゞ
  61.     undo;
  62.     if(#hwndOrg!=#hwndNow)setactivehidemaru #hwndNow;
  63. }
  64. setsearch $sBuffer,#sFlug;
  65.  
  66. while(1){
  67.     ##k=##k+1;
  68.     if(##k>1000)break;
  69. }
  70. title 1;
  71. endmacroall;
  72.  
  73. reSort://getcliphistをやると、履歴の順番が反転する。これを再度、全て反転させて元に戻す。
  74. while(1){
  75.     getcliphist ##i;
  76.     if(!result){
  77.         break;
  78.     }
  79.     ##i=##i+1;
  80. }
  81. return;
  82.  
  83.  
  84. endOpe:
  85. setactivehidemaru #hwndTmp;
  86. gofiletop;
  87. deleteline;
  88. if(code!=eof)save;
  89. else #noExist=1;
  90. setactivehidemaru #hwndOrg;
  91. if(#noExist){
  92.     insertreturn;
  93.     save;
  94. }
  95. return;
  96.  
  97. popClip://クリップボード履歴の内容を取り出し、保存する
  98. gofiletop;
  99. insert "%@##k_cHist##@%";
  100. call InsertReturn;
  101. paste;
  102. return;
  103.  
  104. InsertReturn:
  105. if( overwrite ) {
  106.     overwriteswitch; insertreturn; overwriteswitch;
  107. } else {
  108.     insertreturn;
  109. }
  110. return;
  111.