Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удаленный доступ... к рабочему столу, видеале запуск проги 
:(
    Опции темы
Aline
Дата 2.12.2008, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 470
Регистрация: 22.7.2005
Где: Таруса

Репутация: нет
Всего: нет



Привет всем!

Задача стоит в том что бы программно реализовать удаленный доступ к рабочему столу компа или в идеале с него запустить программу. Пробовала использовать WinExec(net use ...) , но видимо что то неправильно делаю. Открывается черное окно DOS и через некоторое время закрывается.

Видела на форуме совет использовать WMI, но как? Есть у кого то примерчик? Я с этим не работала...
И ещё, надо ли какие то настройки делать на компе? Службы RPC и COM+ включены

Это сообщение отредактировал(а) Aline - 2.12.2008, 11:25
PM MAIL   Вверх
Dmi3ev
Дата 2.12.2008, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 16
Всего: 41





--------------------

PM MAIL   Вверх
Aline
Дата 2.12.2008, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 470
Регистрация: 22.7.2005
Где: Таруса

Репутация: нет
Всего: нет



Dmi3ev, мне кажется это немного не то, что мне надо. Мне нужно чтобы я у себя на экране видела загруженную программу и что то делала в ней. 
Всё таки смотреть в сторону WMI.

Но сейчас меня больше волнуют настройки. Потому что пробовала примерчик, и возникает ошибка, что RPC сервис недоступен (ошибка 0x800706BA). Хотя и у меня и на том компе службы запущены. А вот что ещё надо?
PM MAIL   Вверх
mrbrooks
Дата 2.12.2008, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Aline, как вариант заюзать telnet
PM MAIL   Вверх
Aline
Дата 3.12.2008, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 470
Регистрация: 22.7.2005
Где: Таруса

Репутация: нет
Всего: нет



У меня появилась другая идея, только теперь не знаю как её реализовать smile

Допустим из программы я вызываю виндусвскую программу "Подключение к удаленному рабочему столу" в невидимом окне, но как туда передать параметры и организовать нажатие на кнопку "Подключить"?
PM MAIL   Вверх
jonie
Дата 3.12.2008, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 7
Всего: 118



эта программа "имеет" вполне определенный COM wrapper, через который можно работать.


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Aline
Дата 3.12.2008, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 470
Регистрация: 22.7.2005
Где: Таруса

Репутация: нет
Всего: нет



jonie, что такое COM wrapper - не знаю... Но уменя получилось её запустить и по крайней мере нажать на кнопку Подключить
PM MAIL   Вверх
nezabor
Дата 3.12.2008, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесной житель...
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 17.4.2008
Где: Москва

Репутация: нет
Всего: нет



а так, чтобы радмина или ещё чего заюзать?
--------------------
Бесплатно о сайтах
PM MAIL WWW Skype   Вверх
Aline
Дата 3.12.2008, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 470
Регистрация: 22.7.2005
Где: Таруса

Репутация: нет
Всего: нет



nezabor, вообщем вы решили поиздеваться? smile

я таких то и слов не знаю ...
PM MAIL   Вверх
mrbrooks
Дата 3.12.2008, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Aline, RAdmin очень кошерная вещь - правда софтина платная
PM MAIL   Вверх
nezabor
Дата 3.12.2008, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесной житель...
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 17.4.2008
Где: Москва

Репутация: нет
Всего: нет



есть по типу бесплатная http://www.ammyy.com/ru/ ломится безо всяких настроек обалденно проходит все аппаратные защиты
обалденная вещь но на той стороне нужен чел для ответа
а радмин можно ломаный поставить сервер v 2.2 а вивер и новый подойдет если нужен радмин пришлю,.. пиши в личку

Это сообщение отредактировал(а) nezabor - 3.12.2008, 13:11
--------------------
Бесплатно о сайтах
PM MAIL WWW Skype   Вверх
Aline
Дата 3.12.2008, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 470
Регистрация: 22.7.2005
Где: Таруса

Репутация: нет
Всего: нет



Что то у меня подозрение такое, что либо вы не понимаете о чем прошу, либо я не понимаю ваших советов smile. Мне кажется то, что вы предлагаете не совсем то, как то проще всё должно быть....
Я это пробовала на C# сделать, там для этого класс специальный есть, но там вываливаются ошибки типа RPC сервис недотупен или отказано в доступе. Неужели в Билдере ничего подобного нет?
PM MAIL   Вверх
Alca
Дата 3.12.2008, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 25
Всего: 50



Create a Process on a Remote Computer (WMI, vbscript)

Description
Starts Notepad.exe on a remote computer. On Windows XP and Windows Server 2003, Notepad will run in a hidden window.
 
Supported Platforms:
Windows Server 2003 Yes
Windows XP Yes
Windows 2000 Yes
Windows NT 4.0 Yes
Windows 98 Yes

Script Code 
Код

strComputer = "webserver"
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2:Win32_Process")
Error = objWMIService.Create("notepad.exe", null, null, intProcessID)
If Error = 0 Then
    Wscript.Echo "Notepad was started with a process ID of " & intProcessID & "."
Else
    Wscript.Echo "Notepad could not be started due to error " & Error & "."
End If

For online peer support, join the microsoft.public.windows.server.scripting community on the msnews.microsoft.com news server. To provide feedback or report bugs in sample scripts or the Scripting Guide, please contact Microsoft TechNet.

Disclaimer 
This sample script is not supported under any Microsoft standard support program or service. The sample script is provided AS IS without warranty of any kind. Microsoft further disclaims all implied warranties including, without limitation, any implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample scripts and documentation remains with you. In no event shall Microsoft, its authors, or anyone else involved in the creation, production, or delivery of the scripts be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample scripts or documentation, even if Microsoft has been advised of the possibility of such damages. 

Это сообщение отредактировал(а) Alca - 3.12.2008, 15:46


--------------------
PM WWW ICQ Skype Jabber   Вверх
Aline
Дата 3.12.2008, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 470
Регистрация: 22.7.2005
Где: Таруса

Репутация: нет
Всего: нет



Alca, и чего мне с этим делать? Это же Java.... Я видела этот пример
PM MAIL   Вверх
Alca
Дата 3.12.2008, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 25
Всего: 50





--------------------
PM WWW ICQ Skype Jabber   Вверх
Aline
Дата 3.12.2008, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 470
Регистрация: 22.7.2005
Где: Таруса

Репутация: нет
Всего: нет



Alca, спасибо, гляну
PM MAIL   Вверх
Alca
Дата 3.12.2008, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 25
Всего: 50



Win32_Process::Create
Код

//The following code example creates an IWbemClassObject pointer, spawns a new instance of the Win32_Process::Create in-parameter 
//definitions, and then sets the value of the CommandLine in-parameter to Notepad.exe.


      // Set up to call the Win32_Process::Create method
      BSTR MethodName = SysAllocString(L"Create");
      BSTR ClassName = SysAllocString(L"Win32_Process");

      IWbemClassObject* pClass = NULL;
      hres = pSvc->GetObject(ClassName, 0, NULL, &pClass, NULL);

      IWbemClassObject* pInParamsDefinition = NULL;
      hres = pClass->GetMethod(MethodName, 0, 
          &pInParamsDefinition, NULL);

      IWbemClassObject* pClassInstance = NULL;
      hres = pInParamsDefinition->SpawnInstance(0, &pClassInstance);

      // Create the values for the in-parameters
      VARIANT varCommand;
      varCommand.vt = VT_BSTR;
      varCommand.bstrVal = L"notepad.exe";

      // Store the value for the in-parameters
      hres = pClassInstance->Put(L"CommandLine", 0,
          &varCommand, 0);
      wprintf(L"The command is: %s\n", V_BSTR(&varCommand));

//The following code example shows how the Win32_Process::Create method out-parameters are given to an IWbemClassObject pointer. 
//The out-parameter value is obtained with the IWbemClassObject::Get method and stored in a VARIANT variable so that it can be displayed to the user.

      // Execute Method
      IWbemClassObject* pOutParams = NULL;
      hres = pSvc->ExecMethod(ClassName, MethodName, 0,
          NULL, pClassInstance, &pOutParams, NULL);

      VARIANT varReturnValue;
      hres = pOutParams->Get(_bstr_t(L"ReturnValue"), 0, 
          &varReturnValue, NULL, 0);

//The following code example shows how to call a provider method using WMI.


#define _WIN32_DCOM

#include <iostream>
using namespace std;
#include <comdef.h>
#include <Wbemidl.h>

# pragma comment(lib, "wbemuuid.lib")

int main(int iArgCnt, char ** argv)
{
    HRESULT hres;

    // Step 1: --------------------------------------------------
    // Initialize COM. ------------------------------------------

    hres =  CoInitializeEx(0, COINIT_MULTITHREADED); 
    if (FAILED(hres))
    {
        cout << "Failed to initialize COM library. Error code = 0x" 
             << hex << hres << endl;
        return 1;                  // Program has failed.
    }

    // Step 2: --------------------------------------------------
    // Set general COM security levels --------------------------
    // Note: If you are using Windows 2000, you must specify -
    // the default authentication credentials for a user by using
    // a SOLE_AUTHENTICATION_LIST structure in the pAuthList ----
    // parameter of CoInitializeSecurity ------------------------

    hres =  CoInitializeSecurity(
        NULL, 
        -1,                          // COM negotiates service
        NULL,                        // Authentication services
        NULL,                        // Reserved
        RPC_C_AUTHN_LEVEL_DEFAULT,   // Default authentication 
        RPC_C_IMP_LEVEL_IMPERSONATE, // Default Impersonation  
        NULL,                        // Authentication info
        EOAC_NONE,                   // Additional capabilities 
        NULL                         // Reserved
        );

                      
    if (FAILED(hres))
    {
        cout << "Failed to initialize security. Error code = 0x" 
             << hex << hres << endl;
        CoUninitialize();
        return 1;                      // Program has failed.
    }
    
    // Step 3: ---------------------------------------------------
    // Obtain the initial locator to WMI -------------------------

    IWbemLocator *pLoc = NULL;

    hres = CoCreateInstance(
        CLSID_WbemLocator,             
        0, 
        CLSCTX_INPROC_SERVER, 
        IID_IWbemLocator, (LPVOID *) &pLoc);
 
    if (FAILED(hres))
    {
        cout << "Failed to create IWbemLocator object. "
             << "Err code = 0x"
             << hex << hres << endl;
        CoUninitialize();
        return 1;                 // Program has failed.
    }

    // Step 4: ---------------------------------------------------
    // Connect to WMI through the IWbemLocator::ConnectServer method

    IWbemServices *pSvc = NULL;
    
    // Connect to the local root\cimv2 namespace
    // and obtain pointer pSvc to make IWbemServices calls.
    hres = pLoc->ConnectServer(
        _bstr_t(L"ROOT\\CIMV2"), 
        NULL,
        NULL, 
        0, 
        NULL, 
        0, 
        0, 
        &pSvc
    );
        
    if (FAILED(hres))
    {
        cout << "Could not connect. Error code = 0x" 
             << hex << hres << endl;
        pLoc->Release();     
        CoUninitialize();
        return 1;                // Program has failed.
    }

    cout << "Connected to ROOT\\CIMV2 WMI namespace" << endl;


    // Step 5: --------------------------------------------------
    // Set security levels for the proxy ------------------------

    hres = CoSetProxyBlanket(
        pSvc,                        // Indicates the proxy to set
        RPC_C_AUTHN_WINNT,           // RPC_C_AUTHN_xxx 
        RPC_C_AUTHZ_NONE,            // RPC_C_AUTHZ_xxx 
        NULL,                        // Server principal name 
        RPC_C_AUTHN_LEVEL_CALL,      // RPC_C_AUTHN_LEVEL_xxx 
        RPC_C_IMP_LEVEL_IMPERSONATE, // RPC_C_IMP_LEVEL_xxx
        NULL,                        // client identity
        EOAC_NONE                    // proxy capabilities 
    );

    if (FAILED(hres))
    {
        cout << "Could not set proxy blanket. Error code = 0x" 
             << hex << hres << endl;
        pSvc->Release();
        pLoc->Release();     
        CoUninitialize();
        return 1;               // Program has failed.
    }

    // Step 6: --------------------------------------------------
    // Use the IWbemServices pointer to make requests of WMI ----

    // set up to call the Win32_Process::Create method
    BSTR MethodName = SysAllocString(L"Create");
    BSTR ClassName = SysAllocString(L"Win32_Process");

    IWbemClassObject* pClass = NULL;
    hres = pSvc->GetObject(ClassName, 0, NULL, &pClass, NULL);

    IWbemClassObject* pInParamsDefinition = NULL;
    hres = pClass->GetMethod(MethodName, 0, 
        &pInParamsDefinition, NULL);

    IWbemClassObject* pClassInstance = NULL;
    hres = pInParamsDefinition->SpawnInstance(0, &pClassInstance);

    // Create the values for the in parameters
    VARIANT varCommand;
    varCommand.vt = VT_BSTR;
    varCommand.bstrVal = L"notepad.exe";

    // Store the value for the in parameters
    hres = pClassInstance->Put(L"CommandLine", 0,
        &varCommand, 0);
    wprintf(L"The command is: %s\n", V_BSTR(&varCommand));

    // Execute Method
    IWbemClassObject* pOutParams = NULL;
    hres = pSvc->ExecMethod(ClassName, MethodName, 0,
    NULL, pClassInstance, &pOutParams, NULL);

    if (FAILED(hres))
    {
        cout << "Could not execute method. Error code = 0x" 
             << hex << hres << endl;
        VariantClear(&varCommand);
        SysFreeString(ClassName);
        SysFreeString(MethodName);
        pClass->Release();
        pInParamsDefinition->Release();
        pOutParams->Release();
        pSvc->Release();
        pLoc->Release();     
        CoUninitialize();
        return 1;               // Program has failed.
    }

    // To see what the method returned,
    // use the following code.  The return value will
    // be in &varReturnValue
    VARIANT varReturnValue;
    hres = pOutParams->Get(_bstr_t(L"ReturnValue"), 0, 
        &varReturnValue, NULL, 0);


    // Clean up
    //--------------------------
    VariantClear(&varCommand);
    VariantClear(&varReturnValue);
    SysFreeString(ClassName);
    SysFreeString(MethodName);
    pClass->Release();
    pInParamsDefinition->Release();
    pOutParams->Release();
    pLoc->Release();
    pSvc->Release();
    CoUninitialize();
    return 0;
}


Это сообщение отредактировал(а) Alca - 3.12.2008, 17:34


--------------------
PM WWW ICQ Skype Jabber   Вверх
jonie
Дата 4.12.2008, 01:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 7
Всего: 118



Цитата

есть по типу бесплатная http://www.ammyy.com/ru/ ломится безо всяких настроек обалденно проходит все аппаратные защиты
а вы пробывали резать кабель?)
-------
про WMI уже писали, про удаленный рабочий стол - можно взять VNC протокол как основу и реализовать его (или поглядеть как такое делается в исходниках) - гугл найдет ..


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0963 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.