Remote desktop

Тема в разделе "WASM.NETWORKS", создана пользователем art123, 30 апр 2019.

  1. __sheva740

    __sheva740 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2017
    Сообщения:
    310
    Спасибо большое.
    Все понял.

    Ну чего за новый проект, если не секрет?
     
  2. art123

    art123 Member

    Публикаций:
    0
    Регистрация:
    7 мар 2019
    Сообщения:
    84
    До кучи еще запись с веб камеры. Функция просто ищет камеру и записывает видео в файл. Типа болванка - кто хочет может усовершенствовать под свои нужды.
     

    Вложения:

    • video3.rar
      Размер файла:
      25,5 КБ
      Просмотров:
      367
  3. __sheva740

    __sheva740 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2017
    Сообщения:
    310
    Спасибо.
    Собрал, но камеры нет у меня под Win.
    Он тоже ведет запись 10 мин? Я не нашел где это менять.

    Ну просто кричит проект об перестройке под тип плагинного движка
    ))
     
  4. art123

    art123 Member

    Публикаций:
    0
    Регистрация:
    7 мар 2019
    Сообщения:
    84
    invoke WaitForSingleObject, hEvnt, 1000*30 ; recime время ожидания события - это время записи
     
  5. __sheva740

    __sheva740 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2017
    Сообщения:
    310
    Спасибо большое.
     
  6. art123

    art123 Member

    Публикаций:
    0
    Регистрация:
    7 мар 2019
    Сообщения:
    84
    Чисто для прикола - альтернативный метод захвата пикселей с дисплея - при помощи DurectX.
     

    Вложения:

    • video2.rar
      Размер файла:
      6,6 КБ
      Просмотров:
      368
  7. __sheva740

    __sheva740 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2017
    Сообщения:
    310
    Интересно
    video2.inc - тот же что и для mp4 был?
    D3D9.inc и D3D9.lib не скинешь?
    Собрать хочется ))

    Может DirectX даст больший fps на некоторых картах.
    Или в чем преимущество?
     
  8. art123

    art123 Member

    Публикаций:
    0
    Регистрация:
    7 мар 2019
    Сообщения:
    84
    Возможно - он работает быстрей. Вот работающий вариант уже с неперевернутым изображением.
    --- Сообщение объединено, 30 май 2019 ---
    забыл
     

    Вложения:

    • directX.rar
      Размер файла:
      32,2 КБ
      Просмотров:
      355
    • d3d9.rar
      Размер файла:
      1,1 КБ
      Просмотров:
      410
  9. __sheva740

    __sheva740 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2017
    Сообщения:
    310
    Спасибо.
    Больше оперативки жрет в 2 раза.
    Или ты сам в коде памяти больше выделил, или я ошибаюсь.
    Может уже в полном проекте можно будет выбирать OpenGL или DirectX
    хотя лично я по своим старым игрухам разницы не вижу
    Может как вариант, для разных конфигураций, значение имеет.
     
  10. art123

    art123 Member

    Публикаций:
    0
    Регистрация:
    7 мар 2019
    Сообщения:
    84
    скорее всего и-за этого - размер кадра сделал больше
    mov (CAPT_DATA ptr [ebx]).InWidh, eax
    ; shr eax, 1
    sub eax, 10
    mov (CAPT_DATA ptr [ebx]).OutWidh, eax
     
  11. __sheva740

    __sheva740 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2017
    Сообщения:
    310
    Понял.
    Спасибо еще раз.
    В копилку положу, может когда-то пригодится.
     
  12. art123

    art123 Member

    Публикаций:
    0
    Регистрация:
    7 мар 2019
    Сообщения:
    84
    Агась :) Шутка конечно, но в архиве еще вариант с захватом экрана при помощи OpenGL - прикалываться - так прикалываться :)
     

    Вложения:

  13. __sheva740

    __sheva740 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2017
    Сообщения:
    310
    Спасибо большое.
    Прикольно )))
    Вот бы еще понимать разницу.
    Получается у тебя куча "шишек" но "елки" нету, куда-бы их навесить.
    Удачная аналогия? Вот был бы движек и навешивались бы плагины.
    Причем двиг напишешь раз , потом что хочешь на него навешивай.
    ))
     
    Последнее редактирование: 30 май 2019
  14. art123

    art123 Member

    Публикаций:
    0
    Регистрация:
    7 мар 2019
    Сообщения:
    84
    Мне кажется что идея с плагинной архитектурой в этом случае не подходит. Я включу все функции в прогу и буду их из меню вызывать - не хочешь не используй - зачем плагины? Как коммерческий трюк это можно сделать, включать-выключать встроенные функции и назвать это подключением плагинов. Но, как инструмент для упрощенного расширения функциональности, тут это не применимо. И как ты себе представляешь плагин в клиент - серверной архитектуре ? Тебе нужно писать код и для сервера и для клиента - и как по твоему это должно выглядеть?
     
  15. __sheva740

    __sheva740 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2017
    Сообщения:
    310
    Ну я вижу так.

    Общая структура

    [​IMG]

    И второе - как реализовать Связку EXE и DLL ?
    Ну, например, "EXE-двиг" по очереди грузит " dll-плагины" из заданной папки.
    Dll отгрузилпсь и шлет сообщение "Двигу"
    Тут надо подумать.
    Какие еще есть рабочие варианты "Плагинных систем" ?
     

    Вложения:

    • 44441.jpg
      44441.jpg
      Размер файла:
      172,3 КБ
      Просмотров:
      761
  16. art123

    art123 Member

    Публикаций:
    0
    Регистрация:
    7 мар 2019
    Сообщения:
    84
    Мне в этой истории не нравиться то что будет много файлов у клиента и у сервера - не то что сейчас - всего два. Как всю эту хрень сделать я знаю. Тотал имеет плагинную архитектуру на .dll c калбаками - я делал для него плагин, делал плагины на СОМ для ворда и эхплорера.
     
  17. __sheva740

    __sheva740 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2017
    Сообщения:
    310
    не а чего смущаться. Например какую-то либы нужно будет покриптовать из-за паранои AV
    Взял ввел еще один плагин - он ее и покриптовал.
    Для каждого плагина ввести сертификаты связанные с Ядром, что-бы не передавали плагины бесплатно.
    Но это уже подробности.
    В конце концов все плагины можно в ресурсы серверу запихать. вот и будет тебе один файл как ты любишь
    А без плагинов - каждый раз переписывать весь код, ну не серьезно же?
    )))
     
  18. art123

    art123 Member

    Публикаций:
    0
    Регистрация:
    7 мар 2019
    Сообщения:
    84
    Разрезал сервер на плагины. Смотри и радуйся :) Но по моему гемора меньше не будет и выгоды не прибавиться в общем меня это не вдохновляет на подвиги :)
     

    Вложения:

  19. __sheva740

    __sheva740 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2017
    Сообщения:
    310
    Класс!
    Ты что всю ночь сидел?
    Ну теперь наращивай и наращивай!
    Ты смотрю как в тотал-командере сделал?

    ... это просто ты не выспался. А свежим взглядом посмотришь и поймешь насколько это user friendly теперь
    ))

    ЗЫ вот, к примеру, ситуация - твою функцию RemoteDesktop() палит AV как подозрительный
    Вопрос - что бы ты делал в варианте "моноблока"?
    А теперь же "ясный глаз" - пере собрал, или переупаковал plgDesktop.dll и вперед
    Или я не прав?
    А вдруг проект выродится вообще в поделку с другой тематикой? Плагинов подбросил и порядок.
    Так же?


    Мне кажется немного с загрузкой плагинов нужно повозиться.
    Например так. Брать из папки все dll
    Код (C):
    1. int main()
    2. {
    3.  
    4.     Load_all_plugs_inDir("*.dll");
    5.     return 0;
    6. }
    7. ///////////////////////////////////////////////////////////////
    8. int Load_all_plugs_inDir(char* dirname)
    9. {
    10.     WIN32_FIND_DATA file;
    11.     HANDLE hFind = FindFirstFile(dirname,&file);
    12.     int hasfiles = (hFind != INVALID_HANDLE_VALUE);
    13. while (hasfiles)
    14. {
    15. Load_plug(file.cFileName);
    16. hasfiles = FindNextFile(hFind, &file);
    17. }
    18.     FindClose(hFind);
    19. return 0;
    20. }
    21. ///////////////////////////////////////////////////////////////////
    22. int Load_plug(char* filename)
    23. {
    24. // is it an one of my plugs?
    25. // ...
    26.     // invoke  LoadLibrary, addr szDeskPlg
    27.     //  mov     hDeskPlg, eax
    28.     //  .if  eax != 0
    29.     //     invoke GetProcAddress,  hDeskPlg,   addr sxsetclb
    30.     //     Scall  eax, offset g_calback
    31.     //  .endif
    32.     return 0;
    33. }
     
  20. art123

    art123 Member

    Публикаций:
    0
    Регистрация:
    7 мар 2019
    Сообщения:
    84
    Как мне представляется модель с плагинами все же делается для того чтобы сторонние разработчики могли расширять функциональность. Мне кажется что, скрываться от антивирусов легче когда ты в одном файле.