HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
1027
常に管理者権限で起動する実行ファイルを作るには6解決


リンク

2017/10/27(Fri) 21:49:03|NO.81693

 こんばんは、お世話になります。

 HSPでプログラムを作成しているのですが、レジストリの操作を行う必要があり、常に管理者権限で起動させたいと考えています。
 上記のような場合、どのようにしたらいいんでしょうか。
 マニフェストを変更すればいいようなことはどこかで読んだんですが、実際にどのようにすればよいのかわかりません。
 自分でも調べてみたんですが、調べ方が悪いのか、うまく見つけることができませんでした。

 ということで、上記の件に関して、解決方法等をご存知でしたら、教えていただけないでしょうか。

 よろしくお願いいたします。



この記事に返信する


kanahiron

リンク

2017/10/27(Fri) 22:50:09|NO.81695

過去ログを検索すれば出てきますよ
「管理者権限で他のアプリケーションを起動するモジュール組んで見たので使ってみてください」
http://hsp.tv/play/pforum.php?mode=pastwch&num=33321

ただし、リンクが切れているので
「管理者権限で起動したい」
http://hsp.tv/play/pforum.php?mode=pastwch&num=73237
こちらのcatsさんの再配布をご利用下さい



MillkeySoftw

リンク

2017/10/27(Fri) 23:12:55|NO.81696

管理者権限で起動していない場合、ダイアログで再起動促すテストスクリプト。

#uselib "shell32.dll" #cfunc IsUserAnAdmin "IsUserAnAdmin" #cfunc ShellExecuteEx "ShellExecuteExA" var #uselib "kernel32.dll" #func GetModuleFileName "GetModuleFileNameA" int,var,int //管理者起動チェック as = IsUserAnAdmin() if as = 0{ //通常ユーザとして起動した場合 dialog "このソフトウェアは、管理者権限を必要とします。\n管理者権限で再起動しますか?",3,"管理者権限不足" if stat = 6{ //自身を管理者として再起動させる lpVerb = "runas" sdim lpFile,260 sdim cmdline,260 sdim curfolder,260 GetModuleFileName 0,lpFile,256 cmdline = dir_cmdline curfolder = dir_cur dim pExecInfo,60/4 pExecInfo(0) = 60 pExecInfo(1) = 0 pExecInfo(2) = 0 pExecInfo(3) = varptr(lpVerb) pExecInfo(4) = varptr(lpFile) pExecInfo(5) = varptr(cmdline) pExecInfo(6) = varptr(curfolder) pExecInfo(7) = 5 result = ShellExecuteEx(pExecInfo) end } else { //いいえを押したので即終了する end } } dialog "ソフトウェアは管理者権限で起動されています。",0,"起動成功"
実行ファイルを作成して確認してね。エディタ上からでも可能だけど、管理者権限起動後に HSP がスタートアップエラーになってしまう事があるので。



MillkeySoftw

リンク

2017/10/27(Fri) 23:39:38|NO.81697

この記事は投稿者により削除されました。
2017/10/28(Sat) 13:05:09



おにたま(管理人)

リンク

2017/10/28(Sat) 10:37:11|NO.81699

お手数をおかけします。
既に存在しないページですので、該当するスレッドは削除させて頂きました。
ご報告ありがとうございます。



gol

リンク

2017/10/28(Sat) 06:29:17|NO.81698

最新のHSP3.5はexeにマニフェストを埋め込めるので通常のソフトと同じ方法でできます。
http://dobon.net/vb/dotnet/system/asadmin.html
ここを参考にした以下のマニフェストファイルをadmin.manifestの名前で保存して(その際文字コードはutf-8にする)
あとはhspソースに
#packopt manifest "admin.manifest"
を加えてctrl+F9で作成すればOKです。


<?xml version="1.0" encoding="utf-8"?> <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> <!-- UAC マニフェスト オプション Windows のユーザー アカウント制御のレベルを変更するには、 requestedExecutionLevel ノードを以下のいずれかで置換します。 <requestedExecutionLevel level="asInvoker" uiAccess="false" /> <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> <requestedExecutionLevel level="highestAvailable" uiAccess="false" /> requestedExecutionLevel ノードを指定すると、ファイルおよびレジストリの仮想化は無効になります。 旧バージョンとの互換性のためにファイルおよびレジストリの仮想化を 使用する場合は、requestedExecutionLevel ノードを削除します。 --> <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> </requestedPrivileges> </security> </trustInfo> <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> <application> <!-- このアプリケーションが動作するように設計されている、Windows のすべてのバージョンの一覧。Windows は最も互換性の高い環境を自動的に選択します。--> <!-- アプリケーションが Windows 7 で動作するように設計されている場合は、次の supportedOS ノードのコメントを解除します。--> <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>--> </application> </compatibility> <!-- Windows のコモン コントロールとダイアログのテーマを有効にします (Windows XP 以降) --> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency> </asmv1:assembly>



tds12

リンク

2017/10/28(Sat) 14:37:25|NO.81700

実行ファイル名にsetupを入れるという方法はなしですかね。



リンク

2017/10/29(Sun) 17:50:13|NO.81724

 こんにちは、お世話になります。

 皆さん、いろいろと教えていただき、ありがとうございました。
 今回は、マニフェストファイルを埋め込む方法で解決しました。

 以上、今後ともよろしくお願いいたします。



ONION software Copyright 1997-2023(c) All rights reserved.