当前位置:首页 » 操作系统 » 开机启动源码

开机启动源码

发布时间: 2024-05-25 12:44:37

⑴ Android源码发开记录-修改开机logo启动页、开机动画

开机logo主要与kernel/drivers/video/logo下的logo_linux_clut224.ppm有关。
现kernel源码内一般以提供厂商的logo为主。
我们需要替换的文件也就是该ppm文件。

这里直接提供png转ppm的sh脚本。前提是必须安装了以下工具(pngtopnm,pnmquant,pnmtoplainpnm)

./png2ppm.sh XX.png

用生成的同名ppm文件替换logo_linux_clut224.ppm。
同时删除kernel/drivers/video/logo下的logo_linux_clut224.c和logo_linux_clut224.o

Android开机动画主要是由一个zip格式的压缩包bootanimation.zip组成,压缩包里面包含数张png格式的图片,还有一个desc.txt的文本文档,开机时按desc.txt里面的指令,屏幕上会按文件名称顺序连续的播放一张张的图片。、

这个一般flash制作或者选择交给美工制作了。图片张数尽量不要太多。
关键:图片一定要按顺序命名。

重点在于desc.txt文件。
其中1188 624代表分辨率,表示帧动画以这个分辨率显示。分辨率不是越高越好,容易造成开机卡顿,不流畅。
25表示的是帧数,就是每秒播放的图片数量。
p1(代表着播放一次) 0(空指令)part0 */这句指令就代表这part0文件夹内的图片只按名称顺序播放一次
p0(重复播放)0 (空指令)part1 */这一句指令代表着part1文件夹内的图片会循环反复播放

打包要用zip格式,而不是rar格式。另外压缩的时候压缩方式要选择存储。将压缩包名修改为bootanimation.zip。

1)可直接将生成的bootanimation.zip放入设备/system/meida目录下重启验证开机动画效果。
2)源码上可直接将bootanimation.zip拷贝至/out/target/proct/rk3288/system/media目录下,最终打包进成型固件中。

⑵ 如何用C#语言通过服务来实现开机启动

很多开机启动程序仅仅加在启动项里面,只有登陆后才真正启动。windows服务在开机未进行用户登录前就启动了。正是利用这咐型辩一点,解决一些服务器自动重启后特定软件也自动启动的问题。
1.新建一个服务项目 visual C#----windows----windows服务;
2.添加一个租手dataset(.xsd),用于存储启动目标的路径,日志路径等。
在dataset可视化编辑中,添加一个datatable,包含两列 StartAppPath 和 LogFilePath。分别用于存储目标的路径、日志路径。
*我认为利用dataset.xsd存储配置参数的优势在于可以忽略xml解析的具体过程直接使用xml文件。
在dataset中 提供了ReadXml方法用于读取xml文件并将其转换成内存中的一张datatable表,数据很容易取出来!同样,WriteXml方法衡缺用于存储为xml格式的文件,也仅仅需要一句话而已。
3. program.cs文件 作为程序入口,代码如下:
view plain to clipboardprint?
using System.Collections.Generic;
using System.ServiceProcess;
using System.Text;

namespace WindowsServices_AutoStart
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
static void Main()
{
ServiceBase[] ServicesToRun;

// 同一进程中可以运行多个用户服务。若要将
// 另一个服务添加到此进程中,请更改下行以
// 创建另一个服务对象。例如,
//
// ServicesToRun = new ServiceBase[] {new Service1(), new MySecondUserService()};
//
ServicesToRun = new ServiceBase[] { new WindowsServices_AutoStart() };

ServiceBase.Run(ServicesToRun);
}
}
}
using System.Collections.Generic;
using System.ServiceProcess;
using System.Text;
namespace WindowsServices_AutoStart
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
static void Main()
{
ServiceBase[] ServicesToRun;
// 同一进程中可以运行多个用户服务。若要将
// 另一个服务添加到此进程中,请更改下行以
// 创建另一个服务对象。例如,
//
// ServicesToRun = new ServiceBase[] {new Service1(), new MySecondUserService()};
//
ServicesToRun = new ServiceBase[] { new WindowsServices_AutoStart() };
ServiceBase.Run(ServicesToRun);
}
}
}
4.service.cs主文件,代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.IO;
using System.Diagnostics;
using System.ServiceProcess;
using System.Text;
namespace WindowsServices_AutoStart
{
public partial class WindowsServices_AutoStart : ServiceBase
{
public WindowsServices_AutoStart()
{
InitializeComponent();
}
string StartAppPath =""; //@"F:\00.exe";
string LogFilePath ="";// @"f:\WindowsService.txt";
protected override void OnStart(string[] args)
{
string exePath = System.Threading.Thread.GetDomain().BaseDirectory;
//
if (!File.Exists(exePath + @"\ServiceAppPath.xml"))
{
dsAppPath ds = new dsAppPath();
object[] obj=new object[2];
obj[0]="0";
obj[1]="0";
ds.Tables["dtAppPath"].Rows.Add(obj);
ds.Tables["dtAppPath"].WriteXml(exePath + @"\ServiceAppPath.xml");
return;
}
try
{
dsAppPath ds = new dsAppPath();
ds.Tables["dtAppPath"].ReadXml(exePath + @"\ServiceAppPath.xml");
DataTable dt = ds.Tables["dtAppPath"];
StartAppPath = dt.Rows[0]["StartAppPath"].ToString();
LogFilePath = dt.Rows[0]["LogFilePath"].ToString();
}
catch { return; }

if (File.Exists(StartAppPath))
{
try
{
Process proc = new Process();
proc.StartInfo.FileName = StartAppPath; //注意路径
//proc.StartInfo.Arguments = "";
proc.Start();
}
catch (System.Exception ex)
{
//MessageBox.Show(this, "找不到帮助文件路径。文件是否被改动或删除?\n" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
FileStream fs = new FileStream(LogFilePath, FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter m_streamWriter = new StreamWriter(fs);
m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);
m_streamWriter.WriteLine("WindowsService: Service Started" + DateTime.Now.ToString() + "\n");
m_streamWriter.Flush();
m_streamWriter.Close();
fs.Close();
}
}
protected override void OnStop()
{
try
{
// TODO: 在此处添加代码以执行停止服务所需的关闭操作。
FileStream fs = new FileStream(LogFilePath, FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter m_streamWriter = new StreamWriter(fs);
m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);
m_streamWriter.WriteLine("WindowsService: Service Stopped " + DateTime.Now.ToString() + "\n");
m_streamWriter.Flush();
m_streamWriter.Close();
fs.Close();
}
catch
{
}
}
}
}

5.启动调试,成功时也会弹出一个对话框大致意思是提示服务需要安装。
6.把Debug文件夹下面的.exe执行程序,安装为windows系统服务,安装方法网上很多介绍。我说一种常用的:
安装服务
访问项目中的已编译可执行文件所在的目录。
用项目的输出作为参数,从命令行运行 InstallUtil.exe。在命令行中输入下列代码:
installutil yourproject.exe
卸载服务
用项目的输出作为参数,从命令行运行 InstallUtil.exe。
installutil /u yourproject.exe
至此,整个服务已经编写,编译,安装完成,你可以在控制面板的管理工具的服务中,看到你编写的服务。
7.安装好了之后在系统服务列表中可以管理服务,这时要注意将服务的属性窗口----登陆----“允许于桌面交互”勾选!这样才能在启动了你要的目标程序后不单单存留于进程。在桌面上也看得到。
8.关于卸载服务,目前有两个概念:一是禁用而已;一是完全删除服务。 前者可以通过服务管理窗口直接完成。后者则需要进入注册表“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services”找到服务名称的文件夹,整个删掉,重新启动电脑后,服务消失。
9.扩展思考:经过修改代码,还可以实现:启动目标程序之前,检测进程中是否存在目标程序,存在则不再次启动

⑶ 易语言开机启动源码

' 就两行代码
' 开机启动如下:(只是一行)

写注册项 (#本地机器, “software\microsoft\windows\CurrentVersion\Run\ZDYY”, 取运行目录 () + “\” + 取执行文件名 ())

' 取消开机启动如下:

删除注册项 (#本地机器, “software\microsoft\windows\CurrentVersion\Run\ZDYY”)

⑷ 璺姹傛槗璇瑷鏁翠汉寮链哄惎锷ㄥ瘑镰佹簮镰

杩欎釜寰堢亩鍗 涓ゅ彞浠g爜鎼炲畾 宸叉祴璇曞畬姣

热点内容
数字密码人格是什么原理 发布:2024-11-27 03:46:34 浏览:426
华为怎么看手机的配置 发布:2024-11-27 03:27:42 浏览:381
php函数作用域 发布:2024-11-27 03:26:11 浏览:176
pythonasteval 发布:2024-11-27 03:21:14 浏览:563
电脑服务器机什么意思 发布:2024-11-27 03:18:59 浏览:837
本地存储是否允许 发布:2024-11-27 03:08:02 浏览:411
adc的电脑密码是多少 发布:2024-11-27 03:01:54 浏览:965
会员管理系统php 发布:2024-11-27 02:15:41 浏览:235
企业php网站系统 发布:2024-11-27 02:14:14 浏览:254
佛滔算命源码 发布:2024-11-27 02:11:01 浏览:765