Kivy: SDL_dropfile لا يعمل بأذونات مرتفعة

تم إنشاؤها على ١٨ فبراير ٢٠١٧  ·  5تعليقات  ·  مصدر: kivy/kivy

إصدارات

  • نظام التشغيل: Windows
  • SDL: 2.0.5

وصف

على الرغم من أن هذه مشكلة SDL2 فقط إلى حد كبير ، فسنحتاج إلى ذكرها في المستندات على الأقل. لا يمكنني العثور على أي مشكلة ذات صلة في متتبع الأخطاء الخاص بهم ، لذلك إذا كان شخص ما مسجلاً بالفعل هناك ، فقد يكون من المفيد لكزهم ، أو التحقق مما إذا لم يتم إصلاحه من خلال الفرع الرئيسي / الجذع.

الكود والسجلات

from kivy.app import runTouchApp
from kivy.core.window import Window

def _drop(window, file_path):
    print(file_path)

Window.bind(on_dropfile=_drop)
runTouchApp()

مثال SDL2

#include <SDL2/SDL.h>

int main() {
    SDL_Init(SDL_INIT_EVERYTHING);
    SDL_Window *window = SDL_CreateWindow(
        "Drag-and-Drop",
        SDL_WINDOWPOS_UNDEFINED,
        SDL_WINDOWPOS_UNDEFINED,
        800, 600, SDL_WINDOW_SHOWN
    );

    int running = 1;
    while (running) {
        SDL_Event event;
        while (SDL_PollEvent(&event)) {
            switch (event.type) {
            case SDL_DROPFILE:
                printf("Dropped file: %s\n", event.drop.file);
                break;
            case SDL_QUIT:
                running = 0;
                break;
            }
        }
    }

    SDL_DestroyWindow(window);
    SDL_Quit();
}
upstream

التعليق الأكثر فائدة

ربما يجب علينا فقط توثيق المشكلة ثم إغلاقها.

ال 5 كومينتر

لكن هل أسقطت الملف أيضًا من نافذة إذن مرتفعة؟ للتأكد من وجود مشكلة ؛ سأفتح مستكشف Windows / متصفح الملفات في أذونات مرتفعة أيضًا ؛ كما أتخيل ، سيعرض Linux نفس السلوك. أعتقد أنه في الواقع شيء من نظام التشغيل يحاول بشكل عام منع مثل هذه التبادلات السياقية ؛ مع الاستثناء الوحيد الذي أعتقد أنه المخزن المؤقت للنسخ واللصق.

أعتقد أنه الشيء الوحيد لـ Windows ، لكنني لم أختبر على سبيل المثال Ubuntu ، لذا فنحن نرحب بك لتجربة sudo python multiple_dropfile.py من الأمثلة ، أو إحدى كتل الكود أعلاه.

فيما يتعلق بالأذونات المرتفعة ، أعتقد أن cmd /c explorer الذي تم إطلاقه كمسؤول يجب أن يكون كافيًا للحصول على أذونات مرتفعة ، ولكن حتى مع ذلك ، هناك حالة ممنوعة ولا يتم إرجاع أي شيء من الحدث.

حقا حقا ربما لا يكون هذا في مجال Kivy لإصلاحه ؛ وفي الواقع ربما يكون خارج SDL. هذا ما لم نخطط لفضح طريقة لتغيير عامل تصفية تمرير الرسائل لكل مستوى MIC على Windows ؛ لكنني أعتقد أيضًا أنه سيكون لديك مشكلة مماثلة على Linux ؛ لأنهم بدأوا أيضًا في الفصل بشكل أعمق لعمليات sudo ؛ على الرغم من تشغيلهما بنفس المستخدم ، إلا أنه يوجد بالتأكيد فرق بين عملية sudo و non-sudo. لذلك يجب أيضًا اكتشاف إصلاح لنظام Linux ومن المحتمل الكشف عنه أيضًا ؛ لكني أعتقد أنه ينبغي ترك مثل هذه التفاصيل للمبرمج لتنفيذها حسب الحاجة لمجال مشكلتهم. هذا هو فقط 2 سنتي بالرغم من ذلك.

ربما يجب علينا فقط توثيق المشكلة ثم إغلاقها.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات