অ্যাপ্লিকেশন যা ক্লিপবোর্ডের সামগ্রী এবং এর মাইমির প্রকারটি প্রদর্শন করতে দেয়?


9

আমি এমন একটি অ্যাপ্লিকেশন অনুসন্ধান করছি যা আমাকে ক্লিপবোর্ডের সামগ্রীর বিবরণ প্রদর্শন করতে পারে।

ক্লিপবোর্ডে কিছু ডেটা অনুলিপি করার সময়, ডেটা নির্দিষ্ট মাইমির টাইপের সাথে সম্পর্কিত। সাধারণ পাঠ্যটি হ'ল text/plain, বাইনারি ডেটা হিসাবে অনুলিপি করা যায় application/octet-stream, ইত্যাদি I

আমি ক্লিপবোর্ডের সামগ্রীটি কেবল একটি লক্ষ্য নোটপ্যাডের মতো অ্যাপ্লিকেশনটিতে আটকে দিতে পারি না, কারণ লক্ষ্যটি মাইম টাইপের ক্লিপবোর্ড অবজেক্টের প্রত্যাশা করে text/plain

ক্লিপবোর্ডে বিদ্যমান বিদ্যমান মাইম টাইম অবজেক্টের সমস্ত সংখ্যা গণনা করে এমন একটি অ্যাপ্লিকেশনও যথেষ্ট।

উত্তর:


6

ব্যবহার xclip:

xclip -o -t TARGETS

সমস্ত উপলব্ধ প্রকারের দেখতে। উদাহরণ স্বরূপ:

  1. আপনার ওয়েব ব্রাউজার থেকে কিছু অনুলিপি করুন
  2. উপলব্ধ প্রকারের তদন্ত
cl xclip -o -t TARGETS
TIMESTAMP এ
লক্ষ্য
একাধিক
পাঠ্য / HTML
টেক্সট / _moz_htmlcontext
টেক্সট / _moz_htmlinfo
UTF8_STRING
COMPOUND_TEXT
টেক্সট
STRING এর
টেক্সট / এক্স-Moz-URL-priv
  1. আপনার আগ্রহী ব্যক্তির জন্য সামগ্রীগুলি পান: xclip -o -t text/html

3

ঠিক আছে, আমি আসলে কিছু কোড লিখেছি যা আমার প্রয়োজন অনুযায়ী করে। ভাল জিনিস এটি Qt এ বেশ সহজ।

বিল্ডিং সম্পর্কিত তথ্য এই পোস্টের নীচে রয়েছে।

xclipshow.cpp:

#include <QApplication>
#include <QTimer>
#include <QClipboard>
#include <QMimeData>
#include <QDebug>
#include <QStringList>

class App: public QObject {
    Q_OBJECT
private:
    void main();
public:
    App(): QObject() { }
public slots:
    void qtmain() { main(); emit finished(); }
signals:
    void finished();
};

void App::main() {
    QClipboard *clip = QApplication::clipboard();

    for(QString& formatName: clip->mimeData()->formats()) {
        std::string s;
        s = formatName.toStdString();

        QByteArray arr = clip->mimeData()->data(formatName);
        printf("name=%s, size=%d: ", s.c_str(), arr.size());

        for(int i = 0; i < arr.size(); i++) {
            printf("%02x ", (unsigned char) arr.at(i));
        }

        printf("\n");
    }
}

int main(int argc, char **argv) {
    QApplication app(argc, argv);
    App *task = new App();
    QObject::connect(task, SIGNAL(finished()), & app, SLOT(quit()));
    QTimer::singleShot(0, task, SLOT(qtmain()));
    return app.exec();
}

#include "xclipshow.moc"

CMakeLists.txt:

cmake_minimum_required(VERSION 3.0.0)
project(xclipshow)
find_package(Qt5Widgets)
set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(SRC
    xclipshow.cpp)

add_definitions(-std=c++11)
add_executable(xclipshow ${SRC})
qt5_use_modules(xclipshow Widgets Core)

@ এসএলএম-র মন্তব্যে অনুরোধ অনুযায়ী বিল্ডিংয়ের তথ্য: এটি আপনি যে সিস্টেমটি ব্যবহার করছেন তার উপর নির্ভর করে। এই কোডটি সংকলনের জন্য Qt5 এবং সিএমকে প্রয়োজন needs আপনার যদি উভয়ই থাকে তবে আপনাকে চালনা করতে হবে:

BUILD_DIR=<path to an empty temporary dir, which will contain the executable file>
SRC_DIR=<path to the directory which contains xclipshow.cpp>

$ cd $BUILD_DIR
$ cmake $SRC_DIR
$ make

অথবা আপনি ফ্রিবিএসডি তে থাকলে 'গেমেক', বা উইন্ডোজে থাকলে 'মিংডব্লু 32-মেক' ইত্যাদি

আপনার কাছে কিউটি 5 বা সিএমকে না থাকলে আপনি কিউটি 4 এবং ম্যানুয়াল সংকলন দিয়ে পালিয়ে যেতে চেষ্টা করতে পারেন:

$ moc xclipshow.cpp > xclipshow.moc
$ g++ xclipshow.cpp -o xclipshow `pkg-config --cflags --libs QtGui` -I. --std=c++11

আপনি যদি অবৈধ --std=c++11বিকল্প সম্পর্কে তথ্য পেয়ে থাকেন তবে --std=c++0xতার পরিবর্তে চেষ্টা করুন এবং আপনার সংকলকটিকে আপগ্রেড করার কথা বিবেচনা করুন;)।


1
এই সমাধান পোস্ট করার জন্য ধন্যবাদ। ভবিষ্যতের দর্শনার্থীদের জন্য কীভাবে এটি সংকলন করা যায় সে সম্পর্কে আপনি কিছুটা বিশদ যুক্ত করতে পারেন?
slm

2
@ এসএলএম, অ্যান্টোনোন, আমি আপনার কোডটি সহজ / সংক্ষিপ্ত করে রেখেছি, সেভাবে সংকলন করা আরও সহজ হওয়া উচিত: gist.github.com/gsauthof/c955f727606f4a5b0cc2
ম্যাক্সচ্লেপজিগ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.