• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            elva

            “刷新” 功能代碼

            // Refresh.cpp : Defines the entry point for the application.
            //

            #include "stdafx.h"
            #include <windows.h>

            typedef char str64[64];
            typedef char str256[256];
            typedef char str1024[1024];

            #define HKCU   HKEY_CURRENT_USER

            BOOL SetString(HKEY hkeymom, str256 pkeyname, str64 pvalname, str1024 pvaldata)
            {  HKEY hkey = 0;
               if(RegCreateKeyEx(hkeymom, pkeyname, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL,
                  &hkey, NULL) != ERROR_SUCCESS)
                  return FALSE;
               LONG rtn = RegSetValueEx(hkey, pvalname, 0, REG_SZ, (BYTE*)pvaldata, lstrlen(pvaldata));
               RegCloseKey(hkey);
               if(rtn == ERROR_SUCCESS) 
                  return TRUE;
               return FALSE;
            }

            BOOL ReadString(HKEY hkeymom, str256 pkeyname, str64 pvalname, str1024 pvaldata)
            {  HKEY hkey = 0;
               DWORD dw;
               if(RegOpenKeyEx(hkeymom, pkeyname, 0, KEY_READ, &hkey) != ERROR_SUCCESS)
               {  strcpy(pvaldata, "");
                  return FALSE;
               }
               LONG rtn = RegQueryValueEx(hkey, pvalname, NULL, &dw, NULL, NULL);
               if((rtn != ERROR_SUCCESS) || (dw != REG_SZ))
               {  RegCloseKey(hkey);  
                  strcpy(pvaldata, "");
                  return FALSE; 
               }
               dw = 1024;
               RegQueryValueEx(hkey, pvalname, NULL, NULL, (BYTE*)pvaldata, &dw);
               RegCloseKey(hkey);
               return TRUE;
            }

            int myexp (int y)
            {  int ii = 1;
               for (int cnt = 0; cnt < y; cnt++)
                  ii *= 10;
               return ii; 
            }

            BOOL StringToInt(str1024 sz, int* ires)
            {  //temp string
               str1024 szi = "";
               //copy character that represent number or negative sign only to temp string
               for(unsigned int cnt = 0; cnt < strlen(sz); cnt++)
               {  //if not 0 to 9 or negative sign then break
                  if((sz[cnt] != 45) && (sz[cnt] != 48) && (sz[cnt] != 49) & (sz[cnt] != 50) &&
                     (sz[cnt] != 51) && (sz[cnt] != 52) && (sz[cnt] != 53) && (sz[cnt] != 54) &&
                     (sz[cnt] != 55) && (sz[cnt] != 56) && (sz[cnt] != 57))
                     break;         
                  //if negative sign but not in first letter then break
                  if((sz[cnt] == 45) && (cnt != 0))
                     break;
                  //add to temp string
                  switch(sz[cnt])
                  {  case 45: strcat(szi, "-"); break;
              case 48: strcat(szi, "0"); break;
                     case 49: strcat(szi, "1"); break;
              case 50: strcat(szi, "2"); break;
              case 51: strcat(szi, "3"); break;
              case 52: strcat(szi, "4"); break;
              case 53: strcat(szi, "5"); break;
              case 54: strcat(szi, "6"); break;
              case 55: strcat(szi, "7"); break;
              case 56: strcat(szi, "8"); break;
              case 57: strcat(szi, "9"); break;
                  }
               }
               //if length of temp string = 0 then return FALSE    
               if(!strlen(szi)) 
               {  *ires = 0; 
                  return FALSE;
               }
               //if length of temp string = 1 but only negative sign in it, return FALSE
               else if((strlen(szi) == 1) && !strcmp(szi, "-")) 
               {  *ires = 0; 
                  return FALSE;
               }
               //flag for negative or positive number
               BOOL flag = FALSE;
               //if there is negative sign in temp string then flag = TRUE
               if(strchr(szi, '-')) flag = TRUE; 
               int ii = 0;
               strrev(szi);
               //convert temp string to number
               for(unsigned int cnt1 = 0; cnt1 < strlen(szi); cnt1++)
               {   switch(szi[cnt1])
                   {   case 48: ii += 0 * myexp(cnt1);  break; 
                case 49: ii += 1 * myexp(cnt1);  break; 
                case 50: ii += 2 * myexp(cnt1);  break; 
                case 51: ii += 3 * myexp(cnt1);  break; 
                case 52: ii += 4 * myexp(cnt1);  break; 
                case 53: ii += 5 * myexp(cnt1);  break; 
                case 54: ii += 6 * myexp(cnt1);  break; 
                case 55: ii += 7 * myexp(cnt1);  break; 
                case 56: ii += 8 * myexp(cnt1);  break; 
                case 57: ii += 9 * myexp(cnt1);  break; 
                   }
               }
               //if flag and number > 0 then negative the number
               if((ii > 0) && flag) ii /= -1;
               *ires = ii;
               return TRUE;
            }

            void F5Desk()
            {  str1024 szres = "";
               //read current icon size, usually 32 (in Windows? XP)
               ReadString(HKCU, "Control Panel\\Desktop\\WindowMetrics", "Shell Icon Size", szres);
               int ii = 0;
               //translate to number
               StringToInt(szres, &ii);
               //increase it by 1
               ii++;
               //convert back to string
               wsprintf(szres, "%i", ii);
               //now, change the icon size
               SetString(HKCU, "Control Panel\\Desktop\\WindowMetrics", "Shell Icon Size", szres);
               //find taskbar and make it can't redraw
               HWND hwndtask = FindWindow("Shell_traywnd", "");
               SendMessage(hwndtask, WM_SETREDRAW, FALSE, 0);
               //broadcast the icon size change, so the desktop will be refreshed
               SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, SPI_SETNONCLIENTMETRICS, 0,
                  SMTO_ABORTIFHUNG, 100000, NULL);
               //make the icon size go back to original number
               ii--;
               wsprintf(szres, "%i", ii);
               SetString(HKCU, "Control Panel\\Desktop\\WindowMetrics", "Shell Icon Size", szres);
               SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, SPI_SETNONCLIENTMETRICS, 0,
                  SMTO_ABORTIFHUNG, 100000, NULL);
               //make taskbar can redraw again
               SendMessage(hwndtask, WM_SETREDRAW, TRUE, 0);
            }

            int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine,
               int nCmdShow)
            {  F5Desk();
               return 0; 
            }

             

             

            posted on 2007-06-19 16:27 葉子 閱讀(415) 評論(0)  編輯 收藏 引用 所屬分類: C\C++

            精品久久香蕉国产线看观看亚洲| 久久精品亚洲男人的天堂| 久久婷婷国产剧情内射白浆| 久久久久久久久久久久久久 | 久久久青草青青国产亚洲免观| 久久人人爽人爽人人爽av| 久久精品国产亚洲AV影院| 久久国产精品-国产精品| 久久伊人五月天论坛| 久久人人爽人人爽人人片av高请| 国产精品久久久99| 久久亚洲中文字幕精品有坂深雪 | 久久精品无码一区二区无码 | 欧美久久综合九色综合| 久久永久免费人妻精品下载| 国产精品亚洲美女久久久| 久久久www免费人成精品| 国产精品欧美久久久久无广告| 亚洲中文久久精品无码ww16| 国产高潮久久免费观看| 久久国产精品77777| 亚洲精品无码久久久久sm| 狠狠综合久久综合中文88 | 久久综合综合久久97色| 99久久国产亚洲综合精品| 久久久久久久久久免免费精品 | 久久久精品国产免大香伊| 国产成人久久久精品二区三区| 久久er国产精品免费观看2| 久久久久久久综合狠狠综合| 久久综合九色综合久99| 国产亚洲精午夜久久久久久 | 亚洲国产精品久久久天堂| 日日狠狠久久偷偷色综合96蜜桃| 99久久人人爽亚洲精品美女| 国产精品99久久免费观看| 亚洲精品国产美女久久久| 国产美女亚洲精品久久久综合| 一本色道久久综合狠狠躁| 久久人妻少妇嫩草AV蜜桃| 久久伊人五月丁香狠狠色|