我在XP下用VC6。0写的一个小程序,例如 遍历进程这个功能 用的是CreateToolhelp32Snapshot系列函数
XP下可以遍历所有进程但是win7下面就不行了遍历不了进程,不知道有没有什么简便的方法,可以让xp下写的程序win7照样能用??

解决方案 »

  1.   

    win7的权限要求比较高,尝试看看提权void EnableDebugPriv() 

        HANDLE hToken;
        LUID sedebugnameValue; 
        TOKEN_PRIVILEGES tkp; 
     
        if ( ! OpenProcessToken( GetCurrentProcess(),TOKEN_ALL_ACCESS, &hToken ) ) 
        {
            cout<<"提权失败。"<<endl;
            return; 
        }
     
        if ( ! LookupPrivilegeValue( NULL, SE_DEBUG_NAME, &sedebugnameValue ) ) 
        { 
            CloseHandle( hToken ); 
            cout<<"提权失败。"<<endl;
            return; 
        } 
        tkp.PrivilegeCount = 1; 
        tkp.Privileges[0].Luid = sedebugnameValue; 
        tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; 
        if ( ! AdjustTokenPrivileges( hToken, FALSE, &tkp, sizeof tkp, NULL, NULL ) ) 
        {
            cout<<"提权失败。"<<endl;
            CloseHandle( hToken );
        }
        else cout<<"提权成功!"<<endl;
    }
      

  2.   

    我一直在64的WIN7上写程序跑程序,没问题的,你搞下权限
      

  3.   

    试试指定管理员权限级别,就是加个XML manifest资源
    http://msdn.microsoft.com/en-us/library/bb756929.aspx