C++ UAC nachprogrammieren?



  • Hallo Zusammen, Ich suche Beispiele wie man die Windows UAC nachprogrammieren kann?
    Gerne auch mit Sound!



  • Ich habe jetzt nicht aktive gesucht, aber bei so was komplexem kann ich mir nicht vorstellen, dass es komplette Beispiele online irgendwo gibt. Wie wäre es mit: Einfach mal anfangen und gucken, wie weit du kommst?

    Oder: Microsoft hat ja Github gekauft und da wohl auch einiges selbst hochgeladen, vlt findest du da was entsprechendes.



  • Soll ja nur ein Programm öffnen wenn man zustimmt, und wenn man nicht zustimmt keins 😉



  • @Kassem sagte in C++ UAC nachprogrammieren?:

    Soll ja nur ein Programm öffnen wenn man zustimmt, und wenn man nicht zustimmt keins 😉

    Und das Passwort abgreifen



  • Äh es soll nicht das Passwort abgreifen!



  • @Kassem Nicht?

    Aber warum soll dann danach gefragt werden?
    UAC gibt es in verschiedenen Stufen.



  • Es soll nur angedeutet werden!
    Es hat nur eine Funktion "Ein Programm öffnen wen ich ja drücke";
    Ich finde die UAC einfach cool



  • if (MessageBox(nullptr, "Run application?", "Run?", MB_YESNO) == IDYES) {
        // ...
    }
    

    ^^



  • ... und ich habe tatsächlich an eine "User Account Control" gedacht... hauptsache "OS Entwickler" in der Signatur stehen haben.



  • lol



  • Ok habe es gerade selber geschafft kann mir nur wer sagen wie man Bilder in die GUI einfügt?

    #include <windows.h>
    #include <iostream>
    #define YES_BUT 100
    #define NO_BUT 99
    
    LRESULT CALLBACK WindowFunc(HWND hWnd,UINT Message,WPARAM wParam,LPARAM lParam){
        switch(Message) {
            case WM_CREATE:
                CreateWindow("button", 
                    "Ja", WS_VISIBLE | WS_CHILD, 
                    20, 252, 200, 30, hWnd, (HMENU) YES_BUT, 
                    NULL, NULL
                );
                 
               
                CreateWindow("button", 
                    "Nein", WS_VISIBLE | WS_CHILD, 
                  230, 252, 200, 30, hWnd, (HMENU) NO_BUT, 
                    NULL, NULL
                );
                 break;
    
         case WM_COMMAND: {
        if ( LOWORD( wParam ) == YES_BUT ) {
           system("start //");
           exit(0);
        }else if ( LOWORD( wParam ) == NO_BUT ) {
           
           exit(0);
        }
        
        break;
    }
            case WM_PAINT: {
                    PAINTSTRUCT ps;
                    BeginPaint(hWnd, &ps);
                    EndPaint(hWnd, &ps);
                }
                break;
            case WM_DESTROY:
                PostQuitMessage(0);
                break;
    
      
                
            default:
                return DefWindowProc(hWnd, Message, wParam, lParam);
        }
        return 0;
    }
    
    int WINAPI WinMain(HINSTANCE hThisInst, HINSTANCE hPrevInst, LPSTR Args, int WinMode){
     WNDCLASSEX WinClass = { 0 };
     WinClass.cbSize        = sizeof(WNDCLASSEX);
     WinClass.hInstance     = hThisInst;
     WinClass.lpszClassName = "BUTEXP";
     WinClass.lpfnWndProc   = WindowFunc;
     WinClass.style         = 0;
     WinClass.hIcon         = LoadIcon(NULL, IDI_APPLICATION);
     WinClass.hIconSm       = LoadIcon(NULL, IDI_WINLOGO);
    
     
    
     WinClass.hCursor       = LoadCursor(NULL, IDC_ARROW);
     WinClass.lpszMenuName  = NULL;
     WinClass.cbClsExtra    = 0;
     WinClass.cbWndExtra    = 0;
    
     if (!RegisterClassEx(&WinClass)) {
                MessageBox(NULL, "Cannot register class", "Windows error", MB_OK);
                return 1;
     }
    
     HWND hWnd = CreateWindow(
                    "BUTEXP", "Boot von DISK A:/", 
                    WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 
                    CW_USEDEFAULT, 473, 351, NULL, 
                    NULL, hThisInst, NULL
            );
    
     if (!(hWnd)) {
                MessageBox(NULL, "Cannot create window", "Windows error", MB_OK);
                return 2;
     }
    
     ShowWindow(hWnd, WinMode);
     UpdateWindow(hWnd);
     MSG Message;
    
     while (GetMessage(&Message, NULL, 0, 0) > 0){
                TranslateMessage(&Message);
                DispatchMessage(&Message);
     }
     return Message.wParam;
    }
    
    

    Das ist der CODE



  • @Kassem und wie man das vergrößern und minimieren wegbekommt




Anmelden zum Antworten