Форум: "Начинающим";
Текущий архив: 2016.04.10;
Скачать: [xml.tar.bz2];
Внизпуть к файлу по клику мыши Найти похожие ветки
← →
ROBIN (2014-09-10 21:33) [0]как узнать путь к файлу по клику мыши в проводнике или на рабочем столе
← →
Rouse_ © (2014-09-10 21:36) [1]Давай начнем с начала:
Обработчик клика мыши где расположен?
← →
ROBIN (2014-09-10 21:40) [2]я даже как -то растерялся? не думал, что кто -то будет отвечать. Извините.
← →
ROBIN (2014-09-10 21:42) [3]Мне нужно что бы моя программа отследила клик мыши где угодно, и по чему угодно. И что бы тот объект по которому кликнули... в общем что бы я увидел путь этого объекта... Блин, надеюсь Вы поймёте :(
← →
Rouse_ © (2014-09-10 21:53) [4]Выглядит все достаотчно сумбурно.
Соберись и перефразируй вопрос.
Давай начнем от: "И что бы тот объект по которому кликнули... в общем что бы я увидел путь этого объекта..."
Обьектов не существует - есть окна. Пути у оконного элемента нет.
Что за путь ты хочешь получить?
(я конечно понимаю что именно тебе необходимо, но не понимаю как тебе это обьяснить - поэтому зайдем издалека).
← →
ROBIN (2014-09-10 22:35) [5]Я написал программу которая должна запускать сторонние программы, или открывать документы, и т.д. Для создания списка всех этих запускаемых приложений нужны их адреса, т.е. пути. Интерфейс моей программы следующий - пользователь кликом мыши по любому файлу в проводнике или на рабочем столе показывает какой файл ему нужен, программа копирует этот путь себе в список в list box какоё- нибудь, й уже потом в случае надобности этот пользователь запускает нужный файл уже из моей программы, а не ищет его снова по компьютеру. Ну надеюсь теперь понятно?..
← →
Rouse_ © (2014-09-10 22:44) [6]
> Ну надеюсь теперь понятно?..
Ясно, т.е. получается ты хочешь сделать что-то типа истории запуска файлов.
Судя по тому что ты сказал: "Я написал программу" - по сути программа у тебя уже реализована, запускать сторонние программы ты тоже умеешь и осталось (де юре) только заполнпть некий ListBox, я правильно понял?
← →
ROBIN (2014-09-10 22:53) [7]Да, Вы всё поняли правильно. Вы теперь помочь можете?
← →
Rouse_ © (2014-09-10 23:01) [8]Олег Витальевичь, как бы сказать...
Технически, часть того что Вы заявили, можно сделать на уровне шела.
Но это буджет относится только к проводнику и оным вытекающим из самого шела.
Я изучил вашу биографию (извините) и вижу что Вы по сути никогда не имели отношения к программированию как к таковому, поэтому на данный момент, я конечно могу дать пару ссылок по перехвату, но боюсь они Вам не помогут.
Мой искренний совет (как земляку - мы по сути почти рядышком территориально) - наймите программиста и он Вам сделает все красиво.
← →
ROBIN (2014-09-10 23:12) [9]Ваша помощь просто неоценима. Даже и не знаю как благодарить. Особенно мне помогло, что Вы навели обо мне справки. И совет о поиске программиста был, можно сказать, шедеврален. Однако, поскольку я ни о чём таком не просил, то всё же попытаюсь быть настойчивым, и попрошу ещё раз :
мне бы информацию о том как это можно реализовать. И Вы ведь должны понимать, что каким бы плохим программистом я не был, я искренне хочу стать лучше. поэтому и задаю подобного рода вопросы.
Надеюсь понятно объяснил...
← →
Rouse_ © (2014-09-10 23:19) [10]Ок, тогда сложный вариант:
Для начала учимся получать информацию с окна под курсором: http://rouse.drkb.ru/winapi.php#wndinfo
Потом учимся работать с шелом:
http://rouse.drkb.ru/winapi.php#fwoledragdrop
Потом вникаем в перехват:
http://rouse.drkb.ru/winapi.php#splice
http://rouse.drkb.ru/winapi.php#splice2
Читаем технические статьи:
http://alexander-bagel.blogspot.ru/2013/01/intercept.html
http://alexander-bagel.blogspot.ru/2013/05/intercept2.html
С уважением.
ЗЫ: ни в коем разе не хотел обидеть
← →
Rouse_ © (2014-09-10 23:31) [11]Уточню - все что вне рамок шела Вам придется анализировать ручками уже в обработчиках.
← →
Юрий Зотов © (2014-09-10 23:56) [12]А если программа запущена с клавиатуры, а не мышью? Тем более, командной строкой?
← →
Юрий Зотов © (2014-09-11 00:13) [13]> ROBIN (10.09.14 23:12) [9]
> каким бы плохим программистом я не был, я искренне хочу стать лучше.
Это замечательно, но для обучения Вы выбрали совсем неподходящую задачу - слишком сложную. Ну не ставят начинающему прыгуну в высоту планку сразу на два метра. Розыч это и имел в виду, зря Вы на него обиделись.
Но если уж Вам так хочется, то зачем ловить клики? Мало ли, куда кликнул юзер, может и не по файлу вовсе. Да и с клавиатуры программу можно запустить, без всякой мыши.
Посмотрите в сторону перехвата функции CreateProcess. Это тоже не слишком просто, но все же проще (а главное, надежнее), чем выбранный Вами способ. И примеры в Сети есть.
А перехватив создание процесса, останется только получить его image file. Примеры в Сети тоже есть.
← →
имя (2014-09-11 01:33) [14]Удалено модератором
← →
Inovet © (2014-09-11 06:25) [15]Не лучше ли воспользоваться стандартным drag-and-drop?
← →
имя (2014-09-11 07:37) [16]Удалено модератором
← →
sniknik © (2014-09-11 10:09) [17]был у нас менеджер, тоже хотел странного, иногда невозможного (к примеру чтобы его по его локальному входу на ноуте в любом домене узнавали и права по нему же локальному давали, права админа)... бесился когда его "обламывали" и как-то сказал фразу "никто работать не хочет, простых вещей не понимают, да если бы я умел программировать давно бы сам сделал!"... на его беду сказал за неделю до дня рождения, на него ему естественно подарили книжку "PHP за 21 день" (или "PHP для чайников" что-то вроде в общем). еще через пару недель он уволился. и что характерно через 21 день назад в новом качестве не вернулся. :)
... куда автор делся? к нему со всей душой, объясняют, практически в виде исключения. а он ... ;(
← →
icWasya © (2014-09-11 14:35) [18]А если использовать Драг-энд-Дроп?
Схватить объект и перетащить на Вашу форму?
← →
RWolf © (2014-09-11 15:22) [19]
> sniknik © (11.09.14 10:09) [17]
почему «на его беду»? человек, может, в пхпшники пошёл — можно сказать, вырос профессионально.
← →
QAZ (2014-09-11 16:10) [20]
> как узнать путь к файлу по клику мыши в проводнике или на рабочем столе
Shift+ПКМ+"копировать как путь"
← →
DQ (2014-09-11 19:13) [21]"Объекты по которым кликают в проводнике или на рабочем столе" являются элементами ListView и в общем случае являются просто этакой таблицей с текстом. Оно не связано явно с файлами. Оно просто иллюстрирует.
"пользователь кликом мыши по любому файлу в проводнике или на рабочем столе показывает какой файл ему нужен" - извиняюсь, нафига? Добавьте как Notepad++ пункт в контекстное меню. Или как DownloadMaster из буфера обмена брать.
Кстати я как-то уже делал из буфера, и мою exe через 2 года сочли вирусом. Как с этим бороться кто-то подскажет?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2016.04.10;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.002 c