Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Открыть программу в виндусе, Комманда открыть ехе файл 
V
    Опции темы
Inbox
Дата 18.10.2008, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 3.6.2007

Репутация: нет
Всего: нет



Код

uses
 SysUtils, Classes, Dialogs, Menus, PlatformDefaultStyleActnCtrls, ActnPopup,
  ActnList, Windows, StdActns, ShellAPI, ActnMan, ImgList, Controls, DB, ADODB;


Несколько вариантов открытия файлов и ни один не работает.
Хотя в реальных программках работает, а в моей программе нет.

Код

ShellExecute(Application.Handle, 'open', PChar('Notepad.exe' ), nil, nil, SW_SHOW);

ShellExecute(Application.Handle, 'open', PChar('C:\Program Files\Nero\Nero 9\Nero Burning ROM\Nero.exe' ), nil, nil, SW_SHOW);

WinExec(PChar('C:\Program Files\Microsoft Office\Office11\WINWORD.EXE' ),SW_ShowNormal);

WinExec(PChar('notepad.exe' ),SW_ShowNormal);

ShellExecute(Self.Handle, 'open', PChar(FileName), nil, nil, SW_NORMAL);


Что не так???

Добавлено через 3 минуты и 18 секунд
Код останавливается на строчке и веделяет её красным.
Делфик 2008ой   вин  виста, но это не показатель..  месяц назад я заставил работать эту процедуру но не помню как, что то я упустил.
PM MAIL   Вверх
Данкинг
Дата 18.10.2008, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Не знаю, у меня вот это точно работает:
Код

ShellExecute(Application.Handle, 'open', pchar('proga.exe'), nil, nil, SW_NORMAL); 



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
AntonN
Дата 18.10.2008, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.8.2006

Репутация: 3
Всего: 18



Цитата

Код останавливается на строчке и веделяет её красным.

должно быть ошибка, какая? внизу должно писаться, какая.


--------------------
user posted image
PM MAIL WWW   Вверх
Inbox
Дата 18.10.2008, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 3.6.2007

Репутация: нет
Всего: нет



Я тоже незнаю..........у меня твой код тоже работает.
Спасибо.
У меня есть одна мысль: свои коды я копировал с вордовского докумена в листинг программы, может здесь собака зарыта??

PM MAIL   Вверх
AntonN
Дата 18.10.2008, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.8.2006

Репутация: 3
Всего: 18



Inbox, может там "стенография" - некоторые буквы латинской "a" заменены на русскую букву smile
в любом случае, нужно знать текст ошибки...


--------------------
user posted image
PM MAIL WWW   Вверх
Inbox
Дата 18.10.2008, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 3.6.2007

Репутация: нет
Всего: нет



Цитата

должно быть ошибка, какая? внизу должно писаться, какая.




Присоединённый файл ( Кол-во скачиваний: 19 )
Присоединённый файл  Errr.jpg 8,54 Kb
PM MAIL   Вверх
Данкинг
Дата 18.10.2008, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Действительно, ошибка-то какая? А копировать тексты надо или с Винграда, или с DRKB, или же с Delphiworld. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Inbox
Дата 18.10.2008, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 3.6.2007

Репутация: нет
Всего: нет



Опять не работает...........
Код работает с обычного юнита, (создаю форму кидаю кнопку и тд.....)
А я создаю дата юнит  Data Modul, на него кидаю TActionMeneger> Далее кнопку вытягиваю на другую форму (создаю меню)
Но у меня все юниты подключены и связаны между собой........в чем дело?

Добавлено через 3 минуты и 9 секунд
Ошибку выдает вот такую    (UnData) Это имя модуля UnitData.......

Присоединённый файл ( Кол-во скачиваний: 10 )
Присоединённый файл  Errrorr.JPG 16,53 Kb
PM MAIL   Вверх
Christoph
Дата 18.10.2008, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

Репутация: 5
Всего: 11



Попробуй 
Код

if ShellExecute(Application.Handle,nil,pchar('C:\Nero_Portable\Nero 8.3.2.1 portable.exe'),nil,nil,SW_SHOW)<32 then
 begin
 ShowMessage('не работает ShellExecute');
 end;


Попробуй еще CreatProcess


--------------------
user posted image
PM MAIL ICQ   Вверх
AntonN
Дата 18.10.2008, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.8.2006

Репутация: 3
Всего: 18



Inbox, для application нужен uses forms;


--------------------
user posted image
PM MAIL WWW   Вверх
Christoph
Дата 18.10.2008, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

Репутация: 5
Всего: 11



Цитата(Inbox @ 18.10.2008,  23:09)
Опять не работает...........
Код работает с обычного юнита, (создаю форму кидаю кнопку и тд.....)
А я создаю дата юнит  Data Modul, на него кидаю TActionMeneger> Далее кнопку вытягиваю на другую форму (создаю меню)
Но у меня все юниты подключены и связаны между собой........в чем дело?

Добавлено @ 23:12
Ошибку выдает вот такую    (UnData) Это имя модуля UnitData.......

Глобальная переменная  Application может быть описана только если создаешь Application(приложение), во всех остальных случаях переменная Application не создается  
Ой я думал ты Application пишешь в юните...а там у тебя оказывается не дописано в uses Forms

Это сообщение отредактировал(а) Christoph - 18.10.2008, 23:30


--------------------
user posted image
PM MAIL ICQ   Вверх
THandle
Дата 18.10.2008, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 50
Всего: 372



Цитата(Inbox @  18.10.2008,  23:27 Найти цитируемый пост)
Делфик 2008ой


Вообще то 2009.

Код

ShellExecute(Application.Handle, 'open', PChar('Notepad.exe' ), nil, nil, SW_SHOW);
ShellExecute(Application.Handle, 'open', PChar('C:\Program Files\Nero\Nero 9\Nero Burning ROM\Nero.exe' ), nil, nil, SW_SHOW);
ShellExecute(Self.Handle, 'open', PChar(FileName), nil, nil, SW_NORMAL);



Uses ShellAPI, Forms;


Насчет этого и ошибке на картинке:
Код


WinExec(PChar('C:\Program Files\Microsoft Office\Office11\WINWORD.EXE' ),SW_ShowNormal);
WinExec(PChar('notepad.exe' ),SW_ShowNormal);


Смотрим какой первый параметр у WinExec... PAnsiChar.... ANSI, а не Unicode!!! Который по умолчанию в Delphi 2009.

PChar = PwideChar, а нам нужен PAnsiChar.

Вот так работать будет:


Код

 WinExec(PAnsiChar('notepad.exe' ),SW_SHOWNORMAL);




Цитата(Christoph @  19.10.2008,  00:14 Найти цитируемый пост)

Попробуй еще CreatProcess 


Советовать человеку, который не может разобраться что у него за ошибка с приведением типов CreateProcess??? Бесполезно, только запутает.
PM   Вверх
Inbox
Дата 18.10.2008, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 3.6.2007

Репутация: нет
Всего: нет



Цитата

Inbox, для application нужен uses forms;


Код

uses     Forms;

Это решило проблему, теперь всё работает......
Всем Спасибо

Добавлено через 2 минуты и 54 секунды
Цитата

Вот так работать будет:
Код

 WinExec(PAnsiChar('notepad.exe' ),SW_SHOWNORMAL);


Так тоже работает.. без uses Forms
PM MAIL   Вверх
Christoph
Дата 18.10.2008, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

Репутация: 5
Всего: 11



Цитата(Inbox @ 18.10.2008,  23:29)
Цитата

Inbox, для application нужен uses forms;


Код

uses     Forms;

Это решило проблему, теперь всё работает......
Всем Спасибо

Добавлено @ 23:32
Цитата

Вот так работать будет:
Код

 WinExec(PAnsiChar('notepad.exe' ),SW_SHOWNORMAL);


Так тоже работает.. без uses Forms

Мы знаем smile так  как Application описана в Forms, а в этой функции не надо использоваться эту переменную  smile 


--------------------
user posted image
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0607 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.