Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2009.04.19;
Скачать: [xml.tar.bz2];

Вниз

Почему такой код в Висте не работает а в XP работает?   Найти похожие ветки 

 
vopros   (2008-04-15 14:36) [0]

FileName := "expreg.reg"; //заполнить именем файла (расширение указывать)

 Key := "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\";
if
  ShellExecute(Handle, "open", "regedit.exe",
 PChar(Format("/e "%s" "%s"", [FileName, Key])),
 "", SW_SHOWDEFAULT)  ;<= 32
 then //если ошибка, то возвращаемый код <=32
RaiseLastWin32Error();
 Application.terminate;
end;


Или подскажите плиз, как егов Висте сделать работоспособным?


 
tesseract ©   (2008-04-15 14:53) [1]


> Или подскажите плиз, как егов Висте сделать работоспособным?


Виста вообще по другому работает.


 
vopros   (2008-04-15 15:36) [2]

Как определить в висте откуда программа запустилась.
То бишь файл создаеться...но создаеться в учетке пользователя из под которой она запустилась..


 
lapslap   (2008-04-15 15:36) [3]

regedit под вистой требует для запуска админские привилегии, и при включеном уаке, если ваше приложение не под админом, код невыполнится :)

выход: добавьте хороший манифест.


 
Anatoly Podgoretsky ©   (2008-04-15 15:45) [4]

> vopros  (15.04.2008 14:36:00)  [0]

Как по твоему для чего у тебя тут RaiseLastWin32Error стоит, для красоты?
Будь добр озвучить ошибку.


 
tesseract ©   (2008-04-15 16:34) [5]


> Как определить в висте откуда программа запустилась.


Твоя ? Так же как и обычно - Apllication.Exename или ParamStr(0).


 
В.В. Дельфин   (2008-04-18 07:59) [6]

To lapslap

>Что такое манифест?
>Что такое манифест, и какую роль он играет в выборе версии 6.0 >библиотеки comctl32.dll для моего приложения? Манифест - XML документ >который должен быть подлинкован в ресурсы вашего приложения. Обычно >ресурсы используются для хранения таких вещей как картинки, иконки и >курсоры мыши.

Как манифест повлияет на выполнение Regedit? Или я пардон ошибаюсь?


 
Плохиш ©   (2008-04-18 12:33) [7]


> if
>   ShellExecute(Handle, "open", "regedit.exe",
>  PChar(Format("/e "%s" "%s"", [FileName, Key])),
>  "", SW_SHOWDEFAULT)  ;<= 32
>  then //если ошибка, то возвращаемый код <=32

А на каком языке ви пытаетесь кодить?


 
Игорь Шевченко ©   (2008-04-18 16:30) [8]


> RaiseLastWin32Error();
>  Application.terminate;


какая-то из двух строчек явно лишняя


 
zensan ©   (2008-04-19 23:43) [9]

Virube User Access Control i vse dela... v User Accounts..


 
Eraser ©   (2008-04-20 01:11) [10]

вообще, если у регедита манифест, терубющий админские привелегии, то данный код (если в нем нет глупых ошибок) должен вызвать диалог поднятия привелегий.
вообще тут все подробно
http://www.codeproject.com/KB/vista-security/UAC__The_Definitive_Guide.aspx

но повторюсь - должно работать просто через ShellExecute.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2009.04.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 2.349 c
1-1210569343
User1
2008-05-12 09:15
2009.04.19
Не соображу, что за ошибка...


4-1208534442
Незнайка
2008-04-18 20:00
2009.04.19
работа с The Bat!


2-1236170803
VlGrig1961
2009-03-04 15:46
2009.04.19
Access violation at address... ??????


15-1234857582
Анна
2009-02-17 10:59
2009.04.19
Уравнение для 8 класса


15-1234964100
@!!ex
2009-02-18 16:35
2009.04.19
ICQ опять уронили?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский