如何让手机主页背景变成摄像头代码

如何让手机主页背景变成摄像头代码,第1张

android摄像头去背景代码,Android《第一行代码》-调用摄像头拍照问题解决

说明:由于在测试的时候使用的是Android 71的机器,代码会出现以下问题,

(1)APP安装在机器上实测会出现调用相机无法打开的现象;

(2)APP调用裁剪工具的时候会有Toast提示“无法加载此”。

Step 1 新建一个activity_mainxml布局,这个没什么问题。

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

android:id="@+id/take_photo"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="拍照"/>

android:id="@+id/image_view"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_horizontal"/>

Step 2 新建MainActivity,以下是郭霖大神书中原来的代码。代码中比较难以理解的地方注释都写的很详细。

public class MainActivity extends AppCompatActivity {

public static final int TAKE_PHOTO = 1;

public static final int CROP_PHOTO = 2;

private Button takePhoto;

private ImageView imageView;

private Uri imageUri;

@Override

protected void onCreate(Bundle savedInstanceState) {

superonCreate(savedInstanceState);

setContentView(Rlayoutactivity_main);

takePhoto = (Button)findViewById(Ridtake_photo);

imageView = (ImageView)findViewById(Ridimage_view);

takePhotosetOnClickListener(new ViewOnClickListener() {

@Override

public void onClick(View v) {

File outputImage = new File(EnvironmentgetExternalStorageDirectory(),

"maybejpg");

if(outputImageexists()){

outputImagedelete();

}

try {

outputImagecreateNewFile();

} catch (IOException e) {

eprintStackTrace();

}

//将File对象转换成Uri对象,因为Uri对象标识着maybejpg这张的唯一地址。

//由于Intent能传递的数据空间有限,所以需要转化成Uri

//大用Uri,小用Bitmap

//以下代码解决了Android 70 打开相机崩溃的问题

if(BuildVERSIONSDK_INT > 24){

imageUri = FileProvidergetUriForFile(MainActivitythis,

"comexampleandroidchoosepicdemofileprovider",outputImage);

}else{

imageUri = UrifromFile(outputImage);

}

//Intent intent = new Intent("androidmediaactionIMAGE_CAPTURE");

Intent intent = new Intent(MediaStoreACTION_IMAGE_CAPTURE);

intentputExtra(MediaStoreEXTRA_OUTPUT,imageUri);

//第一个参数:一个Intent对象

//第二个参数:如果> = 0,当Activity结束时requestCode将归还在onActivityResult()中,

//以便确定返回的数据是从哪个Activity中返回

startActivityForResult(intent,TAKE_PHOTO);

}

});

}

/第一个参数:这个整数requestCode提供给onActivityResult,是以便确认返回的数据是从哪个Activity返回的。

这个requestCode和startActivityForResult中的requestCode相对应。

第二个参数:这整数resultCode是由子Activity通过其setResult()方法返回。

第三个参数:一个Intent对象,带有返回的数据。/

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

superonActivityResult(requestCode, resultCode, data);

switch (requestCode){

case TAKE_PHOTO:

if(resultCode == RESULT_OK){

Intent intent = new Intent("comandroidcameraactionCROP");

//以下两行代码适配Android 70 解决了无法加载的问题

intentaddFlags(IntentFLAG_GRANT_READ_URI_PERMISSION);

intentaddFlags(IntentFLAG_GRANT_WRITE_URI_PERMISSION);

intentsetDataAndType(imageUri,"image/");

intentputExtra("scale",true);

intentputExtra(MediaStoreEXTRA_OUTPUT,imageUri);

startActivityForResult(intent,CROP_PHOTO);

}

break;

case CROP_PHOTO:

if(resultCode == RESULT_OK){

// 因为imageUri是Uri类型的,需要转换才能被decodeStream使用

// 使用getContentResolver()

// 因为在Android系统里面,数据库是私有的。

// 一般情况下外部应用程序是没有权限读取其他应用程序的数据。

// 如果你想公开你自己的数据,你有两个选择:

// 你可以创建你自己的内容提供器(一个ContentProvider子类)或者

// 你可以给已有的提供器添加数据-如果存在一个控制同样类型数据的内容提供器且你拥有写的权限。

// 外界的程序通过ContentResolver接口可以访问ContentProvider提供的数据,

// 在Activity当中通过getContentResolver()可以得到当前应用的 ContentResolver实例

try {

//解析成Bitmap

Bitmap bitmap = BitmapFactorydecodeStream(getContentResolver()openInputStream(imageUri));

imageViewsetImageBitmap(bitmap);

} catch (FileNotFoundException e) {

eprintStackTrace();

}

}

break;

default:

break;

}

}

}

需要注意的是以下代码是增加了的内容:

//以下代码解决了Android 70 打开相机崩溃的问题

if(BuildVERSIONSDK_INT > 24){

imageUri = FileProvidergetUriForFile(MainActivitythis,

"comexampleandroidchoosepicdemofileprovider",outputImage);

}else{

imageUri = UrifromFile(outputImage);

}

如果不这么处理的话,会导致在调用相机获取 Uri 的时候发生崩溃。

原因很明显,file:// 不被允许作为一个附加的 Uri 的意图,否则会抛出 FileUriExposedException 。其实背后有一个很好的理由,如果文件路径被发送到目标应用程序(相机应用程序在这种情况下),文件将完全访问通过相机应用程序的过程,而不仅仅只有发起者能收到。但让我们考虑一下,实际上是由我们的应用程序去启动摄像头拍照,并保存作为我们的应用程序的代表文件。因此,该文件的访问权限应该是我们的应用程序而不是摄像头应用程序本身。这就是为什么现在 file:// 在 targetSdkVersion 24 中要求每一位开发者都去完成这个任务。参考博文:>

(Dipartimento di Idraulica,Trasporti e Strade,Università degli Studi diRoma“La Sapienza”,Rome,Italy)

DDi Bucci MParotto

(Dipartimento di Scienze Geologiche,Ⅲ Universita degli Studi diRoma,Rome,Italy)

MTozzi

(CNR-CSperil Quaternario e l'Evoluzione ambientale,Rome,Italy)

摘要 现有的地质和地球物理资料还未能对意大利中部的深部地壳结构提供清晰的格架。国家研究项目CROP,尤其是分题项目CROP I将集中研究意大利中部的地壳结构。

已经进行了重力研究。通过对现有资料的新解释,可以对第勒尼安海到亚得里亚海的剖面(对应于CROP I地震测线的测量线路)提出地壳和上地幔背景的二维模型。

这个模型说明,第勒尼安段的岩石圈相对于亚得里亚段的岩石圈具有较低的密度。这两段岩石圈被一中间过渡带所分开,假设此带内有较轻的上地幔楔。已经把它解释为第勒尼安莫霍面之下的亚得里亚地壳岩板的一部分。

在这一基础上,为了理解区域深部背景,现在需要把上述二维模型延拓为三维的。这就可以更好地评价所确定构造的横向发展。本文论述的主题是这种过程的第一步,它仅是研究由于深部构造引起的剩余重力异常的面积展开。我们从布格异常图(267g/cm3)开始,并对地形表面应用剥离法消除地表构造的影响。

用这一方法得出了意大利中部的新剩余重力图。在研究区中北部可以识别出优势的南北向的剩余重力异常,它与亚得里亚岩板翘曲部分有关。它表明地壳部分的特征,而且证实了CROPⅡ地震测深剖面的定向是恰当的。更复杂的深部结构似乎局限于研究区中南部,说明下地壳和上地幔由北向南发生明显变化〔这种资料也与地震测深(DSS)和震波层析成像资料一致〕。最后,剩余重力图还表明,在研究区中部、第勒尼安海一侧和亚得里亚海一侧,及亚平宁山脉的核部,等值线呈东西向延伸。这时很难看出这几组等值线的真实地质对应关系,包括重要的东西向构造,如41°纬线或中亚得里亚带,而且它们成为争论的有趣题目。

关键词 亚得里亚岩板 第勒尼安岩石圈 重力研究

1 引言

地中海地区的大部分山脉是多个弧形褶皱和冲断层带的块段[9,10,17,19]。这点对于亚平宁山脉特别明显,那里有两个山弧,呈不同的方向和缩短速率[4,7]。地球物理数据(震波层析成像、地震测深剖面等资料[1,20])表明,这种地表背景反映着北亚平宁山脉区相对于南亚平宁山脉区具有不同的岩板特征。在这种总的构造框架内,南、北亚平宁山弧接合带的深部地质背景仍是不清楚的。

为了增进对地下结构的了解,意大利主要研究机构(国家研究中心——CNR、各大学、ENEL、AGIP)正在对地震测深项目CROP(CROsta Profonda,地壳深部探测)进行合作。此项目类似于其他国家的项目BIRPS、COCORPS、DEKORP、ECORS和NFP20。CROPⅡ地震测深剖面线从第勒尼安海到亚得里亚海,是一条中心测线(图1),用于调查南、北亚平宁山弧之间的亚平宁地壳部分。

对这条测线的初步研究提供了检查现有地质和地球物理资料的良好机会[6,22]。在这方面,重力方法起着重要作用,因为它反映着地壳深部的体积分布。已经报道了由第勒尼安海到亚得里亚海的二维重力模型,它对应于CROPⅡ剖面,说明第勒尼安海与亚得里亚海之间的岩石圈密度有显著差别,而且在上地幔中部存在一个地幔楔[3]。

图1 意大利中部地质简图(据文献[6]和[3])

1—火山岩(第四纪);2—造山期后上新世—更新世海相—陆相沉积物;3—第三纪前渊沉积物;4—斜坡和盆地沉积物(三叠纪—中新世);5—碳酸盐岩陆架和陆架边缘沉积物(三叠纪—中新世);6—托斯坎推覆体;7—冲断层;8—正断层;9—走滑断层;10—CROP I地震测深剖面迹线

根据这些结果,本工作的目的是评价由二维模拟确定的深部构造的三维展开,并对CROPⅡ地震测深剖面的最佳方向在其完成之前和完成期间提供进一步的约束条件。

为了做到这一点,研究了剩余重力异常,特别是由深部构造引起的异常。我们从布格异常图(267g/cm3)开始,并用剥离法消除了地表构造效应[2,3]。

这项工作得出了一份意大利中部剩余重力图。在研究区中北部可以辨认出重要的南北向的剩余重力异常,它与岩板的翘曲部分有关,并且证实了这条地震测深剖面的方向是适当的。较复杂的背景似乎局限于研究区中南部,说明下地壳和上地幔从北向南出现重要的变化。

2 地球动力学和地质框架

意大利半岛具有两个主要地质域的特征。第一个域,以亚平宁山脉系为代表,是自晚白垩世以来由于欧洲-非洲大陆碰撞和亚得里亚-爱奥尼亚岩石圈被动沉降而发育起来的造山带。亚平宁山脉是由两主要山弧形成的:北弧和南弧,分别向NE和SE延伸,具有不同的缩短速率[4,7,19]。第二域相当于第勒尼安海边缘。那里沿叠置在挤压构造上的意大利半岛西缘,自晚中新世起发育了与第勒尼安海扩张有关的张性构造特征。从地质和地球物理观点上看,这两个地壳域是不同的(综合在Cavinato et al著作中[6])。

在南、北亚平宁山弧内,经地球物理研究(地震震中、震波层析影像法、其他CROP地震测线的结果等[1,6,22])确定,这两个地壳域同岩板一样是分开的,而现有的地质和地球物理资料还未能对意大利中部的深部地壳结构提供明确的框架。对于这个地震上相对宁静的地区,岩板的存在只是根据重力和地震测深资料的匹配推断的(图2[3,5,20])。

图2 对意大利中部第勒尼安莫霍面(奇维塔韦基亚)下亚得里亚岩板(瓦斯托)的简化二维解释结果(据文献[6],[3])

1—航磁得出的基底;2—下地壳中的低波速层;3—下地壳中的高波速层;4—莫霍面(据[3]修改和简化)

对这些资料得出的二维模型的重要检验,是识别剖面两侧所确定构造的连续性。为了做到这一点,第一步是本文所描述的内容,它包括研究重力异常的面积扩展,尤其是由深部构造引起的重力异常。这里将剩余重力图上的走向与已有的二维模型相匹配,试图得出三维的途径。

3 方法

31 地质方面

意大利中部的地表地质具有4个主要地质区的特征,基本上是亚平宁造山系的一部分,而且是按不同的地层层序和构造背景确定的。从东北到西南,它们是:①已变形的内造山前陆(阿普利亚-亚得里亚前陆);②已变形的前沿坳陷(亚得利亚海槽);③冲断层带(中亚平宁山脉);④扩张的后陆(第勒尼安盆地)。

对意大利中部的岩层分布和厚度的正确评价,提供了第一步消除布格异常中的地表地质影响。

(1)阿普利亚-亚得里亚前陆是由盆地和高原碳酸盐岩沉积物构成的,其年代自三叠纪至中新世,出露在加尔加诺地区。

(2)亚得里亚海槽为同造山期硅质碎屑沉积物所充填,厚度达数千米,其沉积作用开始于默西拿期。

(3)中亚平宁山脉,是一组冲断层席,发育于中新世,至少在上新世时向阿普利亚-亚得里亚前陆发育。在中生代—新生代期间沿特提斯大洋南缘发育的不同地理单元,在这些冲断层席中遭受了变形。它们是(图1):①阿普利亚碳酸盐岩台地,例如出露在马耶拉山的;②在马西卡东部的真扎诺盆地,以钙质和泥灰质-钙质沉积物为主。向东南,这些沉积物变为富含粘土的,以此确定为向莫利塞盆地的过渡带(在马耶拉山东南可以看到);③拉丁姆-阿布鲁佐碳酸盐岩台地,出露在勒皮尼和辛布鲁伊尼山区。此外,沿山脉的这一部分,主要河谷保存有同造山期的硅质碎屑沉积物,即上托尔顿(N1)—默西拿期前渊部分。亚平宁冲断层带的核部也被连续的走向滑动和(或)拉伸构造所叠覆。特别是这种拉伸作用导致了大的山间盆地的形成(如富西诺盆地[6]),已为数百米厚的河流相和湖相沉积物所充填。

(4)第勒尼安区,由于第勒尼安海张开而受拉伸构造的强烈影响。这次拉伸作用造成巨大的火山杂岩出现(维科、布拉恰诺、科利奥尔巴尼杂岩),它们覆盖在上新世—第四纪海侵的粘土和砂质沉积物上。此外,在CROPⅡ地震测线的西端,广泛出露硅质碎屑、砂质-粘土质沉积物。它们是更内部的古地理域的一部分,在北亚平宁山脉(托斯坎推覆体)发育良好,并可在靠近海岸的滨外深钻孔中见到[4]。

本文所用的布格异常数据按密度267g/cm3作了计算。这个密度值通常用于出露的碳酸盐岩沉积物,因为这种岩石广泛出露于研究区,所以选用了它。这意味着地表碳酸盐岩单元并不影响重力异常走向。

另一方面,这对所有其他沉积物就不是真实的,因为它们的密度一般较低。由于这些沉积物的存在,深部构造产生的区域性布格异常走向,会被地表地质的局部效应所重叠。

为了消除这种影响,第二步是复原由这些沉积物组成的体积。这一部分工作得到FCifelli和FFuniciello的协助。主要是依据已发表的资料(特别是图件、地质剖面和深钻孔资料),对密度不同于267g/cm3的主要沉积物分布区编制了等深度和等厚度图以及详细的剖面。这些地区是:第勒尼安海边缘(托斯坎推覆体、上新世—第四纪海相沉积物、火山岩层)、拉蒂纳河谷(硅质碎屑沉积物)、富西诺平原(湖相和硅质碎屑沉积物)、莫利塞冲断层席(盆地相粘土质沉积物),以及亚得里亚海槽(硅质碎屑沉积物)。一些平行的剖面一般为东西走向,比例尺为1∶250000。

第三步是用许多UTM坐标(和相对高程)确定每条剖面,建立用于连续剥离的数据库[2]。

32 地球物理方面

用于本研究的布格重力异常值取自国家重力数据库,它是按恒定密度267g/cm3计算的,并按3km×3km的网格分布的。这种网格是用意大利各重力台的数据内插得出的(每km2约1台的分布密度)。

研究区位于42°40′~41°20′N纬度之间。本区的布格异常图表示于图3。从区域的观点看,本图的北部自第勒尼安海一侧至亚得里亚海一侧显示出负异常梯度,其最大值相应于亚得里亚前渊的最大厚度。在北部还可观察到与山脉内部相对应的最小梯度。这个最小梯度向阿普利亚前陆与正梯度一起增高。最小梯度的局部点是由于山间盆地的存在引起的。由于布格重力异常是地表和深部构造效应的结果,为了取得仅与深部构造有关的重力异常,滤去了地表构造特征效应,特别是对于上述各组地质剖面确定的每一体积岩石,提出适当的恒定密度值。所用的密度值如下:硅质-泥灰质岩石(莫利塞单元)为25g/cm3,硅质碎屑沉积物(复理石)为24g/cm3,上新世—第四纪海相粘土质沉积物为23g/cm3,山间盆地冲积湖相沉积物为21g/cm3,火山建造为20g/cm3。中生代—新生代碳酸盐岩沉积物的密度定为267g/cm3,因此,不考虑把它剥离去。计算了每个体积的岩石对布格异常图的重力影响,并利用三维重力软件把它消除掉[14]。

图3 研究区的布格异常图(密度为267g/cm3)

4 结果

用这种方法得出的剩余重力图表示于图4。总的来说,我们可以看到,亚得里亚前沿坳陷和富西诺山间盆地的影响消失了。

沿第勒尼安海边缘和对应于加尔加诺海岬的剩余正异常仍能看到。相反,山脉核部具有剩余负异常的特征,这在图的中北部特别明显(23×10-5~25×10-5m·s-2),它从地理上相当于大萨索山地块。这个区域还有一些山间盆地,但没有对它们进行模拟,因为它们的沉积物密度和厚度可能只造成这种异常的小部分(3×10-5~5×10-5m·s-2)。因此,所看到的剩余负异常主要是由于深部构造引起的。如同现有的二维模型[3]所示,它是可以解释的,即由于上地幔中存在低密度楔引起的。

图4 由地壳深部和上地幔构造引起的剩余重力异常图

从第勒尼安区域的最小值到正异常看,等值线显示出明确的南北走向,说明有关的深部构造即俯冲的亚得里亚岩板具有类似的方向。

向南,负异常明显减小,而等值线显示有规则的形式。这似乎表明深部构造有显著变化,因为它不可能向南沿着研究区中北部确定的构造延伸。

最后,第勒尼安海边缘似乎被东西向的等值线分为两段,这表明向南为负重力梯度。与地质特征的直接对比是不可能的。从托斯卡纳到那不勒斯湾地区,由于火成岩和重要的火山杂岩存在,事实上具有高热流值和温度梯度的特征[15],而且一般还具有同第勒尼安海扩张有关的张性地质特征。这些条件会改变深部岩石的性质,引起密度变化,有待进一步详细评价。

5 讨论与地球动力学涵义

将本研究提出的剩余重力图与Bernabili等人[3]发表的二维重力模型相匹配(图2和4),有可能对意大利中部岩石圈特征作出初始的三维解释。

首先,在Bernabili等人的[3]著作中,二维重力模拟允许将莫霍面下的低密度楔解释为向第勒尼安海俯冲的亚得里亚岩石圈的低密度片体。这里提出的剩余重力异常表明,这种构造呈南北走向延续约100km。它向北减小,而向南似乎突然中断,使亚平宁岩石圈的这部分与其北面和南面的岩石圈呈现显著不同,而且支持从CROPⅡ地震测深剖面选定的东西方向。长期以来,意大利中部的亚得里亚岩板的存在与方向是个争论的问题。依据我们的结果,其存在显然得到了证实。另一方面,由于意大利中部没有深震,所以这点得不到任何地震资料所支持,而震中的证据使得对于南、北亚平宁(图2和4)存在向西俯冲的岩板的解释是可接受的[1,13]。在解释对应于意大利中部假设的亚得里亚深部冲断层的区域重力走向时,出现几何学和地球动力学方面的困难。走向由南北突然变为东西可以解释为俯冲岩板的柔性变化的方向。这点可以从整个亚得里亚板块俯冲边缘全沿意大利半岛(北亚平宁山脉和卡拉布里亚弧)的柔性变形方面得到解释。另一方面,这种方向变化可以由岩石圈的一条横推断层引起,此断层切断亚得里亚板块边缘的原先连续性(Patacca等人[19]假设了类似的横推作用)。关于后一种可能性,Favali等人[11]和Gambini与Tozzi[12]最近指出,一些影响亚得里亚前沿坳陷的重要的东西向横推断层具有区域性意义。这些断层被解释为由亚得里亚板块南部的不同地球动力学特性引起的,即南部相对于北部具有较厚和较为刚性的岩石圈。卫星影像和照片阴影的线性构造分析、地震活动性及河流网研究,也都表明有一些重要的东西向线性构造域存在,它们横切亚得里亚海向内亚平宁山脉延伸[8,11,23]。此外,岩石圈的突然断裂似乎对解释意大利中北部前沿坳陷的不同年代和不同岩相的分布是必要的[7]。最后,类似的岩石圈断裂也在其他地球动力学复原中假设过。莫霍面深度图[16,18,20]表明,在意大利中部之下的亚得里亚莫霍面的翘曲走向,有一很重要的不连续性。由于现在还缺乏数据,对意大利半岛这一段的更全面的地球动力学复原,例如根据地震测深(DSS)数据来复原,没能完成。

其次,在研究区中北部,只能认识到南北向构造背景(图4),它向南突然被切断,从而几乎无法确定出任何良好特征的构造。这种明显的差异,说明这里的深部与意大利半岛南部是分离的,而那里的地表资料[19]说明亚平宁山脉的两大山弧之间是联接的。这点也与造成重力解释不很确定的地下复杂几何形态相对应。

最后,研究区中部的剩余重力异常,呈现显著的东西向。这点沿第勒尼安海边缘和加尔加诺海岬北段特别明显,但在山脉核部等地只是可觉察到。

即使目前很难把这几组等值线同已知的地质构造联系起来,但一些东西向的构造在文献上有了报道,包括上述的中亚得里亚带或研究区附近的41°纬线的平行构造[11,12,19,21]。

通过建立三维模型并对此继续进行研究,必将产生一种更详尽的构造框架,并作出更精确的解释。

致谢 本文作者感谢Claudio Cesi和Renato Ventura提供重力数据库和协助,Francesca Cifelli和Francesca Funiciello协作编制剩余重力图,以及Chuck Cluth对本英文稿作了订正。

(沈德富译,叶洪校)

参考文献

[1]AAmato and GSelvaggiTerremoti crostali e sub-crostali nell'Appennino settentrionaleStudi Geologici Camerti,1992,volume speciale(1991/1):CROP 03,75~82

[2]MBernabini,PFavaro and LOrlandoDensity anomaly and its consequenceJApplied Geophysics,1994,32:184~197

[3]MBernabini,DDi Bucci,LOrlando,MParotto and MTozziGravimetric evidence of the deep structure inmountain building:subducted Adriatic crust beneath the Tyrrhenian Moho in Central ItalyJGeodynamics,1996,21(3):223~234

[4]GBig i,DCosentino,MParottoRSartori and PScandoneStructuml Model of ItalyScale 1:500000,CNR,PFGeodinamica,Quaderni de“La Ricerca Scientifica”,1992,114(3)

[5]RCassinis,GPialli,MBroggi and MProsperiDati gravimgtrici a grande scala lungo la fascia del profilo:interrogativi sull'assetto della crosta e del mantelloStudi Geologici Camerti,1992,volume speciale(1991/1):CROP03,41~47

[6]GPCavinato,DCosentino,RFuniciello,MParotto,FSalvini and MTozziConstraints and new problems for ageodynamical modelling of Central Italy(CROP 11Civitavecchia Vasto deep seismic line)BollGeofTeorAppl,1994,36(141~144):159~174

[7]PCipollari and DCosentinoMiocene tectono sedimentary events and geodynamic evolution of the CentralApennine(Italy)RCMNS Interim Colloquium“Neogene Basin Evolution and Tectonics of the Mediterranean Area”,Rabat,Morocco,Abstracts,1994,28~29

[8]MDel Monte,DDi Bucci&ATrigariAssetto morfotettonico della regione compresa tra la Maiella e il Mare Adriatico(Appennino abruzzese)Atti del 77°Congresso Nazionale della Societa Geologica ItalianaMemSocGeolIt,51(in press)

[9]CDoglioniA proposal for the kinematic modelling of W-dipping subductionsPossible applications to the Tyrrhenian-Apennines systemTerra Nova,1991,5:423~434

[10]LEndignoux,IMoretti&FRoureForward modelling of the Southern ApenninesTectonics,1989,8(1095-1):104

[11]PFavali,RFuniciello,GMattietti,GMele&FSalviniAn active margin across the Adriatic Sea(centval Mediterranean Sea)Tectonophysics,1993,219:109~117

[12]RGambini &MTozziTerziary geodynamic evolution of Southern Adria PlateTerra Nova,1996

[13]DGiardini &MVelonaLa sismicita profonda del Mar TirrenoMemSocGeol,It,1992,41:1079~1086

[14]HJGotze &BLahmeyerApplication of three-dimensional interactive modeling in gravity magneticsGeophysics,1988,53:1096~1108

[15]FMongelli,MPuxeddu,PSquarci,LTaffi&GZitoIl flusso di calore e l'anomalia geotermica dell'area tosco-laziale:implicazioni profondeStudi Geologici Camerti,1992,volume speciale(1991/1):CROP 03,399~402

[16]CMorelliRisultati di 31anni(1956~1986)di DSS e di 7 anni(1986~1992)di CROP in ItaliaAtti Convegno

[17]IMoretti &LRoydenDeflection gravity anomalies and tectonics of doubly subducted continental lithosphere:Adriatic and Ionian SeaTectonics,1988,4:875~893

[18]RNicolichCrustal structures from seismic studies in the frame of the European Geotraverse(southern segment)and CROP projectsIn:The Lithosphere in Italy(Boriani et alii Eds),1989,41~61

[19]EPatacca,RSartori&PScandoneTyrrhenian Basin and Apenninic arcs:kinematic relations since LateTortonian timesMemSocGeolIt,1990,45:425~451

[20]SScarascia,ALozej&RCassinisCrustal structures of the Ligurian,Tyrrhgnian and Ionian Seas and adjacentonshore areas interpreted from wide-angle seismic profilesBollGeofTeorAppl1994,34(141~144):5~19

[21]MTozziRotazioni e faglie trascorrenti nell'avampaese apulo:una revisioneStudi Geologici Camerti,1992,volumespeciale(1991/2):CROP 11

[22]MTozzi,GPCavinato&MParotto EdsStudi preliminari all'acquisizione del profilo CROP 11Civitavecchia-

[23]DUWise,RFuniciello,MParotto&FSalviniTopographic lineament swarms:Clues to their origin fromdomain analysis of ItalyGeolSocAmBull,1985,96:952~967

ICROP系统是丰田公司自行开发维护的一个 *** 作系统,它是雷克萨斯L-DMS系统,丰田的TACT系统的基础。雷克萨斯L-DMS系统,丰田的TACT系统等等只是它的一个一个应用的表现。ICROP系统是丰田系统内部使用的专属网络系统,具有加密性。不在这个丰田系统内部的人员不可能接触这个系统。是用一种不常使用的程序编码进行编写的,太细节的东西不方便透露。

win7 64位系统承载了我们中国多数人的期待,还是有许多使用者在学习过程中或许会面对HardCopy问题的时候。很多用户对电脑 *** 作还很生疏,关于HardCopy的情况,不能自己应对。大部分学员都来征求小编HardCopy应该如何搞定?朋友们只有听从以下分析1: 图1就是HardCopy启动后的界面,在窗口中有“Action”( *** 作)、“Option”(选项)、“Edit/Save”(编辑/保存)、“Print”(打印)4个主要的标签。“Option”标签是最常用的标签,需要说明的是,在“Option”标签下有一个“Preview”(预览)区域,靠右边有两个命令按钮:[Adjust](调整)和[Auto crop](自动剪裁)。 2: 假定我们要抓取的窗口已经在屏幕上,启动HardCopy后,单击“New”(新建)命令,对话框自动消失,这时我们可以用鼠标左键拖曳来选定一个区域,当它的大小合适时,也就是要抓取的图像已被圈定时,松开鼠标,屏幕上将会出现一个对话框,等对话框上的[OK]按钮变为黑色时,说明图像已经抓取好了。在选定抓取区域时,也可以单击右键,屏幕上将会出现一个黑线框,黑线框圈定的区域会随着鼠标所指的屏幕元素而变化,鼠标指向窗口标题栏,选定的就是整个窗口,鼠标指向菜单栏,选定的就是菜单栏,依此类推。当圈定了抓取对象后,单击左键即开始抓取。图像抓取好后,单击对话框中的[OK]按钮,又返回到了HardCopy界面。这时在预览窗中已经能看到抓到好的图像。如果不需对图像进行调整,则单击[Save as]按钮进行保存。 进一步处理 抓取图像后,单击[Adjust]或者[Auto crop]命令按钮,出现“Adjust image properties(调整属性)”窗口(如图2),在窗口中有一个 *** 作区,用4条虚线围成一个井字,中央是我们已经抓取的图像。我们可以用鼠标拖曳这4条线,进一步剪裁出需要的部分。如果 *** 作区的模糊,可以通过 *** 作区上方的游标调整显示比例。调整后,单击[OK]即可回到HardCopy界面。对大小或颜色进行调整后,只要未退出HardCopy,在“Adjust image properties”窗口中,单击[Original](原物)按钮,还可以恢复到调整前的样子 就可以解决了。紧接着就和微软技术指导一起研习关于HardCopy详尽的解决方法:

1:

图1就是HardCopy启动后的界面,在窗口中有“Action”( *** 作)、“Option”(选项)、“Edit/Save”(编辑/保存)、“Print”(打印)4个主要的标签。“Option”标签是最常用的标签,需要说明的是,在“Option”标签下有一个“Preview”(预览)区域,靠右边有两个命令按钮:[Adjust](调整)和[Auto crop](自动剪裁)。

2:

假定我们要抓取的窗口已经在屏幕上,启动HardCopy后,单击“New”(新建)命令,对话框自动消失,这时我们可以用鼠标左键拖曳来选定一个区域,当它的大小合适时,也就是要抓取的图像已被圈定时,松开鼠标,屏幕上将会出现一个对话框,等对话框上的[OK]按钮变为黑色时,说明图像已经抓取好了。在选定抓取区域时,也可以单击右键,屏幕上将会出现一个黑线框,黑线框圈定的区域会随着鼠标所指的屏幕元素而变化,鼠标指向窗口标题栏,选定的就是整个窗口,鼠标指向菜单栏,选定的就是菜单栏,依此类推。当圈定了抓取对象后,单击左键即开始抓取。图像抓取好后,单击对话框中的[OK]按钮,又返回到了HardCopy界面。这时在预览窗中已经能看到抓到好的图像。如果不需对图像进行调整,则单击[Save as]按钮进行保存。

进一步处理

抓取图像后,单击[Adjust]或者[Auto crop]命令按钮,出现“Adjust image properties(调整属性)”窗口(如图2),在窗口中有一个 *** 作区,用4条虚线围成一个井字,中央是我们已经抓取的图像。我们可以用鼠标拖曳这4条线,进一步剪裁出需要的部分。如果 *** 作区的模糊,可以通过 *** 作区上方的游标调整显示比例。调整后,单击[OK]即可回到HardCopy界面。对大小或颜色进行调整后,只要未退出HardCopy,在“Adjust image properties”窗口中,单击[Original](原物)按钮,还可以恢复到调整前的样子

3:

设定运行环境

在HardCopy界面上的“Option”(选项)、“Edit/Save”(编辑/保存)、“Print”(打印)标签用来设定软件的运行环境。HardCopy的设定 *** 作也比较简单,打开“Option”标签,可以看到图3所示界面,限于篇幅,在此只简单介绍一下主要几个选项的功能,其他的就留待读者自己去摸索了。

1、Auto start(自动开始):选中后,一执行新建命令,不用单击右键就会自动出现选定区域的黑线框。

2、Hide on action( *** 作时隐藏):选中后,抓取图像后,HardCopy的界面不会自动出现,需要从任务栏中激活

4:

3、Tray icon(托盘图标):选中以后,系统托盘中会出现图标,方便用户激活程序。

4、Hot-key(热键设定):单击该编辑框,直接按下要设置的快捷键即可。如果设定了热键,则在HardCopy处于隐藏状态时,按热键可直接进行抓图 *** 作。

HardCopy主界面上的“Edit/Save”命令,在使用前要先进行一些设定。打开“Edit/Save”标签,会看到有两个设定项目:

1、“Program for image edit”用来设定用于编辑的程序,如Photoshop,设定后单击HardCopy主界面上的“编辑”命令时,即可自动启动Photoshop,对所抓取的进行再加工。

2、“Filename (and path) for Sequential save”用于设定文件默认保存路径及文件名。比如我们设定文件的保存路径为“c:my documentshd”,在抓取图像后,直接单击HardCopy主界面上的[Save]命令,则不出现保存文件对话框,文件自动保存在“我的文档”文件夹中,文件名自动取为hd0001,hd0002是不是很方便?

用HardCopy屏幕抓图程序抓取好需要的屏幕图像后,我们就可以利用文字处理软件的插入功能(Word、Excel等都具有这种功能)将插入到编辑好的教案当中去了

1、其实你的代码应该是没有问题的,问题应该是出在你的事件处理上。onChange事件是在edit框文本字符发生改变的时候触发,所以当你在EDIT框输入第一个字符时,系统就会查询数据库,去匹配数据,并将符合条件的内容全部添加到combox和listbox控件中,而输入第二个字符的时候,combox和listbox里面的内容又没有及时清空,上一次显示出来的结果仍在combox和listbox控件中,在你输入第二个字符的时候,系统又执行了一次查询,结果就把第二次查询的结果又添加到了combox控件当中,在输入完成后,你就会发现很多数据有重复而且数据量很大,从而出现你描述的这个情况。因此,个人认为还是增加一个button来解决比较好,用onchange的事件处理对数据库的查询 *** 作太多,程序不好控制。

2、另外,建议将遍历数据库的循环改成使用while

not

ADOQuery1eof

do

循环比较好,如下:

if

ADOQuery1RecordCount

>

0

then

begin

ADOQuery1First

;

while

not

ADOQuery1Eof

do

begin

ComboBox1ItemsAdd(ADOQuery1FieldByName('NAME')AsString)

;

ListBox1ItemsAdd(ADOQuery1FieldByName('NAME')AsString)

;

ADOQuery1Next

;

end;

end;

设置文本框的 PasswordChar属性为 (其实可以是任意单个字符的)

读取时同普通的文本框没区别 也是 text1text

晕 就算写入数据库 也是以明文的方式写入的 至于在数据库中是否显示星号 那则是你在数据库中设置对应字段的显示方式问题

而且 我觉得你应该用下MD5等加密算法

Attribute VB_Name = "modMD5"

'==================================

'16&32位MD5加密函数模块

'==================================

'============使用示例==============

'Private Sub Command1_Click()

'Text2 = md5(Text1, 16) '< 16或者32

'3d82582d361d5568

'End Sub

'==========^^使用示例^^============

Private Const BITS_TO_A_BYTE = 8

Private Const BYTES_TO_A_WORD = 4

Private Const BITS_TO_A_WORD = 32

Private m_lOnBits(30)

Private m_l2Power(30)

Private Function LShift(lValue, iShiftBits)

If iShiftBits = 0 Then

LShift = lValue

Exit Function

ElseIf iShiftBits = 31 Then

If lValue And 1 Then

LShift = &H80000000

Else

LShift = 0

End If

Exit Function

ElseIf iShiftBits < 0 Or iShiftBits > 31 Then

ErrRaise 6

End If

If (lValue And m_l2Power(31 - iShiftBits)) Then

LShift = ((lValue And m_lOnBits(31 - (iShiftBits + 1))) m_l2Power(iShiftBits)) Or &H80000000

Else

LShift = ((lValue And m_lOnBits(31 - iShiftBits)) m_l2Power(iShiftBits))

End If

End Function

Private Function RShift(lValue, iShiftBits)

If iShiftBits = 0 Then

RShift = lValue

Exit Function

ElseIf iShiftBits = 31 Then

If lValue And &H80000000 Then

RShift = 1

Else

RShift = 0

End If

Exit Function

ElseIf iShiftBits < 0 Or iShiftBits > 31 Then

ErrRaise 6

End If

RShift = (lValue And &H7FFFFFFE) \ m_l2Power(iShiftBits)

If (lValue And &H80000000) Then

RShift = (RShift Or (&H40000000 \ m_l2Power(iShiftBits - 1)))

End If

End Function

Private Function RotateLeft(lValue, iShiftBits)

RotateLeft = LShift(lValue, iShiftBits) Or RShift(lValue, (32 - iShiftBits))

End Function

Private Function AddUnsigned(lX, lY)

Dim lX4

Dim lY4

Dim lX8

Dim lY8

Dim lResult

lX8 = lX And &H80000000

lY8 = lY And &H80000000

lX4 = lX And &H40000000

lY4 = lY And &H40000000

lResult = (lX And &H3FFFFFFF) + (lY And &H3FFFFFFF)

If lX4 And lY4 Then

lResult = lResult Xor &H80000000 Xor lX8 Xor lY8

ElseIf lX4 Or lY4 Then

If lResult And &H40000000 Then

lResult = lResult Xor &HC0000000 Xor lX8 Xor lY8

Else

lResult = lResult Xor &H40000000 Xor lX8 Xor lY8

End If

Else

lResult = lResult Xor lX8 Xor lY8

End If

AddUnsigned = lResult

End Function

Private Function md5_F(x, y, z)

md5_F = (x And y) Or ((Not x) And z)

End Function

Private Function md5_G(x, y, z)

md5_G = (x And z) Or (y And (Not z))

End Function

Private Function md5_H(x, y, z)

md5_H = (x Xor y Xor z)

End Function

Private Function md5_I(x, y, z)

md5_I = (y Xor (x Or (Not z)))

End Function

Private Sub md5_FF(a, b, c, d, x, s, ac)

a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_F(b, c, d), x), ac))

a = RotateLeft(a, s)

a = AddUnsigned(a, b)

End Sub

Private Sub md5_GG(a, b, c, d, x, s, ac)

a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_G(b, c, d), x), ac))

a = RotateLeft(a, s)

a = AddUnsigned(a, b)

End Sub

Private Sub md5_HH(a, b, c, d, x, s, ac)

a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_H(b, c, d), x), ac))

a = RotateLeft(a, s)

a = AddUnsigned(a, b)

End Sub

Private Sub md5_II(a, b, c, d, x, s, ac)

a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_I(b, c, d), x), ac))

a = RotateLeft(a, s)

a = AddUnsigned(a, b)

End Sub

Private Function ConvertToWordArray(sMessage)

Dim lMessageLength

Dim lNumberOfWords

Dim lWordArray()

Dim lBytePosition

Dim lByteCount

Dim lWordCount

Const MODULUS_BITS = 512

Const CONGRUENT_BITS = 448

lMessageLength = Len(sMessage)

lNumberOfWords = (((lMessageLength + ((MODULUS_BITS - CONGRUENT_BITS) \ BITS_TO_A_BYTE)) \ (MODULUS_BITS \ BITS_TO_A_BYTE)) + 1) (MODULUS_BITS \ BITS_TO_A_WORD)

ReDim lWordArray(lNumberOfWords - 1)

lBytePosition = 0

lByteCount = 0

Do Until lByteCount >= lMessageLength

lWordCount = lByteCount \ BYTES_TO_A_WORD

lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) BITS_TO_A_BYTE

lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(Asc(Mid(sMessage, lByteCount + 1, 1)), lBytePosition)

lByteCount = lByteCount + 1

Loop

lWordCount = lByteCount \ BYTES_TO_A_WORD

lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) BITS_TO_A_BYTE

lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(&H80, lBytePosition)

lWordArray(lNumberOfWords - 2) = LShift(lMessageLength, 3)

lWordArray(lNumberOfWords - 1) = RShift(lMessageLength, 29)

ConvertToWordArray = lWordArray

End Function

Private Function WordToHex(lValue)

Dim lByte

Dim lCount

For lCount = 0 To 3

lByte = RShift(lValue, lCount BITS_TO_A_BYTE) And m_lOnBits(BITS_TO_A_BYTE - 1)

WordToHex = WordToHex & Right("0" & Hex(lByte), 2)

Next

End Function

Public Function md5(sMessage As String, stype As Integer) As String

m_lOnBits(0) = CLng(1)

m_lOnBits(1) = CLng(3)

m_lOnBits(2) = CLng(7)

m_lOnBits(3) = CLng(15)

m_lOnBits(4) = CLng(31)

m_lOnBits(5) = CLng(63)

m_lOnBits(6) = CLng(127)

m_lOnBits(7) = CLng(255)

m_lOnBits(8) = CLng(511)

m_lOnBits(9) = CLng(1023)

m_lOnBits(10) = CLng(2047)

m_lOnBits(11) = CLng(4095)

m_lOnBits(12) = CLng(8191)

m_lOnBits(13) = CLng(16383)

m_lOnBits(14) = CLng(32767)

m_lOnBits(15) = CLng(65535)

m_lOnBits(16) = CLng(131071)

m_lOnBits(17) = CLng(262143)

m_lOnBits(18) = CLng(524287)

m_lOnBits(19) = CLng(1048575)

m_lOnBits(20) = CLng(2097151)

m_lOnBits(21) = CLng(4194303)

m_lOnBits(22) = CLng(8388607)

m_lOnBits(23) = CLng(16777215)

m_lOnBits(24) = CLng(33554431)

m_lOnBits(25) = CLng(67108863)

m_lOnBits(26) = CLng(134217727)

m_lOnBits(27) = CLng(268435455)

m_lOnBits(28) = CLng(536870911)

m_lOnBits(29) = CLng(1073741823)

m_lOnBits(30) = CLng(2147483647)

m_l2Power(0) = CLng(1)

m_l2Power(1) = CLng(2)

m_l2Power(2) = CLng(4)

m_l2Power(3) = CLng(8)

m_l2Power(4) = CLng(16)

m_l2Power(5) = CLng(32)

m_l2Power(6) = CLng(64)

m_l2Power(7) = CLng(128)

m_l2Power(8) = CLng(256)

m_l2Power(9) = CLng(512)

m_l2Power(10) = CLng(1024)

m_l2Power(11) = CLng(2048)

m_l2Power(12) = CLng(4096)

m_l2Power(13) = CLng(8192)

m_l2Power(14) = CLng(16384)

m_l2Power(15) = CLng(32768)

m_l2Power(16) = CLng(65536)

m_l2Power(17) = CLng(131072)

m_l2Power(18) = CLng(262144)

m_l2Power(19) = CLng(524288)

m_l2Power(20) = CLng(1048576)

m_l2Power(21) = CLng(2097152)

m_l2Power(22) = CLng(4194304)

m_l2Power(23) = CLng(8388608)

m_l2Power(24) = CLng(16777216)

m_l2Power(25) = CLng(33554432)

m_l2Power(26) = CLng(67108864)

m_l2Power(27) = CLng(134217728)

m_l2Power(28) = CLng(268435456)

m_l2Power(29) = CLng(536870912)

m_l2Power(30) = CLng(1073741824)

Dim x

Dim k

Dim AA

Dim BB

Dim CC

Dim DD

Dim a

Dim b

Dim c

Dim d

Const S11 = 7

Const S12 = 12

Const S13 = 17

Const S14 = 22

Const S21 = 5

Const S22 = 9

Const S23 = 14

Const S24 = 20

Const S31 = 4

Const S32 = 11

Const S33 = 16

Const S34 = 23

Const S41 = 6

Const S42 = 10

Const S43 = 15

Const S44 = 21

x = ConvertToWordArray(sMessage)

a = &H67452301

b = &HEFCDAB89

c = &H98BADCFE

d = &H10325476

For k = 0 To UBound(x) Step 16

AA = a

BB = b

CC = c

DD = d

md5_FF a, b, c, d, x(k + 0), S11, &HD76AA478

md5_FF d, a, b, c, x(k + 1), S12, &HE8C7B756

md5_FF c, d, a, b, x(k + 2), S13, &H242070DB

md5_FF b, c, d, a, x(k + 3), S14, &HC1BDCEEE

md5_FF a, b, c, d, x(k + 4), S11, &HF57C0FAF

md5_FF d, a, b, c, x(k + 5), S12, &H4787C62A

md5_FF c, d, a, b, x(k + 6), S13, &HA8304613

md5_FF b, c, d, a, x(k + 7), S14, &HFD469501

md5_FF a, b, c, d, x(k + 8), S11, &H698098D8

md5_FF d, a, b, c, x(k + 9), S12, &H8B44F7AF

md5_FF c, d, a, b, x(k + 10), S13, &HFFFF5BB1

md5_FF b, c, d, a, x(k + 11), S14, &H895CD7BE

md5_FF a, b, c, d, x(k + 12), S11, &H6B901122

md5_FF d, a, b, c, x(k + 13), S12, &HFD987193

md5_FF c, d, a, b, x(k + 14), S13, &HA679438E

md5_FF b, c, d, a, x(k + 15), S14, &H49B40821

md5_GG a, b, c, d, x(k + 1), S21, &HF61E2562

md5_GG d, a, b, c, x(k + 6), S22, &HC040B340

md5_GG c, d, a, b, x(k + 11), S23, &H265E5A51

md5_GG b, c, d, a, x(k + 0), S24, &HE9B6C7AA

md5_GG a, b, c, d, x(k + 5), S21, &HD62F105D

md5_GG d, a, b, c, x(k + 10), S22, &H2441453

md5_GG c, d, a, b, x(k + 15), S23, &HD8A1E681

md5_GG b, c, d, a, x(k + 4), S24, &HE7D3FBC8

md5_GG a, b, c, d, x(k + 9), S21, &H21E1CDE6

md5_GG d, a, b, c, x(k + 14), S22, &HC33707D6

md5_GG c, d, a, b, x(k + 3), S23, &HF4D50D87

md5_GG b, c, d, a, x(k + 8), S24, &H455A14ED

md5_GG a, b, c, d, x(k + 13), S21, &HA9E3E905

md5_GG d, a, b, c, x(k + 2), S22, &HFCEFA3F8

md5_GG c, d, a, b, x(k + 7), S23, &H676F02D9

md5_GG b, c, d, a, x(k + 12), S24, &H8D2A4C8A

md5_HH a, b, c, d, x(k + 5), S31, &HFFFA3942

md5_HH d, a, b, c, x(k + 8), S32, &H8771F681

md5_HH c, d, a, b, x(k + 11), S33, &H6D9D6122

md5_HH b, c, d, a, x(k + 14), S34, &HFDE5380C

md5_HH a, b, c, d, x(k + 1), S31, &HA4BEEA44

md5_HH d, a, b, c, x(k + 4), S32, &H4BDECFA9

md5_HH c, d, a, b, x(k + 7), S33, &HF6BB4B60

md5_HH b, c, d, a, x(k + 10), S34, &HBEBFBC70

md5_HH a, b, c, d, x(k + 13), S31, &H289B7EC6

md5_HH d, a, b, c, x(k + 0), S32, &HEAA127FA

md5_HH c, d, a, b, x(k + 3), S33, &HD4EF3085

md5_HH b, c, d, a, x(k + 6), S34, &H4881D05

md5_HH a, b, c, d, x(k + 9), S31, &HD9D4D039

md5_HH d, a, b, c, x(k + 12), S32, &HE6DB99E5

md5_HH c, d, a, b, x(k + 15), S33, &H1FA27CF8

md5_HH b, c, d, a, x(k + 2), S34, &HC4AC5665

md5_II a, b, c, d, x(k + 0), S41, &HF4292244

md5_II d, a, b, c, x(k + 7), S42, &H432AFF97

md5_II c, d, a, b, x(k + 14), S43, &HAB9423A7

md5_II b, c, d, a, x(k + 5), S44, &HFC93A039

md5_II a, b, c, d, x(k + 12), S41, &H655B59C3

md5_II d, a, b, c, x(k + 3), S42, &H8F0CCC92

md5_II c, d, a, b, x(k + 10), S43, &HFFEFF47D

md5_II b, c, d, a, x(k + 1), S44, &H85845DD1

md5_II a, b, c, d, x(k + 8), S41, &H6FA87E4F

md5_II d, a, b, c, x(k + 15), S42, &HFE2CE6E0

md5_II c, d, a, b, x(k + 6), S43, &HA3014314

md5_II b, c, d, a, x(k + 13), S44, &H4E0811A1

md5_II a, b, c, d, x(k + 4), S41, &HF7537E82

md5_II d, a, b, c, x(k + 11), S42, &HBD3AF235

md5_II c, d, a, b, x(k + 2), S43, &H2AD7D2BB

md5_II b, c, d, a, x(k + 9), S44, &HEB86D391

a = AddUnsigned(a, AA)

b = AddUnsigned(b, BB)

c = AddUnsigned(c, CC)

d = AddUnsigned(d, DD)

Next

If stype = 32 Then

md5 = LCase(WordToHex(a) & WordToHex(b) & WordToHex(c) & WordToHex(d))

Else

md5 = LCase(WordToHex(b) & WordToHex(c)) 'I crop this to fit 16byte database password :D

End If

End Function

以上就是关于如何让手机主页背景变成摄像头代码全部的内容,包括:如何让手机主页背景变成摄像头代码、亚得里亚地块与第勒尼安岩石圈、ICROP 系统等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9290904.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存