Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / cannot open ​clipboard отказано в доступе / 18 сообщений из 18, страница 1 из 1
17.09.2013, 11:29
    #38398510
Ekklesiast
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cannot open ​clipboard отказано в доступе
Выпадает ошибка cannot open ​clipboard отказано в доступе на buff := Clipboard.AsText;
EmptyClipboard не фурфчит
подскажите как быть ?


Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls,

  Clipbrd;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

// *****************************************************************************
procedure MouseMoveAndClick(x, y, ps: integer);
begin
  SetCursorPos(x, y);

  sleep(ps);

  Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, x, y, 0, 0);
  Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, x, y, 0, 0);
end;

// *****************************************************************************
procedure CopyToClipboard(aText: string);
begin
  Clipboard.Open;
  try
    Clipboard.AsText := aText;
  finally
    Clipboard.Close;
  end;
end;

// *****************************************************************************
procedure myFunc;
const
  E_X = 400;
  E_Y = 450;
var
  buff: string;
  x, y: integer;
  r: TRect;
begin

  buff := '12046';

  // Copy To Clipboard----------------------------------------------------------
  repeat
    CopyToClipboard(buff);

    sleep(100);

    if Trim(buff) = Trim(Clipboard.AsText) then
      break;
  until false;

  // ---------------------------------------------------------------------------

{
  Clipboard.Open;
  try
    EmptyClipboard;
  finally
    Clipboard.Close;
  end;

}

  // Click в область
  x := E_X + r.Left;
  y := E_Y + r.Top;
  MouseMoveAndClick(x, y, 200);

  // Ctrl+A
  sleep(200);
  keybd_event(VK_CONTROL, 0, 0, 0); // Down
  keybd_event($41, 0, 0, 0); // Down
  keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); // Up
  keybd_event($41, 0, KEYEVENTF_KEYUP, 0); // Up

  // Ctrl+C (copy to Clipboard)
  sleep(200);
  keybd_event(VK_CONTROL, 0, 0, 0); // Down
  keybd_event($43, 0, 0, 0); // Down
  keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); // Up
  keybd_event($43, 0, KEYEVENTF_KEYUP, 0); // Up

  // Get from Clipboard
  sleep(200);
  if Clipboard.HasFormat(CF_TEXT) then
    buff := Clipboard.AsText;
end;

// *****************************************************************************
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if GetAsyncKeyState(VK_XBUTTON2) <> 0 then // VK_RBUTTON
  begin
    Timer1.Enabled := false;

    myFunc;

    Timer1.Enabled := true;
  end;
end;

// *****************************************************************************
end.

...
Рейтинг: 0 / 0
17.09.2013, 11:45
    #38398547
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cannot open &#8203;clipboard отказано в доступе
Ekklesiast
Код: pascal
1.
2.
3.
4.
procedure CopyToClipboard(aText: string);
begin
    Clipboard.AsText := aText;
end;


И все.
...
Рейтинг: 0 / 0
17.09.2013, 12:14
    #38398642
Ekklesiast
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cannot open &#8203;clipboard отказано в доступе
wadmanEkklesiast
Код: pascal
1.
2.
3.
4.
procedure CopyToClipboard(aText: string);
begin
    Clipboard.AsText := aText;
end;


И все.

так пробывал, ничё не изменилось
...
Рейтинг: 0 / 0
17.09.2013, 12:23
    #38398663
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cannot open &#8203;clipboard отказано в доступе
Ekklesiastтак пробывал, ничё не изменилось
Значит то ПО (обычно это игрушки), для которого эта поделка пишется, блокирует буфер.
...
Рейтинг: 0 / 0
17.09.2013, 12:29
    #38398683
Ekklesiast
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cannot open &#8203;clipboard отказано в доступе
у меня в коде было

Код: pascal
1.
Clipboard.Clear;



как убрал, ошибка перестала выпадать
...
Рейтинг: 0 / 0
17.09.2013, 14:55
    #38398947
Ekklesiast
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cannot open &#8203;clipboard отказано в доступе
Рано радовался !
Не догоняю, почему если использую Ctrl+C , то ошибка на buff := Clipboard.AsText;

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
  // Ctrl+C (copy to Clipboard)
  sleep(200);
  keybd_event(VK_CONTROL, 0, 0, 0); // Down
  keybd_event($43, 0, 0, 0); // Down
  keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); // Up
  keybd_event($43, 0, KEYEVENTF_KEYUP, 0); // Up

  // Get from Clipboard
  sleep(200);
  if Clipboard.HasFormat(CF_TEXT) then
    buff := Clipboard.AsText;
...
Рейтинг: 0 / 0
17.09.2013, 15:21
    #38398996
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cannot open &#8203;clipboard отказано в доступе
EkklesiastНе догоняю, почему если использую Ctrl+C , то ошибка
Телепаты придут, расскажут, что там за ошибка, посмотрим тогда.
...
Рейтинг: 0 / 0
17.09.2013, 15:28
    #38399010
Ekklesiast
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cannot open &#8203;clipboard отказано в доступе
wadmanEkklesiastНе догоняю, почему если использую Ctrl+C , то ошибка
Телепаты придут, расскажут, что там за ошибка, посмотрим тогда.

авторcannot open ​clipboard отказано в доступе

первое сообщение в игнор ставите ?
D
...
Рейтинг: 0 / 0
17.09.2013, 15:40
    #38399031
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cannot open &#8203;clipboard отказано в доступе
Ekklesiastпервое сообщение в игнор ставите ?
Не забывай, что тут в основном программисты и они догадываются, что за сменой кода приходят и другие ошибки.

Ekklesiast
Код: pascal
1.
sleep(200);


Поиграй с этим в сторону увеличения.
...
Рейтинг: 0 / 0
17.09.2013, 16:11
    #38399065
Ekklesiast
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cannot open &#8203;clipboard отказано в доступе
умные люди подсказали решение:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
  while true do
  begin
    bo := true;
    try
      buff := Clipboard.AsText;
    except
      bo := false;
    end;
    if bo then
      break;
    sleep(100);
    Application.ProcessMessages;
  end;
...
Рейтинг: 0 / 0
17.09.2013, 16:14
    #38399073
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cannot open &#8203;clipboard отказано в доступе
Ekklesiast умные люди подсказали решение:
Ekklesiast
Код: pascal
1.
2.
sleep(100);
    Application.ProcessMessages;


!
...
Рейтинг: 0 / 0
17.09.2013, 18:38
    #38399268
Ekklesiast
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cannot open &#8203;clipboard отказано в доступе
wadmanEkklesiast умные люди подсказали решение:
Ekklesiast
Код: pascal
1.
2.
sleep(100);
    Application.ProcessMessages;


!

что тебе не нравится ?
...
Рейтинг: 0 / 0
17.09.2013, 18:43
    #38399274
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cannot open &#8203;clipboard отказано в доступе
Ekklesiastwadmanпропущено...

пропущено...

!

что тебе не нравится ?
Бесконечный неуправляемый цикл с ProcessMessages.
...
Рейтинг: 0 / 0
17.09.2013, 19:29
    #38399324
Ekklesiast
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cannot open &#8203;clipboard отказано в доступе
wadmanБесконечный неуправляемый цикл с ProcessMessages.

возможно вы проглядели
Код: pascal
1.
break;

?

))))
...
Рейтинг: 0 / 0
17.09.2013, 19:31
    #38399326
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cannot open &#8203;clipboard отказано в доступе
Ekklesiast, заметил.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
13.11.2018, 16:06
    #39732533
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cannot open &#8203;clipboard отказано в доступе
Ekklesiastумные люди подсказали решение:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
  while true do
  begin
    bo := true;
    try
      buff := Clipboard.AsText;
    except
      bo := false;
    end;
    if bo then
      break;
    sleep(100);
    Application.ProcessMessages;
  end;



почему этого умного решения нет с правке по Delphi до сих пор?
...
Рейтинг: 0 / 0
13.11.2018, 18:19
    #39732634
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cannot open &#8203;clipboard отказано в доступе
13.11.2018 16:06, X11 пишет:
> почему этого умного решения нет с правке по Delphi до сих пор?

потому, что это черезжопное решение.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
14.11.2018, 09:57
    #39732831
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cannot open &#8203;clipboard отказано в доступе
Т.е. люди оказались неумными?
Какое тогда решение не черезжопное?
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / cannot open &#8203;clipboard отказано в доступе / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]