ab.com コミュニティ
https://www.activebasic.com/forum/

マニフェスト埋め込み(XPスタイルへの変更)
https://www.activebasic.com/forum/viewtopic.php?t=1990
ページ 11

作成者:  SPIRIT [ 2007年6月27日(水) 23:31 ]
記事の件名:  マニフェスト埋め込み(XPスタイルへの変更)

AB 4.24.00 でコンパイル&正常に実行できることを確認しています。

このソースで埋め込み実験をする場合は、どうでもよいプログラムにアイコンなどのリソースを追加してから対して行ってください。
このソースを使ったことで実行ファイルが壊れても責任は負えません。

コード:
Declare Function BeginUpdateResource Lib "kernel32" Alias "BeginUpdateResourceA" (pFileName As String,
                                                                                  bDeleteExistingResources As Long) As HANDLE
Declare Function UpdateResource Lib "kernel32" Alias "UpdateResourceA" (hUpdate As HANDLE,lpType As Long,
                                          lpName As Long,wLanguage As Long,lpData As String,cbData As Long) As Long
Declare Function EndUpdateResource Lib "kernel32" Alias "EndUpdateResourceA" (hUpdate As HANDLE,fDiscard As Long) As Long

Const RT_MANIFESTID =  1
Const RT_MANIFEST   = 24

Dim path[MAX_PATH] As Byte, xml As String
Dim hUpdate As HANDLE

'適当にファイルパスを入れてください
lstrcpy(path,"")

'埋め込み開始!
hUpdate=BeginUpdateResource(path,FALSE)
If hUpdate=NULL Then
	MessageBox(0,"埋め込み開始失敗",0,MB_OK)
	End
End If

xml=Ex"<?xml version=\q1.0\q encoding=\qUTF-8\q standalone=\qyes\q?>\r\n"
xml=xml+Ex"<assembly xmlns=\qurn:schemas-microsoft-com:asm.v1\q manifestVersion=\q1.0\q>\r\n"
xml=xml+Ex"<description></description>\r\n"
xml=xml+Ex"<dependency>\r\n"
xml=xml+Ex"    <dependentAssembly>\r\n"
xml=xml+Ex"        <assemblyIdentity\r\n"
xml=xml+Ex"            type=\qwin32\q\r\n"
xml=xml+Ex"            name=\qMicrosoft.Windows.Common-Controls\q\r\n"
xml=xml+Ex"            version=\q6.0.0.0\q\r\n"
xml=xml+Ex"            processorArchitecture=\qX86\q\r\n"
xml=xml+Ex"            publicKeyToken=\q6595b64144ccf1df\q\r\n"
xml=xml+Ex"            language=\q*\q\r\n"
xml=xml+Ex"        />\r\n"
xml=xml+Ex"    </dependentAssembly>\r\n"
xml=xml+Ex"</dependency>\r\n"
xml=xml+"</assembly>"

If UpdateResource(hUpdate,RT_MANIFEST,RT_MANIFESTID,MAKELANGID(LANG_JAPANESE,SUBLANG_SYS_DEFAULT),xml,Len(xml))=0 Then
	MessageBox(0,"埋め込み失敗",0,MB_OK)
End If
EndUpdateResource(hUpdate,FALSE)

End
参考までに...。

ページ 11 全ての表示時間は UTC+09:00 です
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/