最好能同时支持98和2K,如若分别实现也可以。高分相赠。
请不要用按键模拟的方式(即 先用程序模拟一个windows按键消息,然后在模拟一个U按键消息,或同时模拟两个按键同时按下也不可)。up同样有分哦,^_^谢谢。

解决方案 »

  1.   

    用shell应该可以实现,只是不只这个窗口对应的值
      

  2.   

    请问  DentistryDoctor(雅克医生<从今天起正式改行>) :如何用GINA实现?
      

  3.   

    http://www.programfan.com/showarticle.asp?id=2528
      

  4.   

    //try this code ,i have not tested it
    typedef int (CALLBACK *SHUTDOWNDLG)(int);   //显示关机对话框函数的指针
           HINSTANCE hInst = LoadLibrary("shell32.dll");  //装入shell32.dll
           SHUTDOWNDLG ShutDownDialog;  //指向shell32.dll库中显示关机对话框函数的指针
           if(hInst != NULL)
           {
                  //获得函数的地址并调用之
                  ShutDownDialog = (SHUTDOWNDLG)GetProcAddress(hInst,(LPSTR)60);
                  (*ShutDownDialog)(0);
           }
      

  5.   

    下面代码可以产生你说的效果:#include "stdafx.h"
    #include "WINDOWS.H"typedef LONG (WINAPI *PFNSHSHUTDOWNDIALOG)(long l);int main(int argc, char* argv[])
    {
    BOOL bLoad = FALSE;
    HMODULE hShell32 ;
    hShell32 = GetModuleHandle("shell32.dll");
    if(!hShell32)
    {
    hShell32 = LoadLibrary("shell32.dll");
    if(hShell32)
    {
    bLoad = TRUE;
    }
    }
    if(hShell32)
    {
    PFNSHSHUTDOWNDIALOG pFn = (PFNSHSHUTDOWNDIALOG)GetProcAddress(hShell32 , MAKEINTRESOURCE(60));

    if(pFn)
    {
    pFn(0);
    }
    }
    if(bLoad)
    {
    FreeLibrary(hShell32);
    } return 0;
    }
      

  6.   

    同意topwork(日光)和kingzai() 
    就是调用系统DLL中的函数就可以了
      

  7.   

    原因是 不能提前释放hShell32,所以要去掉FreeLibrary(hShell32); 这一句,在2000里测试操作系统会提示详细的诊断信息
      

  8.   

    其实自己做一个这样的对话筐也不错啊
     ExitWindowsEx函数用不同的参数就可以重起、关机或者注销