Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как отследить?

1.8K
27 января 2003 года
Blackvic
43 / / 03.12.2002
- Как узнать из какой директории была запущена программа?

- Попытку пользователя удалить /переместить /открыть /т.д какой-либо файл?

спасибо! :-?
293
28 января 2003 года
SEDEGOFF
586 / / 06.10.2002
Есть такая функций GetCurrentDir() или CurrentDir() (точно не помню) Возвращает текущюю дерикторию.
Лучше ее использовать при запуске программы, так как если во время использования программы осуществлялось навигация по папкам то эта функция вернет последнию папку
295
28 января 2003 года
gray_k
356 / / 20.12.1999
ИМХО, для того, чтобы узнать откуда было запущено приложение надо делать так:
ExtractFileDir(Application->ExeName);
Юзать GetCurrentDir не очень правильно, потому что после того как приложение запущено, текущая директория может поменяться, хотя я сам не проверял, может быть и не прав.
295
28 января 2003 года
gray_k
356 / / 20.12.1999
Сорри, SEDEGOFF, не прочёл твоё сообщение до конца, про изменение директории можно было и не писать.
1.8K
31 января 2003 года
Blackvic
43 / / 03.12.2002
Цитата:
Originally posted by gray_k



Спасибо за ответы, но не все так просто, дело в том, что надо отследить запуск не моего приложения, а других приложений запущенных пользователем, нечто вроде API GetModuleName. :o

293
31 января 2003 года
SEDEGOFF
586 / / 06.10.2002
Объясни по подробнее
1.8K
01 февраля 2003 года
Blackvic
43 / / 03.12.2002
Цитата:
Originally posted by SEDEGOFF
Объясни по подробнее



:) Например в системе запущено: Word, Builder, ... Требуется узнать из какой директории запущен Word, а из какой Builder

Я пытаюсь сделать это так: Перебераю все процессы с помощью Process32First, Process32Next; Функции возвращают структуру PROCESSENTRY32 у которых есть поле szExeName.

В этой строке и должно по докам храниться путь и имя exe файла, но храниться только имя, а жаль.
Хоть ищи по диску этот файл...:x

Кстати, для получения директории из которой запущена своя прога можно определить еще так:
AnsiString s = ExtractFilePath(Application->ExeFile); // всегда верно работает

442
01 февраля 2003 года
HexoGenus
121 / / 20.03.2000
У меня в локалке повадились ребята в автозагрузку проги прописывать...
Вот тебе прога которая показывает в мемополе все процессы и убивает те из них которые были запущены из автозагрузки...
(смотри если у тебя есть какие проги в автозагрузке то не спеши запускать)
В мемполе отображается полный путь к процессам...

#include <Tlhelp32.h>

void __fastcall TForm1::Button1Click(TObject *Sender)
{


DWORD th32ProcessID;
HANDLE hSnapshoot,hKillProcess;
hSnapshoot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hSnapshoot == NULL) return;
tagPROCESSENTRY32 pe32;
pe32.dwSize = sizeof(tagPROCESSENTRY32);
Memo1->Lines->Add("Список процессов:");
if (Process32First(hSnapshoot, &pe32))
do
{
Memo1->Lines->Add(String(pe32.szExeFile));
String strPath="C:\\WINDOWS\\Главное меню\\Программы\\Автозагрузка\\";
String strExeFile=pe32.szExeFile;
strExeFile.SetLength(strPath.Length());
if (strExeFile==strPath)
{
th32ProcessID=pe32.th32ProcessID;
hKillProcess = OpenProcess(PROCESS_ALL_ACCESS, True, th32ProcessID);
TerminateProcess(hKillProcess,0);
}
}
while (Process32Next(hSnapshoot, &pe32));

String strFile;
WIN32_FIND_DATA nf;
nf.cAlternateFileName[0]=0;
HANDLE pp;
pp=FindFirstFile("C:\\WINDOWS\\Главное меню\\Программы\\Автозагрузка\\*.*",&nf);
String strNameFile=nf.cFileName;
strNameFile=String("C:\\WINDOWS\\Главное меню\\Программы\\Автозагрузка\\")+strNameFile;
if (nf.cAlternateFileName!="") DeleteFile(strNameFile.c_str());
for (int i=1; i<=1999; i++)
{
if (FindNextFile(pp,&nf)==false) break;
strNameFile=nf.cFileName;
strNameFile=String("C:\\WINDOWS\\Главное меню\\Программы\\Автозагрузка\\")+strNameFile;
if (String(nf.cFileName)!=String(".") && String(nf.cFileName)!=String(".."))
{
for (int j=1; j<=10000; j++)
{
int p=DeleteFile(strNameFile.c_str());
if (p==1)
{
break;
}
if (j==10000) ShowMessage("Не удается удалить файл из автозагрузки");

}
}
}

}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог