|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июн 4, 2004 23:58:50 Добрый вечер. У меня маленькая проблемка - написал нечто отдаленно напоминающее прогу, хэ-хэ =)(я пока начинающий еще) точнее GUI на masm к досовской проге работающей исключительно через command line, что меня порядком раздражает. Моя прога значит берет путь к файлу через GetOpenFileName в результате по offset-у Name кладется cкажем c:\Program Files\Yz Platinum\YzDock.exe а мне нужен не этот путь а короткий что вроде c:\Progra~1\и так далее, иначе досовская прога комманд не понимает и работать отказывается. Как бы его сконвертировать? Помогите... |
|
|
Дата: Июн 5, 2004 00:31:07 А самому слабо? Алгоритм-то ведь простенький. |
|
|
Дата: Июн 5, 2004 00:35:26 Рульная вещь - поиск по форуму. А также MSDN. Используй функцию GetShortPathName. |
|
|
Дата: Июн 5, 2004 01:03:30 Рульная вещь - поиск по форуму О! Растут люди :) Скоро меня в этом плане за пояс засунут :) Хи-хи :))) |
|
|
Дата: Июн 5, 2004 21:15:04 Cпасибо большое, с GetShortPathName получилось Алгоритм-то ведь простенький. ну не такой уж простенький, особенно если не юзать API. Да и быстрее наверно будет напрямую вызвать функцию напрямую Вот еще кое что нашаманил:
; переключатель раскладки клавы в зависимости от условий:
; Горит ScrollLock ? - Россия
; Не горит ScrollLock ? - USA
ScrollLock proc hWnd:HWND
.data
ru db '00000419',0
en db '00000409',0
.code
invoke GetKeyboardLayout, NULL
mov ebx, eax
invoke GetKeyState, VK_SCROLL
.if (eax ==1)
cmp ebx, 04190419h
jz @1
invoke LoadKeyboardLayout, addr ru, KLF_ACTIVATE
@1:
nop
.endif
.if (eax ==0)
cmp ebx, 04090409h
jz @2
invoke LoadKeyboardLayout, addr en, KLF_ACTIVATE
@2:
nop
.endif
ret
ScrollLock endp
простенький конечно как 2+2 =), зато удобно. работает правда только в пределах той проги из которой запускается ... Но ведь должен быть способ сделать что бы он не только в пределах одной проги работал? я пробовал через invoke SendMessage, HWND_BROADCAST, WM_INPUTLANGCHANGE, addr ru, addr ru не пашет, только почему? |
|
|
Дата: Июн 6, 2004 06:24:24 не пашет, только почему? Да потому что! This function only affects the layout for the current process or thread. Читай MSDN. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.067 |