以下是网络上编写的代码供参考:
unit frmTestEmbedAppinterface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls
type
TForm1 = class(TForm)
pnlApp: TPanel
procedure FormCreate(Sender: TObject)
procedure FormClose(Sender: TObject var Action: TCloseAction)
procedure FormResize(Sender: TObject)
private
{ Private declarations }
public {Public declarations }
升哪槐 end
var
Form1: TForm1
hWin: HWND = 0
implementation
{$R *.dfm}
type
// 存储窗体信息
PProcessWindow = ^TProcessWindow
TProcessWindow = record
ProcessID: Cardinal
FoundWindow: hWnd
end
// 窗体枚举函数
function EnumWindowsProc(Wnd: HWND ProcWndInfo: PProcessWindow): BOOL stdcall
var
WndProcessID: Cardinal
begin
GetWindowThreadProcessId(Wnd, @WndProcessID)
if WndProcessID = ProcWndInfo^.ProcessID then
begin
ProcWndInfo^.FoundWindow := Wnd
Result := False //已找到,故停止 EnumWindows
end
else
Result := True //继续查找
end
//由 ProcessID 查找窗体 Handle
function GetProcessWindow(ProcessID: Cardinal):HWND
var
ProcWndInfo: TProcessWindow
begin
ProcWndInfo.ProcessID := ProcessID
ProcWndInfo.FoundWindow := 0
EnumWindows(@EnumWindowsProc, Integer(@ProcWndInfo)) // 查找窗体
Result := ProcWndInfo.FoundWindow
end
// 在 Panel 上内嵌运行程序
function RunAppInPanel(const AppFileName: string ParentHandle: HWND var WinHandle:
HWND): Boolean
var
si: STARTUPINFO
pi: TProcessInformation
begin
Result := False
// 启动进程
FillChar(si, SizeOf(si), 0)
si.cb := SizeOf(si)
si.wShowWindow := SW_SHOW
if not CreateProcess(nil, PChar(AppFileName), nil, nil, true,
CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil, si, pi) then Exit
// 等缓空待进吵友程启动
WaitForInputIdle(pi.hProcess, 10000)
// 取得进程的 Handle
WinHandle := GetProcessWindow(pi.dwProcessID)
if WinHandle > 0 then begin
// 设定父窗体
Windows.SetParent(WinHandle, ParentHandle)
// 设定窗体位置
SetWindowPos(WinHandle, 0, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOZORDER)
// 去掉标题栏
SetWindowLong(WinHandle, GWL_STYLE, GetWindowLong(WinHandle, GWL_STYLE)
and (not WS_CAPTION) and (not WS_BORDER) and (not WS_THICKFRAME))
Result := True
end
// 释放 Handle
CloseHandle(pi.hProcess)
CloseHandle(pi.hThread)
end
procedure TForm1.FormClose(Sender: TObject var Action: TCloseAction)
begin
// 退出时向内嵌程序发关闭消息
if hWin > 0 then PostMessage(hWin, WM_CLOSE, 0, 0)
end
procedure TForm1.FormCreate(Sender: TObject)
const
App = 'calc.exe'
begin
pnlApp.Align := alClient
// 启动内嵌程序
if not RunAppInPanel(App, pnlApp.Handle, hWin) then
ShowMessage('App not found')
end
procedure TForm1.FormResize(Sender: TObject)
begin
// 保持内嵌程序充满 pnlApp
if hWin <> 0 then
MoveWindow(hWin, 0, 0, pnlApp.ClientWidth, pnlApp.ClientHeight, True)
end
end.
//请自己根据需要修改procedure AddLink
var
tmpObject : IUnknown
tmpSLink : IShellLink
tmpPFile : IPersistFile
PIDL : PItemIDList
StartupDirectory : array[0..MAX_PATH] of Char
LinkFilename : WideString
linkshortname:string
begin
tmpObject := CreateComObject(CLSID_ShellLink)//创建建卜备立快捷方式的外壳扩展
tmpSLink := tmpObject as IShellLink//取得接口
tmpPFile := tmpObject as IPersistFile//用来储存*.lnk文件的接口
tmpSLink.SetPath(pChar(ExtractFilePath(application.exename)+ExtractFileName(Application.ExeName)))
//设定nFolder所在路径
tmpSLink.SetWorkingDirectory(pChar(ExtractFilePath(application.exename)))//设定简弊森工作目录
SHGetSpecialFolderLocation(0,CSIDL_DESKTOPDIRECTORY,PIDL) //获得桌面的Itemidlist
SHGetPathFromIDList(PIDL,StartupDirectory)//获得桌面路径
//linkshortname:=Copy(ExtractFileName(Application.ExeName),0,Length(ExtractFileName(Application.ExeName))-4)
linkshortname:='2017居民医保登记'
LinkFilename 拦亩:= string(StartupDirectory)+'\'+linkshortname+'.lnk'
tmpPFile.Save(pWChar(LinkFilename),FALSE)
//保存*.lnk文件
//showmessage('已经成功添加快捷方式'''+linkshortname+'.lnk''!')
end
你是想要像Win98滚动文字的屏幕保护那种意思的吗如果是 那用Word2000就可以
运行Word2000,新建一空白Web文档,然后点击视图|工具栏|Web工具箱,就会出现Web工具箱,最后一个图标就是滚动文字框的图标,单击该图标,就会出现滚动文字对话框,在"请在此键入滚动文字"下面空白框内输入你所想好的文字(你输入的文字将最终亮困显示在屏幕上),然后选择滚动文字的滚动方式、背景颜色、滚敬陆念动方向、滚动次数及滚动速度,经过一番 *** 作之后,你可以在最下面的预览框里很直观地看到你所设置的效果。一切OK后退出滚动文字对话框。
再对文字进行格式化(因为Word2000对滚动文字的设置默认为三号仿宋自动颜色),选中插入滚动文字框的当前行,然后对当前行文字的大小、颜色、修饰等进行格式化,滚动文字框内的文字就会跟你所设置的颜色、大小、修饰等一样,立即在页面上显示出来。
然后设置页面背景了,单击格式|背景,在背景工具栏里有填充、颜色和水印三种效果,依个人喜爱而进行选择。本人在填充效果里面发现有一项是填充图片,可以插入自己喜爱的图片作为背景(这个背景也就是最后直接显示在桌在上的墙纸背景)。完成这一步后就是存盘了(注意文件要存为Web 页),悉闹单击文件另存为C盘(假设你的Windows装在C盘下面)WindowsWebwallpaper目录下面,(桌面墙纸存放在这个目录下面)存盘后,退出Word2000。右键单击桌面,点击属性,在背景对话框内,在"选择Html文档或图片"下面你是不是看到了你刚才所编辑的Html文档的名称,单击它,然后确定。桌面上就会显示出你设置的Html文档的墙纸,看到滚动文字了吧?如果你对你所设置的颜色、滚动方式等不满意,你可以重新打开这篇文档进行编辑,直到自己满意为止。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)