作者: k, k

  • python 校准win系统时间与网络北京时间一致

    要校准Windows系统时间与网络北京时间一致,你可以使用Python的datetimerequests库来实现。以下是一个简单的示例代码:

     import datetime  
     import requests  
       
     def get_beijing_time():  
         # 发送HTTP请求获取北京时间  
         response = requests.get('https://time.api.qq.com/time/ip')  
         data = response.json()  
         return datetime.datetime.fromtimestamp(data['time']).replace(tzinfo=datetime.timezone(datetime.timedelta(hours=8)))  
       
     def set_system_time(new_time):  
         # 调用Windows API函数SetSystemTime来设置系统时间  
         import ctypes  
         ctypes.windll.kernel32.SetSystemTime(new_time)  
       
     # 获取北京时间  
     beijing_time = get_beijing_time()  
     print("北京时间:", beijing_time)  
       
     # 设置系统时间为北京时间  
     set_system_time(beijing_time)  
     print("系统时间已设置为北京时间")

    这段代码首先通过get_beijing_time函数发送HTTP请求获取北京时间,然后使用set_system_time函数将系统时间设置为获取到的北京时间。请注意,这段代码需要在管理员权限下运行,因为需要调用Windows API函数SetSystemTime来设置系统时间。

    Python 设置系统时间,代码如下:

    适用于windows系统

     import os
     import datetime
     
     #设定日期
     _date = datetime.datetime.strptime("2019/05/25","%Y/%m/%d")
     #设定时间为 0点30分
     _time = '00.30'
     #设定时间
     os.system('time {}'.format(_time))
     os.system('date {}'.format(_date))
  • python 修改win系统时间为2099年

    在Windows操作系统中,修改系统时间通常需要管理员权限。Python本身没有提供修改系统时间的功能,但你可以通过调用Windows的time命令来实现这个目标。以下是一个使用Python修改Windows系统时间的例子:

     import os  
     import time  
       
     def set_system_time(new_time):  
         # Define the command to set the system time  
         command = r"cmd /c net time \\\\%1 /set /syncfromdns"  
       
         # The new time is in UTC format. Convert it to Windows format.  
         new_time = time.strftime("%Y-%m-%d %H:%M:%S", new_time)  
       
         # The command is run in a shell. Define the shell in which to run the command.  
         shell = os.popen("for /f %p in ('net get /domain') do @echo %p", "r")  
       
         # Run the command to set the system time.  
         os.popen(shell.read() + command % new_time)  
       
         # Close the shell.  
         shell.close()  
       
     # Set the system time to 2099-01-01 00:00:00 UTC.  
     set_system_time((2099, 1, 1, 0, 0, 0))

    请注意,这段代码需要管理员权限才能运行。另外,这个方法可能存在一些风险,因为改变系统时间可能会影响到依赖时间的系统功能和应用程序。因此,除非你完全明白这样做的后果,否则不建议随意修改系统时间。

  • 永久禁用win系统更新

    禁用Windows系统更新的方法有多种,但请注意,不建议您永久禁用系统更新,因为系统更新通常会修复重要的安全漏洞和改进系统的性能和稳定性。然而,如果您有特殊原因需要禁用系统更新,以下是一种可能的方法:

    1. 打开命令提示符(CMD)或 PowerShell。

    2. 输入以下命令以禁用Windows Update服务:

     sc config wuauserv start= disabled

    输入以下命令以禁用自动更新:

     sc config bits start= disabled

    输入以下命令以禁用Windows Update Agent服务:

     sc config wuaagent start= disabled

    重启计算机以使更改生效。

    请注意,这些命令可能需要管理员权限才能运行。此外,禁用系统更新可能会导致您的计算机容易受到恶意攻击和安全漏洞的影响。因此,强烈建议您仅在必要时才禁用系统更新,并在可能的情况下尽快更新您的计算机。

  • python 查看windows电脑WIFI密码

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    import os
    os.system("netsh wlan show profiles > wifi_list.txt")
    with open("wifi_list.txt") as f:
        data = f.readlines()[10:]
        #print(data)
        num = 1
        
        for i in data:
            print(str(num)+"."+i.replace('所有用户配置文件 :',''))
            num += 1
        select = input("请输入WIFI序号:")
        # print(data[int(select)-1].replace('所有用户配置文件 :',''))
        wifiname = data[int(select)-1].replace('所有用户配置文件 :','').replace("   ","").replace("  ","")
        #print(type(wifiname))
        #print(wifiname)
        str = 'netsh wlan show profiles name="{}" key=clear'.format(wifiname).replace('\n','')
        #print(str)
        os.system(str)
        print("WIFI密码请查看【关键内容】!!!")

     

  • pygame播放音乐

    # -*- coding: utf-8 -*-
    '''
    该代码在pyhon idle里面运行可以正常播放音乐。
    如果想要在cmd窗口里正常播放,你需要让程序不要马上执行结束,比如加一个input等待输入的命令,让cmd命令处于运行时状态,这样就可以是一直在播放中了,
    简单来说就是cmd命令运行太快了,还没播放音乐呢,指令就直接让执行完了,程序都结束了。所以没有播放音乐出来。
    input("此内容为适应cmd窗口命令:正在播放中,回车键结束程序")
    '''
    import pygame# 导入该工具库
    
    pygame.mixer.init()# 音频混合器准备。因为要播放音乐文件,音乐文件属于音频文件,所有要把播放器拿出来准备放音乐
    f="5.wav"# 加载音乐文件
    pygame.mixer.music.load(f) # 加载音乐
    pygame.mixer.music.set_volume(0.5)# 播放音乐的音量,值区间:0到1之间的小数,比如50%的音量就是0.5
    print(pygame.mixer.music.get_busy())# 打印一下音乐是否在播放,在播放就是True,不在播放就是False
    pygame.mixer.music.play()# 播放音乐
    print(pygame.mixer.music.get_busy())# 打印一下音乐是否在播放,在播放就是True,不在播放就是False
    input("此内容为适应cmd窗口命令:正在播放中,回车键结束程序")

    建议使用ogg格式或者wav格式的文件。不过在运行时使用mp3格式的文件也可以,但是一旦打包出去还是建议使用ogg格式或者wav格式的文件(https://blog.csdn.net/weixin_43403605/article/details/106131654)

  • 丝路传说相关

    丝路传说
    服务器:最低配置需要4g运行内存2核心的服务器
    同时在线人数:100人

    CustomCertificationServer 自定义认证服务器
    GlobalManager 全局管理器
    MachineManager 机器管理器
    DownloadServer 下载服务器
    GatewayServer 网关服务器
    FarmManger 农场管理器
    AgentServer 代理服务器
    SR_SharManager 管理器
    SR_GameServer 思路游戏服务器
    SMC

    Server IP.ini
    srGlobalService.ini
    srNodeType.ini
    srShard.ini
    Server.cfg

    SMC
    CAS
    ConcurrentUserLog
    ModulePatch
    Notice
    Security
    ServerControl

    SR_Notice
    向游戏发送公告。

    SR_UserEdit
    SR_UserLog
    SR_UserPunishment
    UserControl
    UserStatistics

    //无法占用数据库会话:select* from sK SilkchangeBy Web
    cannot occupy db session :select* from sK SilkchangeBy Web

    //无法认证服务器正文:[MachineManagerJ[127.0.0.1]
    cannot certify server body : [MachineManagerJ[127.0.0.1]

    //每个 IP 的最大用户计数限制:覆盖为 3
    Max User Count Restriction Per IP: overrided to 3

    //覆盖的最大并发用户数:5
    Max Concurrent User Count Overrided: 5

    //私有 IP 已加载
    priviieged ip has been loaded

    //无法建立保持活动会话192.168.10.5 15885(绑定 0.0.0.0)
    cannot establish keep alivesession (192.168.10.5 15885(bind 0.0.0.0)

    //警报已停用!!
    alarm deactivated !!

    日志信息:
    notify
    //连接到 ShardManagerL#705
    Connected to ShardManagerL#705
    fatal
    //没有感恩节活动信息!!可以吗?
    There is no ThanksGiving Event info !!! is it ok?
    //个人经验增益比:500
    Individual Exp Gain Ratio: 500
    warnning
    //队伍经验值增益比率:1000
    Party Exp Gain Ratio: 1000
    warnning
    //物品掉落率:1000
    Item Drop Ratio:1000
    warnning
    //黄金掉落金额系数:1000
    Gold Drop Amount Factor:1000
    warnning
    notify
    //实际负载 : 10%
    load real rezion : 10%
    notify
    //实际负载 : 20%
    load real rezion : 20%
    atal.
    //本地重叠作业异常!!“:”CserverProcessOverlap
    local overlap job exception!!”:”CserverProcessOverlap

    //收到未处理的消息 CFarnManagerMainProcess:(大量)Ack:0x306 (10),4217
    unhandled msg received CFarnManagerMainProcess : (Massive)Ack:0x306 (10), 4217

  • pygame简单使用

    import pygame
    
    # 初始设置
    pygame.init()# 初始化pygame
    screen = pygame.display.set_mode((800,900))# Pygame窗口
    pygame.display.set_caption("pygame绘制图形")# 标题
    keep_going = True
    RED = (255,0,0)# 红色,使用RGB颜色
    radius = 20# 半径
    
    # 游戏循环
    while keep_going:
    	for event in pygame.event.get():# 遍历事件
    		if event.type == pygame.QUIT:# 退出事件
    			keep_going = False
    	pygame.draw.circle(screen,RED,(200,300),radius)# 在Surface上绘制图片
    	pygame.display.update()# 刷新屏幕
    
    # 退出程序
    pygame.quit()

     

  • flask基本用法

    # -*- coding:utf-8 -*-  # 声明代码编码为UTF-8,确保中英文都能正常显示  
      
    # 导入所需的库  
    from flask import Flask, request, jsonify  # 导入Flask框架,request对象和jsonify函数  
    from werkzeug.utils import redirect  # 导入重定向工具  
      
    app = Flask(__name__)  # 创建一个Flask应用实例,使用当前文件名作为模块名  
      
    from flask_cors import CORS, cross_origin  # 从flask_cors库中导入CORS和cross_origin  
    cors = CORS(app)  # 初始化CORS,允许跨域请求  
      
    # 设置JSON的编码方式,支持中文显示  
    app.config['JSON_AS_ASCII'] = False  
      
    # 定义根路由,返回"hello world"  
    @app.route("/")  
    def hello_world():  
        return "hello world"  
      
    # 定义"/hey/<username>/"路由,接收一个参数username,返回"hey [username]"  
    @app.route("/hey/<username>/")  
    def hey_yingyong(username):  
        return "hey %s" % username  
      
    # 定义"/my_number/<int:number>/"路由,接收一个整数字段number,返回"my [number*2]"  
    @app.route("/my_number/<int:number>/")  
    def my_number(number):  
        return "my %s" % (number+number)  
      
    # 定义"/my_float/<float:number>/"路由,接收一个浮点数字段number,返回"my [number*2]"  
    @app.route("/my_float/<float:number>/")  
    def my_float(number): return "my %s" % (number+number)  
      
    # 定义"/baidu/"路由,重定向到百度首页  
    @app.route("/baidu/")  
    def baidu():  
        return redirect("http://www.baidu.com")  
      
    # 定义"/json"路由,返回一个JSON格式的字典列表  
    @app.route("/json")  
    def json():  
        dict = [{"name":'张三'}, {"gender":'男'}]  
        return jsonify(dict)  
      
    # 定义"/p"路由,只接受GET请求,返回"hello_world"字符串  
    @app.route("/p", methods=["GET"])  
    def he():  
        return "hello_world"  
      
    # 定义"/test/my/first"路由,处理POST请求,对请求中的JSON数据进行处理并返回结果  
    @app.route("/test/my/first", methods=["POST"])  
    def first_post():  
        try:  
            my_json = request.get_json()  # 从请求中获取JSON数据  
            print(my_json)  # 打印JSON数据内容,仅在调试时使用,生产环境中应删除此行代码  
            get_name = my_json.get("name")  # 从JSON中获取name字段的值,如果不存在则返回None  
            get_age = my_json.get("age")  # 从JSON中获取age字段的值,如果不存在则返回None  
            if not all([get_name,get_age]):  # 如果name和age字段都不存在,返回错误信息"缺少参数"  
                return jsonify(msg="缺少参数")  
            get_age += 10  # 将age字段的值增加10岁  
            return jsonify(name=get_name, age=get_age)  # 返回处理后的JSON数据,包括name和age字段的值  
        except Exception as e:  # 如果在处理过程中出现任何异常,捕获并打印异常信息,然后返回错误信息"出错了哦,请查看是否正确访问"  
            print(e)  # 打印异常信息,仅在调试时使用,生产环境中应删除此行代码  
            return jsonify(msg="出错了哦,请查看是否正确访问")  # 返回错误信息"出错了哦,请查看是否正确访问"

     

  • 水星路由器-二级路由

    水星路由器-二级路由

    高级设置-网络参数-LAN口设置-ip修改为:手动,设置为192.168.2.1

    thumbnailwebp

  • 极语言中文编程_学习笔记

    更多有关极语言中文编程的信息请看文件夹下的sec.htm或者官网的编程说明书http://sec.yihuolao.com/sec.htm

    极语言的官方网址是:

    http://sec.yihuolao.com/

    http://sec.z5x.cn/

    http://www.z5x.cn/

    极语言入门教学视频:https://www.ixigua.com/7128748847265743371

    极语言游戏教学视频:https://www.ixigua.com/7128744019546341921

    极语言整理的标准ASCII码表:http://sec.yihuolao.com/ascii.htm

    极语言QQ交流群:13016712

    极语言手动安装包下载地址:http://sec.yihuolao.com/SEC.rar

    极语言在线安装地址:http://sec.yihuolao.com/Sec.zip

    极语言

    极语言中文编程语言是符合中文自然语言语义的语言。

    极语言中文编程语言是面向过程的语言。

    Sec是Simple easy compile的缩写,也是秒的意思,编译和运行都极快的中文编程。

    安装说明

    安装目录尽量不要选择C盘,也不要在分区根目录。

    极语言程序文件介绍

    sec是集成开发环境(IDE,Integrated Development Environment),用于提供程序开发环境的应用程序

    sec1是编译器

    如何看懂极语言的代码?

    人怎么说话就怎么理解极语言的代码。

    比如,当窗口关闭的时候我就结束程序,当点击鼠标左键时我就弹出信息框,信息框里标题是“你好”,信息框里的内容是一个信息图标和两个字“中国”。

    如何理解编程语言中的函数、方法?

    干什么(谁,怎样)
    
    谁.干什么(怎样)
    
    谁(怎样干什么)
    
    谁(怎样)(干什么)

    所有的编程语言中的方法和函数大概就以上这几种方式。

    窗口程序必须有的代码框架

    复制代码
    程序段 窗体消息(窗口,消息,参数,数据)
        判断(消息)为 窗口关闭{停止(0)}
        为 单击左键{左键点击(参数)}
        否则 处理窗口(窗口,消息,参数,数据)
    结束
    
    程序段 窗体启动
    
    结束

    窗体启动代码段里填写你的代码,例如修改窗体的标题

     

    程序段 窗体消息(窗口,消息,参数,数据)
        判断(消息)为 窗口关闭{停止(0)}
        为 单击左键{左键点击(参数)}
        否则 处理窗口(窗口,消息,参数,数据)
    结束
    
    程序段 窗体启动
    改窗口字(窗体,"这是窗口标题名称")
    结束

    消息来源一般是是程序运行时,系统发过来的.

    改窗口字(文本框1,"asdasdadad");
    /*
    参数1:控件名或窗口名或窗口编号。主窗口也算是一个控件。
    参数2:修改后的字符串。就是想要把标题修改成啥。这里是把文本框1的标题修改成"asdasdadad"
    */

    当然你也可以不用代码区修改窗口的标题,极语言编程工具里有相应的窗口参数设置项,可以直接在上面修改窗口的标题:

    如何创造变量?

    这里的创造其实和其他编程里的声明这个词是差不多的意思。

    变量就是可能会变化的量。

    变量里的量,我理解就是一种结果,可能是数,也可能是字,也可能是状态。

    变量的作用是用来存储信息的。

    注意,变量名和变量是两个概念。

    变量名是指变量的名称,就是我们给某种信息或者某种结果起了一个名字,

    变量才是信息,才是结果。

    数据类型 变量名称=变量;

    这个语句是说,把一个变量起一个名字。后面你想用这个变量的时候,便于引用。你规定了这个变量属于啥类型。属于数,还是字,还是逻辑。

    字符 变量1="你好你好";
    布尔 变量2=真;
    整形 变量3=100;
    正整形 变量4=65535;
    整数 变量6=1000000000;
    小数 变量7=3.1415;
    文本 变量8[3]="你好呀";
    浮点 变量9=3.141592654;
    大数 变量9=210980912490830941909184091283103414111;

    其中整形、正整形、整数有什么区别?

    这些数据类型有范围上的区别(整形2字节,整数4字节),至于整形的范围是多少到多少之间,正整形的范围是多少到多少之间,整数的范围是多少到多少之间,请查看极语言中文编程的编程说明书http://sec.yihuolao.com/sec.htm

    如何创造多个同一类型的变量?

    字符 变量1,变量2,变量3,变量5="莎莎书a";

    如何注释?

    单行注释

    //改窗口字(窗体,"这是窗口标题名称");

    多行注释

    /*
    改窗口字(窗体,"这是窗口标题名称");
    改窗口字(窗体,"这是窗口标题名称");
    */

    废弃函数说明

    中文名称 英文名称 示例 作用 附加说明
    创建计时 CreateSystemTimer 计时=创建计时(毫秒,@回调) 创建一个指定时间的系统计时器 win11废弃了这个函数
    定时器(窗体,编号,毫秒)
    函数作用:开启指定编号和毫秒的定时器,毫秒数为零关闭定时器
    参数说明:
    窗体:窗体的名字。
    编号:定时器的名字。编号可以是0到42亿的数字,开启42亿个独立的定时器
    毫秒:你想要倒计时的毫秒数。

    极语言开始一个HelloWorld

    程序段 窗体消息(窗口,消息,参数,数据)
        判断(消息)为 窗口关闭{停止(0)}
        为 单击左键{左键点击(参数)}
        否则 处理窗口(窗口,消息,参数,数据)
    结束
    
    程序段 窗体启动
        信息框(0,"中国","你好",信息图标)
    结束

    信息框(0,"中国","你好",信息图标)
    /*
    信息框函数有三个参数,
    参数1:窗口名或者窗口编号。窗体启动的窗口编号是"0",窗口名叫窗口,这里写"窗口"也一样的结果.
    参数2:提示信息。内容是两个汉字"中国",也可以是任意字符串。
    参数3:信息框的标题。标题是两个汉字"你好",也可以是任意字符串。
    参数4:信息框的提示图标。
    */

    加法运算

    整数 结果=10+10;
    文本 显示[10]=结果;
    信息框(0,显示,"你好",信息图标);
    /*
    结果是20
    */

    文本 b[13];
    取窗口字(按钮1,b,13);
    信息框(0,b,"标题",信息图标);
    /*
    取窗口字(按钮1,b,13);
    作用:获取控件或窗口上的文字。
    参数1:窗口名或控件名或编号
    参数2:字符串接收者。你要定义一个变量,谁来接收这个窗口或控件上的字符串。
    参数3:要获取几个字节。想要这个控件或窗口上的文字字符串的字节长度是多少个?
    数字1字节,汉字两字节。
    比如,
    若控件上有2个汉字,你想截取1个汉字,就填3字节,想截取两个汉字就填5。
    想截取两个汉字就填3.但是你要是说有两个汉字,你只想截取一个,但是你填了1,那么这个字很可能无法显示,你填了3,会出现只显示一个汉字,后面可能会多出来一个未知的字符。
    若控件上只有2个数字,那么想截取一个数字,就填2,想截取2个数字,就填3。
    
    示例:
    文本 b[100];
    取窗口字(按钮1,b,100);
    信息框(0,b,"标题",信息图标);
    */

    记住,极语言中的一个数字、一个符号都是一个字节,中国的一个汉文字、韩国的一个韩文字、日本的一个日文字是2个字节。

    定义文本类型的变量或常量时,你的字节长度要始终多一个字节。

    比如

    有一个值为“你好”的文本类型的变量,一个汉字是2字节,两个汉字就是4字节,但是要多一个字节,你定义的这个字符串长度应该为5:

    文本 字符串[5]="哈你";

    加文字(数文1,数文2);
    /*
    
    示例:
    
    整数 结果00;
    
    结果00=加文字("你","好");
    
    信息框(0,结果00,"你好",信息图标);
    
    */

    加文字的作用是拼接字符串,有两个参数,两个参数都是字符串,加文字的返回值是字符串,需要一个整数或整形变量去临时存储这个结果的地址,才能够在程序中使用它的结果。

    全能函数

    函数使用

    参考:https://blog.csdn.net/mcw_720624/article/details/117192221

    发送消息(窗口名或控件名,事件,发送出去的内容,发送出去的内容); 
    
    /* 
    参数1:发送对象。窗口名或控件名 
    参数2:发送过去要执行啥东西。事件。消息名称 
    参数3:发送出去的内容。 字符型参数
    参数4:发送出去的内容。长整型参数
    作用:发送消息可以修改其它程序的窗口或控件,包括文字、图片、图标、光标、背景风格样式、位置大小、添加删除列表或菜单等等,而取窗口字就只能修改自身程序的,不能跨进程修改
    */

    创建一个dll

    新建工程-标准扩展dll

    程序段 初始化(整数 实例,整数 模式,整数 数据)
    信息框(0,"世界","你好",信息图标);
    结束;
    /*
    原始内容如下:
    程序段 初始化(整数 实例,整数 模式,整数 数据)
    返回(1)
    结束;
    */

    调用dll使用中括号里的语法[加载库(“创建dll.dll”)](提前是把dll放入程序同目录下能这样写,不然你就需要写完整的路径)

    程序段 窗体消息(窗口,消息,参数,数据)
        判断(消息)为 窗口关闭{停止(0)}
        为 单击左键{左键点击(参数)}
        否则 处理窗口(窗口,消息,参数,数据)
    结束
    
    程序段 窗体启动
        加载库("创建dll.dll")
    结束

    写一个控制台程序。(新建工程-命令控制台)

    程序段 初始启动
    写文字("你好,我是简易中文编程")
    读字符
    结束;

    写一个命令控制台程序,返回小数点后几位:

    以下代码解读,

    首先极语言不会帮助开发者取申请内存空间,需要开发者自行申请内存空间,最好用到多少内存空间就申请多少内存空间。

    所以写了一个程序段返回了你需要的值,你需要自己申请一个变量去接收这个值,注意,你程序段返回的是什么类型的值,那么你就需要申请一个相应的数据类型的值去接收这个值。

    这里程序段返回的是一个小数,所以需要申请一个浮点类型的变量去接收这个值,然后再使用[写格式()]这个命令去格式化这个值显示到命令控制台上。格式化浮点类型的数据使用%f。

    注意程序段如果返回的值是小数,那么需要在小数前面跟上一个冒号符号:,表示你返回的是一个浮点类型的值。例如,你想返回4.5这个小数,那么表达式就是返回(:4.5)

    程序段 初始启动
    浮点 值;
    值=取一个小数;
    写格式("%f",值);//默认精确到小数点后6位数
    写格式("\r\n","");
    写格式("%.1f",值);//精确到小数点后1位数
    写格式("\r\n","");
    写格式("%.2f",值);//精确到小数点后2位数
    写格式("\r\n","");
    写格式("%.3f",值);//精确到小数点后3位数
    写格式("\r\n","");
    写格式("%.4f",值);//精确到小数点后4位数
    写格式("\r\n","");
    写格式("%.5f",值);//精确到小数点后5位数
    写格式("\r\n","");
    写格式("%.6f",值);//精确到小数点后6位数
    写格式("\r\n","");
    写格式("%.7f",值);//精确到小数点后7位数
    写格式("\r\n....\r\n","");
    写格式("%.70f",值);//精确到小数点后70位数
    读字符
    结束;
    程序段 取一个小数
        返回(:4.5)
    结束
    /*
    函数说明:
    写格式("你好%s",名字);
    作用:把一个或多个变量转换格式化后显示在屏幕(控制台)上
    */

    使用发送消息让编辑框与编辑框之间传值

    程序段 编辑框1_改变
    整形 字=申请内存(64);
    整形 你;
    你=字;
    发送消息(编辑框1,获取文本,64,字);
    发送消息(编辑框2,设置文本,真,你);
    结束

    但是这个语句其实是不对的,整形不可以作为指针也就是地址使用,应该把 整形 改为 整数。

    极语言中的数据类型有全局变量和局部变量之分。

    数组,结构体,字节,字符,整形,短数,正数,大数,日期,这些数据类型的变量都是全局性的,不论你在程序中的哪个位置声明,都可以使用。当然不在一个工程下的文件里的全局变量除外。

    极语言所有的数据类型(12种):
    字符、字节、整形(短数)、正数、整数、日期、小数、浮点、大数、子类、对象和自定义类型。

    极语言的所有变量即可为全局变量,只要声明在程序段之外即可.
    全局变量除了文本需要指定申请内存大小,其他都不需要,只要别超过数据类型定义的大小范围即可.
    全局变量中的文本数据类型,指定的字节大小依然遵循4的整数倍.
    全局变量中的文本数据类型,指定的字节大小申请没有最大120字节限制,
    只要不超过数据类型给定的范围即可.

    声明在程序段之内的就是局部变量,并且只能声明整数、小数、文本、浮点、子类和对象这6种数据类型.
    所有的变量除了文本类型都是按照4字节以及4字节的倍数参与内存操作运算的,
    比如申请了一个6字节的变量,程序会把这个变量当作8字节的.
    程序中所有的局部变量的字节长度,默认最大申请的内存为120字节,如果所有局部变量加起来需要申请更多字节的内存空间时,
    请在程序段内的局部变量前,加上局部两个字或者加上loacl也行,都是一个意思,然后再空格,比如:

    程序段 窗体启动
    局部 文本 ss(122);
    结束

    因为极语言中,0代表着空,代表着结束,所以想要清空变量,只需要把0赋予给要清空的变量即可.比如:

    文本 s[10]="abcd";
    s=0;

    局部变量最多能够申请的字节内存大小为1-2M.
    如何修改文本数据中的某个字符?
    使用数组操作即可,比如申请了一个文本变量:

    //申请16字节的文本变量
    文本 s[16]="abc";
    //使用数组操作,把s变量中第2个位置的字符修改为d
    s(2)=\d;

    注意以上程序不要搞混了,申请变量需要在变量前定义数据类型,
    如果不定义数据类型,括号里的数字就是指索引,叫下标也行,下标从0开始,
    所以s变量的第2个位置的字符是c,修改第2个位置的字符为d.

    要注意这一点,极语言中的全局和局部和其他编程语言里的全局和局部不一样。极语言的全局能够跨越文件和程序段。局部就是局部。

     

    极语言的数组

    数组属于全局变量,所以一个工程下声明的数组在此工程下哪里都能用。

    数组,即一组数据。如果数据有顺序的话,那么就肯定要有一个顺序,但是从哪里开始呢?极语言里面的数组顺序是从0开始。

    在其它语言中,通常数组是这样声明的,

    example = ["a","b","c","d","e","f","g"]

    但是这里面的这些数据,我们成为数组中的元素,我们总要知道某个元素处于数组中的什么位置吧?怎么描述这个位置呢?

    你不妨可以这样看这组数据:

    example = [0,1,2,3,4,5,6,7,8,9]

    比如,给元素排个序,里面的每个元素都有一个序号,这个序号我们称它为下标,元素下方的标识,也可以叫做索引,一种目录的线索引用。

    现在你能看懂数组了吗?

    那么极语言里的数组声明需要一个一个的对数组里的每一个元素进行赋值,

    数组声明的语法是

    内容(下标)=数据;

    比如想声明一个名为“内容”的数组,第一个元素是

    内容(0)="你好"

    第二个元素是

    内容(1)="你好好"

    第三个元素是

    内容(2)=""

    界面菜单设计

    极语言的菜单设计,首先要把.frm文件呼唤出来,双击那个文件即可呼唤出来,然后在那个界面上鼠标右键一下,会出来选项,选择编辑菜单即可。

    编辑菜单的界面有一个输入框,那个输入框里直接输入菜单名按一下回车键即可追加菜单名,有上下箭头可以移动菜单项。

    需要注意的是,菜单项,不要输入空白的菜单名,不然的话,整个菜单项都无法显示。

    就像这样:

    如果你想整一个二级菜单,菜单编辑器上有左右键,可以先添加菜单项,然后左右键控制菜单级别,像下面这样:

    极语言如何添加菜单的绑定事件?

    在控件窗体上右键,注意不要在控件上右键,在窗体没有控件的空白处右键,编辑菜单-输入菜单名称-点击添加按钮-双击菜单名即可添加菜单的绑定事件。

    极语言如何删除菜单的绑定事件?

    在一个控件上鼠标右键,然后点击删除事件,把你要删除的事件名称弄进去即可。

    数据表的使用

    程序段 窗体消息(窗口,消息,参数,数据)
        判断(消息)为 窗口关闭{停止(0)}
        为 单击左键{左键点击(参数)}
        否则 处理窗口(窗口,消息,参数,数据)
    结束
    
    //见过Excel表格嘛?
    
    //定义表格名称并且定义表格的列名 密码 密保 邮箱 性别四个字段
    //同时仅仅是定义名称,都可以放在外面,尤其是 全局变量.
    //数据表 属于 结构体 数据类型, 结构体 数据类型属于 全局变量.
    数据表 账号表{文本 密码[16],密保[16],邮箱[16];整数 性别}
    
    
    
    程序段 窗体启动
    //定义可存入表记录数 可存入5000行数据
    重置 账号表(5000);
    //定义第1行数据
    账号表(0).密码="123";
    账号表(0).密保="宠物";
    账号表(0).邮箱="123@qq.com";
    账号表(0).性别=1;
    //定义第2行数据
    账号表(1).密码="---";
    账号表(1).密保="---";
    账号表(1).邮箱="123---@qq.com";
    账号表(1).性别=0;
    
    整数 aa=账号表(0).密码;
    //获取数据表的行数
    整数 bb=账号表.rows;
    //获取数据表的列数
    整数 cc=账号表.cols;
    文本 行数[10]=bb;
    文本 列数[10]=cc;
    信息框(0,行数,"你好",信息图标);
    结束
    /*
    为啥获取账号表的行数或列数需要多一个数据转换的步骤?
    就是整数这个数据类型始终传递的是变量的地址,当声明一个变量时,需要从内存中申请一个地址给它,现在我们已经在内存中申请到地址了,然后当程序去引用时,直接引用这个整数变量就能显示数据。
    但是,当我获取数据表的行数或者列数时,也需要使用整数先给它从内存中申请一个地址,然后由于信息框中的提示信息属于文本类型的数据,所以需要再给它这个变量的数据转成文本类型才行。
    上面我获取的账号表(0).密码这个因为数据本身已经是文本类型,所以现在看起来才少了一步骤。
    整数变量获取了地址----引用这个变量能显示地址上的数据------至于你想要在屏幕上显示的话,那么要看显示在屏幕上那个函数里规定的数据类型是啥,来决定需不需要转换数据。
    */

    播放和停止音乐

    //添加一首歌曲
    音乐播放.添加("1.mp3")
    //播放序号为1的歌曲
    音乐播放.开始(1)
    //停止序号为1的歌曲
    音乐播放.停止(1)

    极语言如何更改程序图标?

    ide界面-设置-程序图标

    极语言如何让程序发出嘀的一声?

    程序段 窗体启动
    嘀(377,1000);
    结束
    /*
    嘀(频率,持续时间);
    频率:在37到32767之间
    持续时间:毫秒数,1000毫秒等于1秒,1分钟就是60000毫秒
    */

    极语言IDE窗体设计界面的组件框分别有哪些?

    注意:下面的组件排列顺序与窗体设计界面的组件位置是一一对应的。

    除了第一个指针不是用来画界面的,其他的组件数量共有31个。

    指针 图像框 标签 按钮
    网页框 编辑框 复选框 单选钮
    分组框 列表框 组合框 高级组合框
    滚动条 标头 调节框 工具提示
    选项卡 工具条 状态栏 进度条
    树表 表格 文档编辑 滑块条
    日期框 月历 影音动画 链接
    热键 分页框 IP框 用户控件

    极语言编译的程序如何获得管理员权限?

    菜单项-工程-版本信息-合法版权或文件描述里写上install或者update。这样编译后的程序将拥有获取管理员的权限。

    极语言如何把窗体文件的编程代码?

    选中窗体或窗体文件,点击菜单栏倒数第四个按钮:切换设计。能把窗口文件图像转换成代码模式。

    如何调用另一个窗体?

    已有窗体1,创建窗体2,选中窗体2,切换设计,小程序后面的“加载窗体2”就是一个函数,可以在其他函数中调用这个函数名即可调用显示出该窗体。

    创建线程

    创建线程(属性,堆栈,@函数,参数,标志,标识);
        
    
    /*
    函数说明:
    一般情况下,需要填写参数三.
    参考链接
    https://www.cnblogs.com/ay-a/p/8762951.html
    第一个参数:表示线程内核对象的安全属性,一般传入NULL表示使用默认设置。(null就是0,就是空)
    第二个参数:表示线程栈空间大小。传入0表示使用默认大小(1MB)。
    第三个参数:表示新线程所执行的线程函数地址,多个线程可以使用同一个函数地址。
    第四个参数:是传给线程函数的参数。
    第五个参数:指定额外的标志来控制线程的创建,为0表示线程创建之后立即就可以进行调度,如果为CREATE_SUSPENDED则表示线程创建后暂停运行,这样它就无法调度,直到调用ResumeThread()。
    第六个参数:将返回线程的ID号,传入NULL表示不需要返回该线程ID号。(null就是0,就是空)
    */
    
    //函数示例
    程序段 窗体启动
    创建线程(0,0,@播放音乐,0,0,0);
    结束
    小程序 播放音乐
    音乐播放.添加("1.mp3");
    音乐播放.开始(1);
    结束

    开启线程

    开启线程(@函数,堆栈大小,参数);
    /*
    一般情况下,需要填写参数一。
    函数说明:
    参考链接
    https://www.cnblogs.com/LiaoQian1996/p/12923318.html
    参数1:函数名/小程序名
    参数2:新线程的堆栈大小;设为0表示与主线程使用一样的堆栈
    参数3:参数列表(没有参数时为NULL,null就是0,就是空)
    */
    
    //函数示例
    程序段 窗体启动
    开启线程(@播放音乐,0,0);
    结束
    小程序 播放音乐
    音乐播放.添加("1.mp3");
    音乐播放.开始(1);
    结束

    开启线程和创建线程目前不清楚有何区别,目前知道的就是

    • 两者作用一样
    • 创建线程,这个函数最后一个参数可以把线程的状态返回到一个整数值上,这样你就知道这个线程当前啥状态,成功了还是失败了还是说有其他情况。这个状态有11031种,参考https://www.cnblogs.com/carekee/articles/2196518.html

    字串长度

    函数说明:
    字串长度(参数1);
    参数1:字符或字符串.获取文字的长度,英文1字节,汉字2字节;
    函数示例:
    程序段 窗体启动
    整数 文件;
    文件=建文件("12.htm",0);
    整数 内容="你好你好";
    写文件(文件,内容,字串长度(内容));
    关文件(文件);
    结束

    文件框类

    文件框类 文件框(长度=76,路长=64);
    文本 路径[64];
    程序段 窗体启动
    文件框.窗口=窗体;
    文件框.路径=路径;
    文件框.分类 = "文本文件'\0'*.txt;*.inc'\0'所有文件'\0'*.*'\0'";
    结束
    程序段 按钮2_点击
    文件框.标题="打开文件11111"
    如果(文件选框(文件框))
    信息框(0,路径,"选择的文件是",信息图标);
    
    结束
    程序段 按钮3_点击
    文件框.标题="保存为1111"
    如果(保存选框(文件框))
    信息框(0,路径,"选择的文件是",信息图标);
    建文件(路径,0);
    关文件(路径);
    结束

    这个文件框类的所有成员,构成了一个文件框类这样一个东西,这个文件框类就是一种数据,它由19个东西构成,这19个东西被称为他的成员,每个成员占用4字节,然后加起来就是这个文件框类的数据结构的长度,也就是19*4=76字节,这就是为啥要填写76这个数字的原因.

    创建窗口

    /窗口=创建窗口(扩展,类名,标题,样式,左,上,宽,高,父窗,菜单/标识,实例,数据);
    //作用:创建窗口。
    //函数使用示例:
    窗体=创建窗口($200,程序.名称,"编辑器",$100F0064,左,上,993,595,0,菜单,0,0);
    编辑框1=创建窗口($200,"Edit","编辑框1",$50011004,25,60,150,335,窗体,1,4,0);
    编辑框2=创建窗口($200,"Edit","编辑框2",$50011004,205,75,171,45,窗体,2,4,0);
    文档编辑3=创建窗口($200,"RichEdit20A","RichEdit20A编辑框2",$50241004,225,165,170,220,窗体,3,23,0);
    文档编辑4=创建窗口($200,"RichEdit20W","RichEdit20W编辑框2",$50241004,400,165,170,220,窗体,3,23,0);
    文档编辑5=创建窗口($200,"RichEdit","RichEdit编辑框2",$50241004,590,165,170,220,窗体,3,23,0);
    /*
    参数解释:
    扩展:未知,目前创建窗口统一写$200。
    类名:使用哪个组件名称,详见win32api里面的组件名。
    标题:设置该组件的名称或者内容。
    样式:未知,目前已知的样式可以填写$100F0064、$50011004,样式列表未知。
    左:该组件当前最左顶点的x坐标,就是起始坐标x,或者叫水平坐标。
    上:该组件当前最左顶点的y坐标,就是起始坐标y,或者叫垂直坐标。
    宽:组件的宽度。
    高:组件的高度。
    父窗:该组件的父组件窗口是谁。
    菜单/标识:未知。
    实例:未知。
    数据:未知。
    
    富编辑框,目前发现有三个:RichEdit20A、RichEdit20W、RichEdit。
    RichEdit组件无边框
    其他区别未知。
    
    字串长度(文字);
    作用:获取文字的长度,英文1字节,汉字2字节。
    目前不知道返回值是啥类型。
    */

    编辑器使用问题

    如果编辑器输入不了汉字,可以点一下Ecs键。可能你按了Ctrl+F组合键,就会出现这种情况。

    注意大括号后面不要有分号。

    注意连续声明不同数据类型的变量或者常量时,加分号。

    代码自动联想提示功能按F2即可开启,使用拼音首字母即可出现想要的关键字。

    极语言中的窗口一般是指窗口名,在微软文档中一般叫窗口句柄。

    一级菜单通常点开都是子菜单,就是说一级菜单的功能只负责展开和收起子菜单,所以极语言的一级菜单中不会对子菜单进行设置点击事件,也只是用来展开和收起子菜单的功能,只有子菜单的绑定事件会生效。