Advertisement
Guest User

Untitled

a guest
Jan 21st, 2016
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. #include <iostream>
  3. #include <string>
  4. #include <windows.h>
  5. #include <psapi.h>
  6. #include <tlhelp32.h>
  7. #include <string>
  8. #include <fstream>
  9. #include <vector>
  10. #include <Winternl.h>
  11. #include <map>
  12.  
  13. #pragma comment( lib, "psapi.lib" )
  14.  
  15. using namespace std;
  16.  
  17.  
  18.  
  19. class MenuItem
  20. {
  21. public:
  22.  
  23.     string name;
  24.  
  25.     bool bValue;
  26. };
  27.  
  28. class Menu
  29. {
  30. public:
  31.     void AddMenuItem( string name, bool bValue )
  32.     {
  33.         MenuItem* pItem;
  34.  
  35.         pItem = new MenuItem( );
  36.         pItem->name = name;
  37.         pItem->bValue = bValue;
  38.         items[ name ] = pItem;
  39.     }
  40.  
  41.     MenuItem* FindMenuItem( string name )
  42.     {
  43.  
  44.         try
  45.         {
  46.             auto tmp = items.at( name );
  47.             return tmp;
  48.         } catch ( ... )
  49.         {
  50.             return NULL;
  51.         }
  52.     }
  53.  
  54.     map<string, MenuItem*> items;
  55. };
  56.  
  57. Menu* pMenu;
  58.  
  59.  
  60.  
  61. long long milliseconds_now( )
  62. {
  63.     static LARGE_INTEGER s_frequency;
  64.     static BOOL s_use_qpc = QueryPerformanceFrequency( &s_frequency );
  65.     if ( s_use_qpc )
  66.     {
  67.         LARGE_INTEGER now;
  68.         QueryPerformanceCounter( &now );
  69.         return ( 1000LL * now.QuadPart ) / s_frequency.QuadPart;
  70.     } else
  71.     {
  72.         return GetTickCount( );
  73.     }
  74. }
  75.  
  76. int main( )
  77. {
  78.     MenuItem* pMenuItem;
  79.  
  80.  
  81.     pMenu = new Menu( );
  82.  
  83.     pMenu->AddMenuItem( "a", true );
  84.     pMenu->AddMenuItem( "b", false );
  85.     pMenu->AddMenuItem( "c", true );
  86.     pMenu->AddMenuItem( "d", false );
  87.     pMenu->AddMenuItem( "e", true );
  88.     pMenu->AddMenuItem( "f", false );
  89.     pMenu->AddMenuItem( "g", true );
  90.     pMenu->AddMenuItem( "h", false );
  91.     pMenu->AddMenuItem( "i", true );
  92.     pMenu->AddMenuItem( "j", false );
  93.     pMenu->AddMenuItem( "k", true );
  94.     pMenu->AddMenuItem( "l", false );
  95.     pMenu->AddMenuItem( "m", true );
  96.     pMenu->AddMenuItem( "n", false );
  97.  
  98.     bool bValue;
  99.  
  100.     long long dwTickCount;
  101.  
  102.  
  103.     while ( true )
  104.     {
  105.         dwTickCount = milliseconds_now( );
  106.  
  107.  
  108.  
  109.         for ( int i = 0; i < 10000; i++ )
  110.         {
  111.             pMenuItem = pMenu->FindMenuItem( "a" );
  112.  
  113.             if ( pMenuItem != NULL )
  114.                 bValue = pMenuItem->bValue;
  115.  
  116.  
  117.             pMenuItem = pMenu->FindMenuItem( "b" );
  118.  
  119.             if ( pMenuItem != NULL )
  120.                 bValue = pMenuItem->bValue;
  121.  
  122.  
  123.             pMenuItem = pMenu->FindMenuItem( "c" );
  124.  
  125.             if ( pMenuItem != NULL )
  126.                 bValue = pMenuItem->bValue;
  127.  
  128.  
  129.             pMenuItem = pMenu->FindMenuItem( "d" );
  130.  
  131.             if ( pMenuItem != NULL )
  132.                 bValue = pMenuItem->bValue;
  133.  
  134.  
  135.             pMenuItem = pMenu->FindMenuItem( "e" );
  136.  
  137.             if ( pMenuItem != NULL )
  138.                 bValue = pMenuItem->bValue;
  139.  
  140.  
  141.             pMenuItem = pMenu->FindMenuItem( "f" );
  142.  
  143.             if ( pMenuItem != NULL )
  144.                 bValue = pMenuItem->bValue;
  145.  
  146.  
  147.             pMenuItem = pMenu->FindMenuItem( "g" );
  148.  
  149.             if ( pMenuItem != NULL )
  150.                 bValue = pMenuItem->bValue;
  151.  
  152.  
  153.             pMenuItem = pMenu->FindMenuItem( "h" );
  154.  
  155.             if ( pMenuItem != NULL )
  156.                 bValue = pMenuItem->bValue;
  157.  
  158.  
  159.             pMenuItem = pMenu->FindMenuItem( "i" );
  160.  
  161.             if ( pMenuItem != NULL )
  162.                 bValue = pMenuItem->bValue;
  163.  
  164.  
  165.             pMenuItem = pMenu->FindMenuItem( "j" );
  166.  
  167.             if ( pMenuItem != NULL )
  168.                 bValue = pMenuItem->bValue;
  169.  
  170.  
  171.             pMenuItem = pMenu->FindMenuItem( "k" );
  172.  
  173.             if ( pMenuItem != NULL )
  174.                 bValue = pMenuItem->bValue;
  175.  
  176.  
  177.             pMenuItem = pMenu->FindMenuItem( "l" );
  178.  
  179.             if ( pMenuItem != NULL )
  180.                 bValue = pMenuItem->bValue;
  181.  
  182.  
  183.             pMenuItem = pMenu->FindMenuItem( "m" );
  184.  
  185.             if ( pMenuItem != NULL )
  186.                 bValue = pMenuItem->bValue;
  187.  
  188.  
  189.             pMenuItem = pMenu->FindMenuItem( "n" );
  190.  
  191.             if ( pMenuItem != NULL )
  192.                 bValue = pMenuItem->bValue;
  193.         }
  194.  
  195.         dwTickCount = milliseconds_now( ) - dwTickCount;
  196.  
  197.         printf( "The time is %d\n", dwTickCount );
  198.  
  199.         Sleep( 1000 );
  200.     }
  201.  
  202.  
  203.  
  204.     return 0;
  205. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement