Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 454

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
Как можно реализовать? -
например если поместить эту команду в .cmd файл или ярлык, она будет работать: rundll32.exe powrprof.dll,SetSuspendState Sleep
а при нажатии кнопки в приложении такое сделать не получается.

Я пробовал сделать так (код в приложении).
Так же нужно учесть, что сам файл находится в C:\Windows\System32\

p.s. надеюсь вы поняли, что я имею в виду (:

Приложение:
  1. procedure TForm1.BitBtn1Click(Sender: TObject);
  2. begin
  3. ShellExecute(Handle,'open','rundll32.exe powrprof.dll,SetSuspendState Sleep',nil,nil,0);
  4. end;


Northwind Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Northwind (статус: Посетитель)
Вопрос отправлен: 25 февраля 2009, 19:42
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: min@y™

Попробуй вот так:

{
  HINSTANCE ShellExecute(
    HWND hwnd,                  // handle to parent window
    LPCTSTR lpOperation,  // pointer to string that specifies operation to perform
    LPCTSTR lpFile,          // pointer to filename or folder name string
    LPCTSTR lpParameters,  // pointer to string that specifies executable-file parameters
    LPCTSTR lpDirectory,  // pointer to string that specifies default directory
    INT nShowCmd           // whether file is shown when opened
   );}
 
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  ShellExecute(Handle,
               'open',
               'rundll32.exe',
               '"powrprof.dll,SetSuspendState Sleep"', // <-- Параметры - отдельно и в кавычках
               nil,
               0);
end;

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 26 февраля 2009, 09:33


Мини-форум вопроса

Всего сообщений: 4; последнее сообщение — 26 февраля 2009, 17:27; участников в обсуждении: 3.
Вадим К

Вадим К (статус: Академик), 25 февраля 2009, 19:54 [#1]:

Цитата:

Так же нужно учесть, что сам файл находится в C:\Windows\System32\

Этот каталог обычно добавлен PATH и учитывать особо не нужно.
Первое, что приходит в голову - антивирус/фаервол не дает запустить. Либо нехватает прав (не под администраторским аккаунтом)
Галочка "подтверждения прочтения" - вселенское зло.
Northwind

Northwind (статус: Посетитель), 25 февраля 2009, 22:30 [#2]:

т.е. сам код как бы правильный? может есть еще какие вариации Handle,'open' (run и т.п.)?
с правами все норм, антивирус ничего не блокирует.
Northwind

Northwind (статус: Посетитель), 26 февраля 2009, 17:14 [#3]:

к сожалению не помогло(
Пупкин В В

Пупкин В В (статус: 2-ой класс), 26 февраля 2009, 17:27 [#4]:

ShellExecute(Handle,'open','rundll32.exe','powrprof.dll,SetSuspendState',nil,0);

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:48
Выполнено за 0.03 сек.