Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2014, 15:24   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Блин, да прочти ты уже что я пишу.
Не буду более отвлекать )
Удачи.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.12.2014, 15:58   #12
lollollollol
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 218
По умолчанию

ну ты вроде и не отвлекал, сам себе противоречишь сейчас.


Поясняю:
Сообщений #4
Цитата:
Как это сделать?
В теме на которую указал Stilet, не вижу запроса интерфейса
Сообщение #7
Цитата:
Вот попытка любой работы с rdpClient.AdvancedSettings2 вызывает access violation ошибку.

До твоего вопроса я ДВА раза сказал что твой код не работает, может стоит не включать ясельные обиды? я лишь сказал что уже это ранее говорил, а ты сразу щёки надул


По теме, есть мысли или нет?
В делфи 2010 тже самое/

В гугле полно тем с такой ошибкой, нигде нет ответа.
lollollollol вне форума Ответить с цитированием
Старый 04.12.2014, 16:54   #13
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Если смотреть в правильных местах, то будет логично вызывать AdvancedSettings3 для IRDPClient2. И ошибки никакой не будет. Учите мат. часть код COM/ACtiveX интерфейсам и автоматизации. чтоб знать, что прежде чем что-то присваивать, надо проверять, сопоставлять и прочее....
Человек_Борща вне форума Ответить с цитированием
Старый 04.12.2014, 17:49   #14
lollollollol
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 218
По умолчанию

Цитата:
логично вызывать AdvancedSettings3 для IRDPClient2. И ошибки никакой не будет.
Ну дак смотрел я, тоже самое, там же ошибка

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin

    RDP.Server:='ip';
    RDP.UserName:='юзер';
    RDP.ControlInterface;
    RDP.DefaultInterface;
    RDP.AdvancedSettings3.Set_ClearTextPassword('пароль'); //Тут ошибка Access Violation
    RDP.Left:=0;
    RDP.Top:=0;
    RDP.Width:=300;
    RDP.Height:=100;
    RDP.Connect;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
    WindowState:=wsMaximized;
    RDP:=TMsRdpClient2.Create(Self);
    RDP.Parent:=self;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 if rdp.Connected<>0 then RDP.Disconnect;
 rdp.Free;
end;

Последний раз редактировалось Stilet; 04.12.2014 в 18:39.
lollollollol вне форума Ответить с цитированием
Старый 04.12.2014, 18:41   #15
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
может стоит не включать ясельные обиды?
Я то обижаюсь? На что?
Ты даже мой код не соизволил проанализировать, потому я и утверждаю - мне нечему тебя учить )
Одно это:
Цитата:
RDP:=TMsRdpClient2.Create(Self);
и
Цитата:
RDP.AdvancedSettings3
говорит о невнимательности и нежелании понять.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.12.2014, 18:46   #16
lollollollol
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 218
По умолчанию

Поясни пожалуйста, в чём моя ошибка?

Я уже и так и сяк.


Тот код что ты давал, я полностью копировать пытался.
Пытался сам делать.

И компонент кидал на форму потом с ним работать пытался.

Цитата:
RDP:=TMsRdpClient2.Create(Self);
- что тут криминального?
lollollollol вне форума Ответить с цитированием
Старый 04.12.2014, 19:53   #17
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Цитата:
говорит о невнимательности и нежелании понять.
Все правильно. На MSDN внезапно! для IRdpClient2 используется AdvancedSettings3

ТС проверьте есть ли вообще ссылка на интерфейс у AdvancedSettings3 (<> nil) , далее будет ясно.
Человек_Борща вне форума Ответить с цитированием
Старый 04.12.2014, 20:13   #18
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
IMsRdpClient2::AdvancedSettings3 property
This topic has not yet been rated - Rate this topic

Retrieves a pointer to the IMsRdpClientAdvancedSettings2
Но я не об этом.
А в прочем уже не важно. Пусть автор читает MSDN и разбирается внимательнее.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.12.2014, 21:11   #19
lollollollol
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 218
По умолчанию

Так, вы меня окончательно запутали. Попытаюсь разобраться по порядку.

Моя логика такова:

1. Нужно создать переменную, типа TMsRdpClient2.
Код:
var
  Form1: TForm1;
  RDP:TMsRdpClient2;
2. Нужно создать этот объект, и отобразить его на форме
Код:
    RDP:=TMsRdpClient2.Create(Self);
    RDP.Parent:=self;
3. Нужно указать параметры
Код:
    RDP.Server:='ip';
    RDP.UserName:='юзер';
    RDP.AdvancedSettings3.Set_ClearTextPassword('пароль'); //Тут ошибка Access Violation
    RDP.Left:=0;
    RDP.Top:=0;
    RDP.Width:=300;
    RDP.Height:=100;
4. Можно выполнить Connect
Цитата:
RDP.Connect;

С логикой всё верно?

Дальше, у меня возникла проблема при попытке обратиться к интерфейсу AdvancedSettings.

Я попытался проверить, равен ли он nil.
Там имеются след интерфйсы:
Цитата:
if (RDP.AdvancedSettings<>nil) then MessageBox(0,'1','',0);
if (RDP.AdvancedSettings3<>nil) then MessageBox(0,'3','',0);
if (RDP.AdvancedSettings2<>nil) then MessageBox(0,'2','',0);
Дак вот на строках 2 и 3 вылетает с ошибкой.

Хотя если верить
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

то должен использоваться AdvancedSettings3


Но даже если опустить обращение к этому интерфейсу, а вызвать сразу connect, я получаю туже ошибку.



Соотвественно я делаю вывод -скорее всего я неправильно создаю объект, или чего-то не сделал.
ЧТо именно треуется сделать, чтобы я мог таки работать ?


Цитата:
ТС проверьте есть ли вообще ссылка на интерфейс у AdvancedSettings3 (<> nil) , далее будет ясно.
Ссылки НЕТУ. Какие мои действия дальше?


Вот текст ошибки
Project Projectl.exe raised exception class EAccessViolation with message 'Access violation at address 6ADC1222 in module
'mstscax.dll'. Read of address 000013D8'. Process stopped. Use Step or Run to continue.

Последний раз редактировалось lollollollol; 04.12.2014 в 21:23.
lollollollol вне форума Ответить с цитированием
Старый 04.12.2014, 21:37   #20
lollollollol
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 218
По умолчанию

Код:
  hToken:THandle;
  SeDebugNameValue:Int64;
  tkp:TOKEN_PRIVILEGES;
  ReturnLength:Cardinal;
  hProcess:THandle;
begin
  if not OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken ) then exit;
  if not LookupPrivilegeValue( nil, 'SeDebugPrivilege', SeDebugNameValue ) then begin
    CloseHandle(hToken);
    exit;
  end;
  tkp.PrivilegeCount:= 1;
  tkp.Privileges[0].Luid := SeDebugNameValue;
  tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
  AdjustTokenPrivileges(hToken,false,tkp,SizeOf(tkp),tkp,ReturnLength);

  MsRdpClient71.Server:='ip';
  MsRdpClient71.UserName:='admin';
  MsRdpClient71.Connect;

Вначале на строке connect была ошибка типа нет привелегий. получил - access violation
lollollollol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как задать эти две даты...не могу понять что за 100-наносекундный интервал...и что это за дата 1 января 0001 года der90 PHP 4 25.04.2014 13:46
не могу понять, что за ошибка (С++) mpdasa Помощь студентам 1 25.06.2012 19:56
не могу понять что не так aferistz Общие вопросы C/C++ 5 23.09.2010 02:21
не могу понять, что за скрипт ZET78 JavaScript, Ajax 0 18.08.2010 00:10
Не могу понять, что требуется? Shuraken Общие вопросы Delphi 2 10.08.2007 11:41