
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.3] |
![]() |
|
Страницы: (3) 1 2 [3] все ( Перейти к последнему сообщению ) |
Сообщ.
#31
,
|
|
|
Ясно, спасибо. Правда насколько я знаю, системный таймер на NT тикает каждые 10 мс (тогда же планировщик потоков получает управление), так что соблюсти документированную дискретность 100 нс никак не получится. Или это я с прямым углом перепутал?
|
![]() |
Сообщ.
#32
,
|
|
В действительности срабатывает он намного чаще 10 мс. Иначе пропала бы возможность работы с мультимедийными таймерами
![]() |
Сообщ.
#33
,
|
|
|
Сообщ.
#34
,
|
|
|
Уважаемые!!! ПОМОГИТЕ!!!!
![]() Ни кто не пособит- как туже самую задачу воспроизвести на Visual Basic 6.0 ??? т.е. меня интересует, КАК узнать имя процесса запустившего мою программу, но через VB? СПАСИБО огромное любому, кто хоть что то посоветует ![]() |
![]() |
Сообщ.
#35
,
|
|
Точно так-же, берешь приведенный код и переписываешь его на VB.
|
Сообщ.
#36
,
|
|
|
Rouse
Александр В том то и проблема, у меня не выходит (если честно, то я не спец в программировании, тока VB изучаю, а тут совсем др. язык).. Помогите, плиз, если можете) Спасибо. |
Сообщ.
#37
,
|
|
|
Цитата akkorn @ В том то и проблема, у меня не выходит (если честно, то я не спец в программировании, тока VB изучаю, а тут совсем др. язык).. Помогите, плиз, если можете) Спасибо. Ты думаешь Розыч спец в VB? ЛУчше задать вопрос в соответствующем разделе форума. |
Сообщ.
#38
,
|
|
|
Демо
Александр А КТО ЕСТЬ ТАКОЙ огромный спец, кто мог бы это провернуть??? Пасиб)) |
Сообщ.
#39
,
|
|
|
Пожалуй, апну тему.
Использую приведенный выше код. GetModuleFileNameExA на некоторых компьютерах возвращает ошибку, Getlasterror = 299, запрос Readprocessmemory или writeprocessmemory выполнен только частично. Оно же "Only part of a ReadProcessMemory or WriteProcessMemory request was completed." или ERROR_PARTIAL_COPY. Пробовал увеличить буффер - дело не в этом. GetModuleFileNameExW дает ровно тот же результат - либо обе работают, либо обе нет. Работает на WindowsXP x86, Windows2003 x86, Windows 2003 x64. Не работает: словил только на Win2003x64, запущенном под Oracle VirtualBox, но есть и другие эпизоды. Сделал мощный дебаг, в Memo выводится все и на каждом шаге. Функции GetModuleFileNameEx передается нормальный хендл. Приложение 32битное, в диспетчере задач отмечено как *32. Возможно, как-то связано. Запуск в режиме совместимости с любой другой ОС во первых, не решает задачу, во вторых - выдается тот же результат. Запустившее приложение еще в памяти, не тот случай когда бы оно успело закрыться. Как фиксить? --- еще порылся и выяснил, что ошибка возникает только при запуске приложения из проводника (Explorer.exe) либо через CMD.exe на некоторых 64-битных системах. Запуск другой программой определяется. Решается использованием GetProcessImageFileNameA, которая дает путь в виде \Device1\PArtition2\windows\explorer.exe или типа того, но сойдет. Надеюсь, GetProcessImageFileNameA есть на всех системах и не будет "точка входа не найдена"... Рекомендуемую QueryFullProcessImageName в системных библиотеках не нашел, в модулях Delphi тем более. |
Сообщ.
#40
,
|
|
|
Цитата Виталь @ QueryFullProcessImageName Minimum supported client Windows Vista [desktop apps only] Minimum supported server Windows Server 2008 [desktop apps only] Header WinBase.h (include Windows.h) Library Kernel32.lib DLL Kernel32.dll |