Я использую прикрепленный код для копирования содержимого PDF-файла в компонент richedit.
Я не знаю, как определить, когда Acrobat Reader открыл файл / скопированный контент, поэтому я использую команду sleep, которая очень неэффективно. Позже мне нужно будет запустить этот код на тысячах PDF-файлов с различными размерами.
Не могли бы вы помочь мне заменить команду сна командой, которая сообщит о завершении задачи?
var
Title: array[0..255] of char;
begin
GetWindowText(wHandle, Title, 255);
if IsWindowVisible(wHandle) then
if pos('Adobe Reader',string(Title))>0 then
begin
keybd_event(VK_CONTROL,0,0 , 0);
keybd_event(ord('A'),0,0 , 0);
keybd_event(ord('A'),0,KEYEVENTF_KEYUP,0);
keybd_event(VK_CONTROL,0, KEYEVENTF_KEYUP,0);
keybd_event(VK_CONTROL,0,0 , 0);
keybd_event(ord('C'),0,0 , 0);
keybd_event(ord('C'),0,KEYEVENTF_KEYUP,0);
keybd_event(VK_CONTROL,0, KEYEVENTF_KEYUP,0);
end;
Result := True;
end;
procedure TForm5.Button1Click(Sender: TObject);
begin
ShellExecute(self.WindowHandle,'open',PChar('D:\Orators.pdf'),nil,nil, SW_SHOWNORMAL);
sleep(1000);
EnumWindows(@PDF_to_Clipboard,LPARAM(ListBox1));
sleep(1000);
RichEdit1.Lines.Clear;
RichEdit1.PasteFromClipboard;
end;