为程序添加闪屏

闪屏效果的 Java 实现 在上述代码中,我们创建了一个 SplashScreen 实例,并调用 showSplashScreen 方法来显示闪屏界面,并设置显示时间为 2000 毫秒。在 Java 开发中,闪屏效果是指在应用程序启动时,显示一个短暂的介绍界面或加载界面,以提高用户体验和展示应用品牌。本文将介绍如何使用 Java 实现一个简单的闪屏效果,并附上相应的源代码。首先,我们需要创建一个 Java 项目,并在项目中添加所需的资源文件。资源文件可以是应用程序的 logo 图片,也可以是其他需要在闪屏界面中展示的图片或文本。 阅读详情
欢迎回来,读了我的关于“在程序中插入对话框”文章后,很多人问我能不能在程序中插入一个启动画面(以下简称为闪屏)。
    是的,这可以做到,你可以对PE文件注入任何东西,只要你的逆向水平够高。
    事实上我正在考虑做这件事情,所以第一步就是考虑需要做些什么,让我们来想想需要做的所有步骤。
    为什么插入一个闪屏就意味着需要做很多工作……
首先,需要创建一个窗口,有三种方法可以实现。
1、你可以增加一个对话框资源,然后呼叫DialogBoxParamA函数,问题是增加一个对话框资源没有那么简单,如果程序没有资源段你还得为它添加资源段,那就更难了。
2、添加代码,那意味着你不得不构造一个WNDCLASSEX结构,呼叫RegisterClassEx和Create WindowEx,并注入对话框循环代码。麻烦的是你必须注入大量的代码,而且需要在输入表中引入要用到的大量的API。
3、我认为最好的办法是在内存中添加对话框窗口(只要构造一个DLGTEMPLATE结构),并且呼叫CreateDialoglndirect。
    另外,你还必须插入一个Windowproc/DialogProc回调函数代码(三个步骤都要),这就意味着需要做更多的工作(想想那些对话框的循环语句)。
    我们的BMP图象又该怎样处理?第一个问题就是它应该存在哪里,这里也有几种方法:
1、将图象资源放入程序的资源段(就象处理对话框资源一样)。
2、不把它放入程序里面,所以你将有两个文件,一个是图象文件,一个PE文件。
3、更好的方法是,复制图象文件的所有字节到一个区段。
    然后在文件中引入图象,并贴在一个窗口中,再设置一个计时器,让闪屏在定义的时间内关闭。
・搜索另一种方法
    我在考虑另一种方法,使我们不用注入这么多代码。
    我在网络上发现了“John Peloquin”写的一个非常好、非常有意思的代码叫做“远程注入补丁”,它是利用CreateProcess远程注入任何一个PE文件的补丁,在目标程序中申请内存空间利用WriteProcessMemory注入你需要的DLL文件,你可以自己看一下源码……
    但是这种方法有两个顾虑:首先,我们现在有三个文件:PE文件、增加闪屏功能的DLL文件,还有个补丁;其次, CreateRemotoThread API函数只能适用于WinNT/2K/XP系统。
    那是不是有不用补丁的方法呢?是的,我们只要写一个DLL文件,它包含闪屏图象,并将代码写入DLLMan函数中的DLL-PROCESS-ATTACH分支,然后在目标文件的输入表中添加这个DLL文件,需要用到DLL的输出功能。
・写DLL文件
    下面是用C语言写的非常简单的一小段DLL代码……
#include <windows.h>   
#include "resource.h"     
#pragma comment(linker,"/ENTRY:DllMain") // 设置DllMain函数入口
extern "C" int Func1(); // 声明输出函数
extern "C" int Func1()  
{
    return 0;
}
BOOL DlgProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
{
    DWORD TimerID;
      switch(msg)
    {
        case WM_CLOSE:
        {
            KillTimer(hwnd, TimerID);
            EndDialog(hwnd, 0);
        }
        break;
        case WM_INITDIALOG:
        {
            TimerID = SetTimer(hwnd, 466, 3000, NULL);
        }
        break;
        case WM_TIMER:
        {
            SendMessage(hwnd, WM_CLOSE,0,0);
        }
        break;
        default:break;    }
    return FALSE;
}
// :: Dll EntryPoint
BOOL APIENTRY DllMain( HANDLE hModule, DWORD fdwReason,LPVOID lpReserved)
{    switch(fdwReason)
    {
        case DLL_PROCESS_ATTACH: 
        {
            DialogBoxParamA(hModule, MAKEINTRESOURCE(101), NULL, (DLGPROC)DlgProc, NULL);        }
        break;
        case DLL_PROCESS_DETACH:
        {
         }
        break;
    }
    return TRUE;
}
 
[C用户注意: 不要忘记在源码文件目录下放置.def文件.否则在输出表中将看不到输出函数。代码应该是这样的:
LIBRARY 
EXPORTS 
  Func1 
]
    确实是非常简单的DLL代码,不是吗?图象文件放在对话框窗口中存储到资源中,然后呼叫DialogBoxParam显示对话框窗口,计时器设置为3秒后进入真正的程序,有两点非常重要。
――DialogBoxParamA必须在DLLMain函数中的DLL-PROCESS-ATTACH分支中引用。当程序被加载时,DLL-PROCESS-ATTACH的值发送到DLL。这就是我们所需要的。
――DLL的输出函数我们命名为FuncI,这个函数没什么用,我们从来不去用它,但是它又是必须的因为这个DLL要求必须至少有一个输出函数。
    好了,我希望大家都能清楚每个步骤,如果你不明白再看最后一步。
・最后一步
    现在我们已经做好了我们需要的DLL,让我们看看如何为可执行文件添加闪屏功能,下面是为ProcessView添加闪屏的例子。
    我们都很懒惰,不想手工添加DLL到输入表,所以我们可以用SantMat写的IIDKing来实现,打开IIDKing加载ProcessView,这个实例中,DII的名字是tutsplash.dll,输出函数是FuncI(建议用IIDKing2.01),选中后,按下添加按钮就可以了。
    现在你运行程序就可以看到漂亮的闪屏了,Btw:非常重要的一点,目标文件和DLL文件一定要在同一个目录下。
    我们所做的仅仅是舔加这个DLL到输入表。如果你运行程序,它将会连接输入表中所有的DLL文件。所以ProcessView现在也加载tutsplash.dll并自动发送DLL_PROCESS_ATTACH…
    希望你能够理解相关的联系,知道它的工作原理。所以你现在可以很容易地为程序增加闪屏而不需要复杂的逆向工作。 
闪屏添加器(给程序加弹出窗口) 闪屏添加器是一个给程序加弹窗图片的工具。弹出窗口可以控制在启动或结束时。 这个是我用原版重新汉化,绿色版。 立即下载

相关推荐

闪屏添加器

闪屏添加器

100款绿色重量级软件

1.序列号输入器(155K)  装各种软件时输入序列号是件麻烦事,因为有的是用"-"分隔开来的,得多次输入才行。但有了这个序列号输入器你只需:1、将序泻趴奖吹郊羟邪濉?、将光标定位到序列号输入处。3、按F10键就行了,非常方便。本站下载 2.3721 卸载程序(53K)  许多人认为3721是"强盗","垃圾",很想把它从系统中卸除,但有时候却无法彻底删除,用这个小工具就好了,打开后它会自动搜索需

supervise的专栏 4万+

闪屏添加器 (Splasher) 绿色美化版

闪屏添加器 (Splasher) 绿色美化版 这是一个可以给EXE文件添加闪屏的小工具。 只有一个单文件。 该工具操作极其简单、丝毫不会编程的朋友也可以随意给自己喜爱的EXE文件添加闪屏!

给android程序添加页面,向 Android 应用中添加闪屏页和启动页

向 Android 应用中添加闪屏页和启动页开启 Flutter 的体验需要短暂地等待 Dart 的初始化。一个完整的 Flutter 应用还额外需要 Android 应用程序标准的初始化时间。Flutter 支持在 Android 应用初始化的时候展示启动页,并且还支持在你的 Flutter 初始化时展示闪屏页。本指南展示如何在 Flutter 编写的 Android 应用中使用启动页和闪屏页。...

weixin_42406647的博客 771

闪屏制作-程序启动动画 Demo

闪屏制作-程序启动动画 Demo

闪屏实现小程序

在做程序时可以在开端用上,使程序变得更美观、高级

JavaFX: 修改闪屏,启动时的欢迎界面

我们需要在resources上创建一个文件,这个由自己定义就好了。然后将你的闪屏资源放进去即可,它是支持使用gif动图的。这个就是我们所说的闪屏,这个所谓的闪屏界面,其实根本原因是需要加载程序内容,至于怎么加载程序内容,我们开发是不需要去处理的。先创建一个闪屏类,例如我定义的就是BootView.java。我们在启动pc端应用时,会有一个类似于加载程序的界面,如下。这个闪屏类是非常简单的,不需要什么过多的技术点。修改这个闪屏也是非常简单的.

无敌小熊 1149

Xiaojie雷达之路---毫米波雷达基础知识---角度估计

本篇文章主要介绍毫米波雷达的基础知识中的角度估计,对于本篇文章主要回答5个问题 1.在雷达的前方,如何估计前方一个物体的角度 2.角度测量的准确性 3.如何测量多个物体的角度 4.雷达可测的角度的视场最大值为多少 5.角度分辨率取决于什么因素 文章目录估计雷达前面一个物体的角度角度测量的准确性雷达的最大角视场测量雷达前方多个距离和速度相同的物体角度分辨率角度估计的流程 估计雷达前面一个物体的角度 估计一个物体的角度,最少需要两根接收天线 发射天线发送一个chirp,经过物体发射后信号,信号分别被第一根天

XiaoJie的博客 1万+

软件启动闪屏的原理与实现

想给公司的软件加一个启动闪屏,看看有现成的源代码没有,结果上网看了一下,没有合适的,有人做了闪屏,却是阻塞式的,也就是说什么都不干,让主程序Sleep,光闪屏给用户看,这哪是闪屏嘛,连闪屏的基本作用都没弄明白,就开始发文章号称实现了多帅的效果,服了。之后自己写了一个,这里共享一下闪屏的思路。 闪屏的本意,是因为软件启动过程比较慢,动态显示一些信息给用户,防止用户过于傻等而不爽。以前VC6时代可以

半个网虫的专栏 2397

小米CyberGear微电机驱动代码(CAN总线驱动,含开源地址)

小米CyberGear微电机驱动代码(ROS下的CAN总线驱动,含开源地址)

2302_80751833的博客 4444

Ubuntu22.04 apt 安装 ROS1 ROS Noetic Ninjemys

ubuntu 22.04 apt-get 安装 ros1 ros Noetic 最新版

autolabor的博客 5万+

java swing进度条_Java Swing创建自定义闪屏:在闪屏上添加Swing进度条控件(转)

本文将讲解如何做一个类似MyEclipse启动画面的闪屏,为Java Swing应用程序增添魅力。首先看一下效果图吧,原理很简单,就是创建一个Dialog,Dialog有一个进度条和一个Label用来分别显示进度和进度信息,而Dialog的宽度和高度正是闪屏图片的宽度和高度。然后将闪屏图片贴到Dialog中作为整个窗体的背景,Dialog显示时覆盖闪屏所处的区域。由于Dialog显示时闪屏并没有消...

weixin_39648539的博客 294

链式中介效应结果解读:从Bootstrap置信区间到实践意义

本文深入解析链式中介效应结果的解读方法,从Bootstrap置信区间的应用到实践意义的阐述。通过实际案例展示如何分析总效应、直接效应和间接效应,并强调效应量评估的重要性。文章还提供了构建逻辑解释的三步法,以及敏感性分析和报告撰写的实用技巧,帮助研究者准确解读链式中介效应。

weixin_33690367的博客 718

java闪屏登陆_【原创】 java 启动画面(闪屏)splash

关于java jar包启动画面(闪屏)splash目的:在启动jar时,显示启动画面,并动态显示文字内容。具体代码如下:package cmsdb.gui;import java.awt.Color;import java.awt.Dimension;import java.awt.Font;import java.awt.Graphics2D;import java.awt.SplashScre...

weixin_36342356的博客 325

终端运行脚本报: 因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fw link/?LinkID=135170 中的 about_Execution_

PowerShell 执行策略是一种安全机制,用于控制哪些脚本可以在系统上运行。默认情况下,Windows 系统会设置较为严格的执行策略,以防止恶意脚本的执行。执行策略有以下几种常见级别:Restricted(限制):不允许运行任何脚本。AllSigned(全部签名):仅允许运行经过数字签名的脚本。RemoteSigned(远程签名):允许运行本地脚本,但远程下载的脚本需要数字签名。Unrestricted(无限制):允许运行所有脚本,但会警告未签名的脚本。

欢迎来到我的技术博客!这里是一个专注于软件开发的地方,我将分享关于 Java、Python、C++ 和易语言等多种编程语言的教程、技巧、最佳实践以及开发经验。 5089

kettle9.0+ 连接Hadoop报错

kettle bug

x²+(y-√³x²)²=1的博客 1562

Winform解决闪屏问题

不喜勿喷,萌新在此谢过!

LYQ的博客 3023

Spring AI提示词模板应用

本文介绍了使用SpringAI提示词模板的配置方法,主要步骤包括:1)在JDK17和SpringBoot3.4.4环境下引入spring-ai-alibaba1.0.0.2依赖;2)配置application.yml文件;3)创建测试控制器类处理提示词模板(.st文件);4)通过模板变量动态生成AI回复内容。演示了如何通过@RequestParam设置默认参数,实现无需前端传参即可测试AI回复功能,最终完成了一个SpringAI提示词模板的应用Demo。

wjianwei666的专栏 201

在您的应用程序添加启动动画

这是弥补2014.11.30 虽然你可能认为你需要编写闪屏的代码,苹果已经可以非常轻松地把它做在Xcode中。不需要任何编码。你只需要做的是设置一些配置。 什么是闪屏 对于那些新学代码的人,可能没有听说过“闪屏”把,让我先作一个简单的解释。闪屏是常见于iOS应用程序,以及其他桌面应用程序。这是你启动一个应用程序时,你看到的第一个画面。通常情况下,初始屏幕是一个覆盖整个屏幕的图像,消失后...

weixin_34337265的博客 140

微信文件自动归档!手把手教你用OpenClaw搭个自己的“数字员工”,告别重复劳动

很多人说“AI是未来”,但未来不是靠喊口号的。OpenClaw的真正价值,是让你把重复劳动交出去,把时间留给真正需要创造力的事。这事真能干,而且不难。下载OpenClaw(GitHub仓库按我写的步骤跑一遍遇到坑,评论区留言——我亲自帮你看作者后记:上周五,我让AI自动归档了文件后,终于在5点准时下班。回家路上,我给它发了条消息:“干得漂亮”。它没回,但我知道——它在默默等我的下一条指令。

2601_94871597的博客 415

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

在DevExpress程序中使用SplashScreenManager控件实现启动闪屏和等待信息窗口

  在我很早的WInform随笔《WinForm界面开发之"SplashScreen控件"》有介绍如何使用闪屏的处理操作,不过那种是普通WInform和DevExpress都适用的方案,如果是基于DevExpress,那么可以使用更简便的方式,就是本文介绍的在DevExpress程序中使用SplashScreenManager控件实现启动闪屏和等待信息窗口,这个SplashScreenManag...

weixin_33743248的博客 609

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

vc中为应用程序制作启动画面的简单方法

Make a Splash Window for your application                                                             By  kv300  040723 step 1. first, add the following two files SplashWindow.cpp and SplashWindow.h

回家念经(kv300)--编程之禅 2330

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

在你的应用程序添加启动画面

虽然你可能认为你需要编写闪屏的代码,苹果已经可以非常轻松地把它做在Xcode中。不需要任何编码。你只需要做的是设置一些配置。 什么是闪屏 对于那些新学代码的人,可能没有听说过“闪屏”把,让我先作一个简单的解释。闪屏是常见于iOS应用程序,以及其他桌面应用程序。这是你启动一个应用程序时,你看到的第一个画面。通常情况下,初始屏幕是一个覆盖整个屏幕的图像,消失后加载主屏幕。下图显示了几种闪屏

chenyxh2005的专栏 565

解决 APP启动白屏黑屏问题

闪屏页简介 闪屏页,我们手机上的每个 APP 几乎都有自己的闪屏页,就是在真正进入程序前,会有一个页面停顿几秒钟。其实我们完全可以充分利用好这几秒钟做很多的程序初始化了启动。 为什么我的 APP 启动会白屏或者黑屏 有时候我们会发现,我们在启动我们自己的 APP 的时候,总是有那么点时间是白屏(黑屏),经过了白屏(黑屏)后才会进入我们的 APP。那么这是为什么呢? 模拟效果 下面我们模拟一下白屏...

weixin_34261739的博客 348
上一篇: Bypassing PatchGuard on Windows x64
下一篇: 如何从内核中检测ROOTKIT和剥离ROOTKIT
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值