Скрыть установку программы (чужой)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by ZirroCool, 30 Jun 2008.

  1. _empty

    _empty Elder - Старейшина

    Joined:
    22 Mar 2008
    Messages:
    62
    Likes Received:
    17
    Reputations:
    5
    Если ты хочешь запускать программу в скрытом режиме делай так - WinExec("app_Path+name",SW_HIDE); После этого
    PHP:
    MoveWindow(hWndHWNDX(int), Y(int), nWidth(int), nHeight(int), bRepaintBOOL)
    где X и Y - новые координаты окна, hWnd - описатель, nWidth и nHeight - новые ширина и высота соответсвенно и bRepaint - перерисовывать окно или нет

    P.S. Забыл сказать, насчет окон, есть такая хорошая бесплатная программа Restorator , которая может из файла вырезать ресурсы, так вот, я рекомендую вырезать всякие заставки и все такое, или отредактировать их так, что они будут не видны, тогда никаких проблем с внезапным выскакивающим окошком не будет.
     
    #21 _empty, 1 Jul 2008
    Last edited: 1 Jul 2008
    1 person likes this.
  2. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,023
    Likes Received:
    1,297
    Reputations:
    327
    Кез передает
    Юзайте пожалуйста CreateDesktop, SetThreadDesktop и CloseDesktop
    Ждал, пока в этом топике появится хотя бы 1 здравомыслящий человек, но походу это будет продолжаться бесконечно.
    Всем привет!
    23:57:22: и после всем привет -
    Как дела, пацаны?
     
  3. ZirroCool

    ZirroCool Elder - Старейшина

    Joined:
    16 Sep 2006
    Messages:
    128
    Likes Received:
    55
    Reputations:
    20
    А чез Restorator можно в диалоговом окне сделать так чтобы какой нить чекбокс был отмечен? и как это сделать я чет не понял!
     
  4. _empty

    _empty Elder - Старейшина

    Joined:
    22 Mar 2008
    Messages:
    62
    Likes Received:
    17
    Reputations:
    5
    К сожаленью не получиццо, можно только удалять и добавлять ресурсы, чекбокс не отмечен, хотя мб есть еще какие-нибудь програмы, погугли
     
  5. SlyBit

    SlyBit Elder - Старейшина

    Joined:
    4 Jul 2008
    Messages:
    49
    Likes Received:
    8
    Reputations:
    0
    #25 SlyBit, 4 Jul 2008
    Last edited: 5 Jul 2008
  6. ZirroCool

    ZirroCool Elder - Старейшина

    Joined:
    16 Sep 2006
    Messages:
    128
    Likes Received:
    55
    Reputations:
    20
    SlyBit, вроде эта прога такая же как и ресторатор в ней я тож не нашел способа отметить чек бокс! Может обьяснишь?
     
  7. SlyBit

    SlyBit Elder - Старейшина

    Joined:
    4 Jul 2008
    Messages:
    49
    Likes Received:
    8
    Reputations:
    0
    ZirroCool
    Сорри, перепутал, отметить чекбокс через редактор ресурсов нельзя (по крайней мере для программ, скомпилированных борладским компилятором), можно только снять метку с него.
    Я так понял, ты через апи имитируешь нажатия кнопок пользователем, шли тогда сообщение чекбоксу SendMessage(hCheckbox, BM_SETCHECK, 1, 0).

    sn0w
    Менять рабочие столы можно только для своего процесса.
     
  8. ZirroCool

    ZirroCool Elder - Старейшина

    Joined:
    16 Sep 2006
    Messages:
    128
    Likes Received:
    55
    Reputations:
    20
    в той проге эта хрень не работает SendMessage(hCheckbox, BM_SETCHECK, 1, 0), скорее всему потому что чек бокс в диалоге, так что я хз как сделать по этому и спрашиваю какие могут быть вообще варианты?
     
  9. _empty

    _empty Elder - Старейшина

    Joined:
    22 Mar 2008
    Messages:
    62
    Likes Received:
    17
    Reputations:
    5
    Можно попробовать нажать мышью на CheckBox -
    Выставляешь допустим позицию окна заданую запускалось чтобы там, для удобства 0,0 например.
    отмеряешь, сколько примерно до чекбокса пикселей по x и y, а дальше уже имитируешь нажатие мыши в заданном месте, должен нажаться чекбокс.
     
  10. SlyBit

    SlyBit Elder - Старейшина

    Joined:
    4 Jul 2008
    Messages:
    49
    Likes Received:
    8
    Reputations:
    0
    ZirroCool

    Тебе нужно получить хэдл окна чекбокса, для этого перебираешь все дочерние окна главной формы функцией EnumChildWindows(hMain, EnumChildProc, 0);.
    hMain - хэдл окна главной формы, его получаешь функией FindWindow(0, "FormTitle").
    EnumChildProc - функция перебора дочерних окон. Возвращает 1 для продолжения перебора окон, 0 для прекращения. Первый параметр - хэдл очередного дочернего окна.

    Code:
    BOOL CALLBACK EnumChildProc(HWND hwnd , LPARAM lParam)  
    {      
        char szWindowText[255];           
        
        // Получаем заголовок окна             
        GetWindowText(hwnd, szWindowText, 255);
      
        // Сравниваем с нашим, если нашли, то ставим галочку и останавливаем перебор
        if(!lstrcmp(szWindowText, "CheckBox1")) {     
            SendMessage(hwnd, BM_SETCHECK, 1, 0); 
            return 0;      
        }         
        return 1;  
    } 
      
    BOOL WINAPI ProcessControl()  
    {     
        HWND hMain;            
    
        if(!(hMain = FindWindow(0, "FormTitle"))) {
            return 0;      
        }       
      
        EnumChildWindows(hMain, EnumChildProc, 0);             
        return 1;  
    }
    Таким образом можно искать любое окно на форме.
     
    #30 SlyBit, 5 Jul 2008
    Last edited: 6 Jul 2008
  11. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,023
    Likes Received:
    1,297
    Reputations:
    327

    есть такое поле lpDesktop в STARTUPINFO ...
     
  12. SlyBit

    SlyBit Elder - Старейшина

    Joined:
    4 Jul 2008
    Messages:
    49
    Likes Received:
    8
    Reputations:
    0
    sn0w

    Твоя правда, раньше не обращал внимания. Хотя опять же, смысл создавать рабочий стол, если можно просто полю wShowWindow присвоить значение SW_HIDE.
     
  13. Delimiter

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    ... блин , а заюзать какое нидь имя типа _K_E_Z_ ??
     
Loading...
Similar Threads - Скрыть установку программы
  1. Peja
    Replies:
    0
    Views:
    2,538