19:55

Тотальная неудачница и убийца жёстких дисков.
#post-id: 3628-16-54
#original-date: 2.07.2010 Fri
#original-time: 4:54 PM
#original-day:  3628
#original-host: WinXP Prof SP3 (Build 2600)

INFO: Использование программ Rundll и Rundll32

Статья многое проясняет. Например, почему вот эта команда:

RunDLL32.EXE User32,MessageBoxA 0,Byaka,Byaka,64

Мне выдала окно сообщения, в котором в заголовке была вся строка из параметров, а в тексте сообщения - фигня с MZ в начале. Долго ломала я голову, но в итоге поняла... Статья говорит, что функция должна принимать четыре аргумента, во второй передаётся адрес библиотеки (начало оной и попадало в текст сообщение), а в третий - всё, что в командной строке.

А я хотела заюзать RunDLL в скрипте Clear Recycle Bins. А то оказалось, что в FSO DeleteFile и DeleteFolder в случае папки выносят всё дерево без оглядки на символические ссылки, что есть нехорошо, очень нехорошо. Вроде всегда мечтали о таком поведении, а теперь ищем аналог без выноса дерева, а в FSO его просто нет! Обидно...

Теперь сижу и думаю, что делать. А то у меня уже была ситуация, когда ссылка случайно проскользнула в коризнку, и файлы, которые не должны были быть удалены, моя программа всёже вынесла...

Варианта два: заменить всё это на скрипт для Clear Recent, либо писать нормальную программу. Вот...

Комментарии
04.07.2010 в 21:44

молодой динамично развивающийся
ввел в командную строку ^^
так как оно правильно-то будет?
05.07.2010 в 09:43

Тотальная неудачница и убийца жёстких дисков.
И что получилось? Oo

А никак. Вызываемая через RunDll32 функция должна соответствовать формату и иметь четыре строго опреелённых параметра.
05.07.2010 в 10:29

молодой динамично развивающийся
0 бяка 64 в заголовке, три буквы неведомой хуеты в окне

вин7
05.07.2010 в 11:56

Тотальная неудачница и убийца жёстких дисков.
Так и должно быть ^^ Параметры запуска пошли в третий параметр функции (заголовок), а во второй - адрес модуля (библиотеки) пошёл как адрес строки с текстом. Открой любую DLL в текстовом редакторе - в самом начале будет тоже самое.