Kivy: SDL_dropfile ne fonctionne pas avec des autorisations élevées

Créé le 18 févr. 2017  ·  5Commentaires  ·  Source: kivy/kivy

Versions

  • Système d'exploitation : Windows
  • SDL : 2.0.5

La description

Bien qu'il s'agisse à peu près du seul problème de SDL2, nous aurons besoin d'une mention dans la documentation au moins. Je ne trouve aucun problème connexe dans leur outil de suivi des bogues, donc si quelqu'un y est déjà enregistré, il peut être utile de le pousser ou de vérifier s'il n'est pas résolu avec sa branche master/trunk.

Code et journaux

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()

Exemple 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

Commentaire le plus utile

Nous devrions probablement simplement documenter le problème, puis le fermer.

Tous les 5 commentaires

Mais avez-vous également déposé le fichier à partir d'une fenêtre d'autorisation élevée ? Pour être sûr que c'est là question ; J'ouvrirais également l'explorateur Windows/navigateur de fichiers avec des autorisations élevées ; car j'imagine que Linux afficherait le même comportement. Je pense que c'est en fait une chose du système d'exploitation qui essaie généralement d'empêcher de tels échanges de contexte; à la seule exception je crois être le tampon copier-coller.

Je crois que c'est la seule chose de Windows, mais je n'ai pas testé par exemple sur Ubuntu, vous êtes donc invités à essayer sudo python multiple_dropfile.py partir d'exemples, ou l'un des blocs de code ci-dessus.

En ce qui concerne les autorisations élevées, je pense que cmd /c explorer lancé en tant qu'administrateur devrait être suffisant pour obtenir des autorisations élevées, mais même dans ce cas, il n'y a pas de situation possible et rien n'est renvoyé de l'événement.

Tellement vrai; ce n'est probablement pas du domaine de Kivy à résoudre ; et en fait est probablement en dehors de SDL. Sauf si nous prévoyons d'exposer un moyen de modifier le filtre de passage des messages par niveau MIC sous Windows ; mais je pense aussi que vous auriez un problème similaire sous Linux; car eux aussi ont commencé à avoir une séparation plus profonde des processus sudo ; même s'ils sont exécutés par le même utilisateur, mais il y a certainement une différence entre un processus sudo et non sudo. Ainsi, un correctif pour Linux devrait également être découvert et probablement exposé également; mais je pense que ces détails devraient être laissés au programmeur pour qu'ils les implémentent selon les besoins de leur domaine de problèmes. Ce ne sont que mes 2 centimes.

Nous devrions probablement simplement documenter le problème, puis le fermer.

Cette page vous a été utile?
0 / 5 - 0 notes