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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2011, 15:14   #11
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Да, правильное решение - добавить параметр командной строки к команде автозапуска приложения.

Скажем, "/autorun"

В программе проверить -

Код:
if FindCmdLineSwitch('autorun') then
  // автозапуск
else
  // обычный запуск
Но никаких ParamStr с фиксированными волшебными константами!

Цитата:
А где именно?
Ты как программу в автозагрузку-то добавляешь?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.

Последний раз редактировалось Stilet; 15.01.2011 в 16:09.
GunSmoker вне форума Ответить с цитированием
Старый 15.01.2011, 15:15   #12
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
А где именно?
С:\programs\MyBlah\Blah.exe
||
\/
С:\programs\MyBlah\Blah.exe - theend
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 15.01.2011, 15:17   #13
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
Ты как программу в автозагрузку-то добавляешь?
Вот:
Код:
Procedure AutoRun(AppName:String;on:Integer);
var Reg:TRegistry;
begin
      Reg:=tregistry.create;
      with Reg do
      begin
            RootKey:=HKEY_CURRENT_USER;
            OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',true);
            if on = 1 then
            WriteString(AppName,paramStr(0))
            else DeleteValue(AppName);
      end;
      Reg.CloseKey;
      Reg.Free;
end;
Цитата:
С:\programs\MyBlah\Blah.exe
||
\/
С:\programs\MyBlah\Blah.exe - theend
Alex Cones, я не то имел ввиду. Я спрашивал, где реестр находится Плохо просто у меня с этим.
P.S. А как с ключом-то прописать?
_-Re@l-_ вне форума Ответить с цитированием
Старый 15.01.2011, 15:18   #14
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Цитата:
Сообщение от GunSmoker Посмотреть сообщение
Но никаких ParamStr с фиксированными волшебными константами!
А что с ними не так?
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 15.01.2011, 15:19   #15
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Код:
Procedure AutoRun(AppName:String;on:Integer);
var Reg:TRegistry;
begin
      Reg:=tregistry.create;
      with Reg do
      begin
            RootKey:=HKEY_CURRENT_USER;
            OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',true);
            if on = 1 then
            WriteString(AppName,paramStr(0) + ' -billymustdie')
            else DeleteValue(AppName);
      end;
      Reg.CloseKey;
      Reg.Free;
end;
Цитата:
где реестр находится
Вы меня пугаете.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 15.01.2011, 15:21   #16
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
Вы меня пугаете.
Ну, я же сказал, у меня с этим плохо. Я это не очень понимаю.
P.S. Спасибо за код .



Т.е по вашему примеру надо так?
Код:
If (M = 0) and
         (N = 0) and
         (Q = 0) and(FindCmdLineSwitch('autorun') Then
      Application.Terminate

Последний раз редактировалось _-Re@l-_; 15.01.2011 в 15:24.
_-Re@l-_ вне форума Ответить с цитированием
Старый 15.01.2011, 15:23   #17
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

http://ru.wikipedia.org/wiki/%D0%A0%...%D1%80_Windows
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 15.01.2011, 15:24   #18
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
Вот:
Есть предложение разбирать код, а не бездумно его использовать. Это и есть код по работе к реестром.

Или хотя бы немного думать головой. Можно не знать, что делает этот код, но ты хотя бы знаешь что он делает твоей программе автозагрузку. Наверное, найти в этом коде имя своей программы и приписать к нему один параметр должно быть не очень сложно?

ParamStr(0) меняем на Format('"%s" %s', [ParamStr(0), '/autorun'])

ParamStr(0) - твоё приложение. Мы добавляем к нему параметр '/autorun'.

Цитата:
А что с ними не так?
Смеётесь? Как можно назвать программу, которая воспринимает параметр командной строки, только если он указан в фиксированном месте? Иначе как говно-кодом никак иначе, по-моему.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.

Последний раз редактировалось GunSmoker; 15.01.2011 в 15:27.
GunSmoker вне форума Ответить с цитированием
Старый 15.01.2011, 15:26   #19
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

А, в этом смысле ) Я уже было подумал, что в ParamStr() бый найден баг какой-то.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 15.01.2011, 15:26   #20
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
ParamStr(0) - твоё приложение.
Это я знаю. Но не более. Да и вообще, я автозагрузку добавляю только лишь по просьбе, сам никогда бы не стал её делать.
_-Re@l-_ вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автозагрузка, каталог "Автозагрузка" создается повторно (Win7 x32) MyIE Общие вопросы Delphi 10 29.03.2012 07:49
C++ Builder 6.0. Запуск exe или ln файла Vikelf Помощь студентам 7 29.05.2011 19:22
Запуск exe через интернет - реальность или миф? Drek Свободное общение 12 06.08.2010 19:41
Возникает ошибка 10053 и происходит принудительный разрыв соединения Маёвец Работа с сетью в Delphi 0 28.01.2010 14:36