Смешные ошибки windows играть 2000

  • Create
  • Explore
  • Ideas
  • About

    Windows 2000 Crazy Error Maker » Remixes


    • Windows 2000 Crazy Error Maker remix

      by red190yt


    • Windows 2000 Crazy Error Maker But Sounds are speed up

      by leonardo8965


    • Windows 2000 Crazy Error Maker remix

      by lando0818


    • Windows 96 Crazy Error Maker

      by chubuga


    • Windows 2000 Crazy Error Maker remix

      by alexRobokidz


    • Windows 2000 Crazy Error Maker remix

      by Orangeerror123


    • Windows NT 5.0 Beta 2 Crazy Error Maker

      by AndersandAngus2012


    • SerenityOS Crazy Error Maker with Windows 2K Sounds

      by 2020Windows10X


    • Mastercard Crazy Error Maker

      by jordandusenge


    • Windows ME Crazy Error

      by WindowsXPdp


    • Windows 2000 Crazy Error Maker remix-3

      by jordandusenge


    • Windows 2000.EXE Crazy Error Maker

      by FixEyeTop666


    • Windows Whistler Crazy Error Maker

      by pucijodzia


    • Windows 2000 Crazy Error Maker

      by Kal_ILikeWindows10


    • Windows 2000 Crazy Error Maker with Windows 7 Sounds!

      by CrazyErrorMaker2


    • Windows Error Spamer

      by AFEDOROW


    • Windows 2000 Crazy Error Maker remix

      by tomafelicia878—


    • Windows NT 5.0 Crazy Error Maker WIP

      by SiroCzE


    • Windows 2000 Crazy Error Maker remix

      by windows10_alike

    Error message title:

    Error message main text:

    Error message secondary text:

    icon:

    Each button has 3 values: text, style, and secondary value

    Style is a number which dictates the buttons look (the exact type of style is different for every os.)

    The secondary value controls things that are independent of style, most os’s dont use it except a few (mac, 3.1, and the 9x).

    button 1:

    button 2:

    button 3:

    active:

    secondary value (different behavior per os):

    click the button only ONCE, and wait a while. the first generation takes a minute, but after that it should be faster

    theme used from the amazing Skeuocord https://github.com/Marda33/SkeuoCord (link)

    {
    «packages»: [
    «numpy»,
    «Pillow»
    ]
    }

    from js import console, document, ImageData, Uint8ClampedArray, CanvasRenderingContext2D as Context2d, requestAnimationFrame, Image as jsImage
    #import generate
    from pyodide.ffi import to_js, create_proxy
    from pyodide.http import pyfetch
    from numpy import *
    from PIL import Image, ImageFont, ImageDraw, ImageMath,ImageChops, ImageOps
    from math import ceil,floor
    import asyncio
    import io

    cache = {}
    def blobbytes(x):
    print(«the x»)
    print(x)
    return x.arrayBuffer()
    async def imageopenGETBYTES(text):
    text = text.replace(«\\»,»/»)
    text = text.replace(«//»,»/»)
    text = text.replace(«./»,»»)
    if( not text.startswith(«http») ):
    url = f»https://raw.githubusercontent.com/relt-1/WindowCreator/main/{text}»
    response = await pyfetch(url)
    if response.status == 200:
    return await response.bytes()
    else:
    canvas = document.getElementById(«customiconcanvas»)
    img = document.getElementById(«customiconimg»)
    canvas.width = img.width
    canvas.height = img.height
    context = canvas.getContext(«2d»)
    context.drawImage(img,0,0,img.width,img.height,0,0,img.width,img.height)
    imagedatas = context.getImageData(0,0,img.width,img.height)
    imagepil = Image.frombytes(«RGBA»,(img.width,img.height),bytes(imagedatas.data))
    finalbytes = io.BytesIO()
    imagepil.save(finalbytes, format=»PNG»)
    return finalbytes.getvalue()
    async def imageopenWEB(text):
    global cache
    if text in cache:
    return cache[text]
    else:
    bytes_list = bytearray(await imageopenGETBYTES(text))
    bytes = io.BytesIO(bytes_list)
    image = Image.open(bytes).convert(«RGBA»)
    cache[text] = image
    return image
    def put(canvas, image,a,b,alignment=»00″):
    canvas.alpha_composite(image,(int(a)-( image.size[0] * int(alignment[0]) // 2 ),int(b)-( image.size[1] * int(alignment[1]) // 2) ) )
    return canvas
    def put7(canvas, image, a, b, alignment = «00»): #this is the same as put(), but using windows’s weird transparency algorithm. ImageRGB+(BackgroundRGB*ImageAlpha). this assumes that background alpha is 1(fully opaque), i haven’t figured out what it does on a transparent background
    x = int(a)-( image.size[0] * int(alignment[0]) // 2 )
    y = int(b)-( image.size[1] * int(alignment[1]) // 2 )
    cr, cg, cb, ca = canvas.crop((x,y,x+w(image),y+h(image))).split()
    ir, ig, ib, ia = image.split()
    r = ImageMath.eval(«convert( c+(b*(255-a)/255) ,’L’)»,c=ir,b=cr,a=ia)
    g = ImageMath.eval(«convert( c+(b*(255-a)/255) ,’L’)»,c=ig,b=cg,a=ia)
    b = ImageMath.eval(«convert( c+(b*(255-a)/255) ,’L’)»,c=ib,b=cb,a=ia)
    canvas.paste(Image.merge(«RGBA»,(r,g,b,ca)),(x,y))
    return canvas
    #async def ApplyRules(rules,width,height,
    def h(img): #get the height
    return img.size[1]
    def w(img): #get the width
    return img.size[0]
    def cropx(img,a,b): #crop but only x
    return img.crop((a,0,b,h(img)))
    def cropy(img,a,b): #crop but only y
    return img.crop((0,a,x(img),b))
    def gradient(width,height,colora,colorb):
    r = Image.frombytes(«L»,(width,1),uint8(linspace(colora[0],colorb[0],width)))
    g = Image.frombytes(«L»,(width,1),uint8(linspace(colora[1],colorb[1],width)))
    b = Image.frombytes(«L»,(width,1),uint8(linspace(colora[2],colorb[2],width)))
    final = Image.merge(«RGB»,(r,g,b)).convert(«RGBA»)
    return final.resize((width,height))

    async def createtext(text,fontdirectory,color=(255,255,255,255), buffersize=(1000,1000),underline=False,underlineoffset=0,kerningadjust=0):
    drawntext = Image.new(«RGBA»,buffersize,(255,127,127,0))
    width = 0
    height = 0
    line = 0
    cursorpos = 0
    newlinesize = int(await imageopenGETBYTES(fontdirectory+»newlinesize.txt»))
    if underline:
    i = text[0]
    if(i==»\n»):
    height += newlinesize
    line += newlinesize
    cursorpos = 0
    else:
    char = await imageopenWEB(fontdirectory+str(ord(i))+».png»)
    whitechar = await imageopenWEB(fontdirectory+»white»+str(ord(i))+».png»)
    char = put(char, Image.new(«RGBA»,(w(char),1),(255,255,255,255)),0,h(char)-2+underlineoffset)
    whitechar = put(whitechar, Image.new(«RGBA»,(w(char),1),(255,255,255,255)),0,h(char)-2+underlineoffset)
    cred, cgreen, wcblue, calpha = char.split()
    wcred, wcgreen, cblue, wcalpha = whitechar.split()
    alpha2 = ImageMath.eval(«convert( int( (r1-r2+255+g1-g2+255+b1-b2+255)/3*alp/255 ), ‘L’)»,r1 = cred,r2 = wcred,b1 = cblue,b2 = wcblue,g1 = cgreen,g2 = wcgreen, alp = (color[3]))
    r = Image.new(«L»,(w(char),h(char)),color[0])
    g = Image.new(«L»,(w(char),h(char)),color[1])
    b = Image.new(«L»,(w(char),h(char)),color[2])
    char = Image.merge(«RGBA»,(r,g,b,alpha2))
    drawntext.paste(char,(cursorpos,line))
    cursorpos +=w(char)+kerningadjust
    width = max(width,cursorpos)
    height = max(height,h(char))
    text = text[1:]
    for i in text:
    if(i==»\n»):
    height += newlinesize
    line += newlinesize
    cursorpos = 0
    continue
    char = await imageopenWEB(fontdirectory+str(ord(i))+».png»)
    whitechar = await imageopenWEB(fontdirectory+»white»+str(ord(i))+».png»)
    cred, cgreen, wcblue, calpha = char.split()
    wcred, wcgreen, cblue, wcalpha = whitechar.split()
    alpha2 = ImageMath.eval(«convert( int( (r1-r2+255+g1-g2+255+b1-b2+255)/3*alp/255 ), ‘L’)»,r1 = cred,r2 = wcred,b1 = cblue,b2 = wcblue,g1 = cgreen,g2 = wcgreen, alp = (color[3]))
    r = Image.new(«L»,(w(char),h(char)),color[0])
    g = Image.new(«L»,(w(char),h(char)),color[1])
    b = Image.new(«L»,(w(char),h(char)),color[2])
    char = Image.merge(«RGBA»,(r,g,b,alpha2))
    drawntext.paste(char,(cursorpos,line))
    cursorpos +=w(char)+kerningadjust
    width = max(width,cursorpos)
    height = max(height,h(char))
    return drawntext.crop((0,0,width,height))
    async def createtextmac(text,fontdirectory,color=(0,0,0,255), buffersize=(1000,1000),underline=False, underlineoffset=0,kerningadjust=0):
    drawntext = Image.new(«RGBA»,buffersize,(255,127,127,0))
    width = 0
    height = 0
    line = 0
    cursorpos = 0
    newlinesize = int(await imageopenGETBYTES(fontdirectory+»newlinesize.txt»))
    if(underline):
    i = text[0]
    if(i==»\n»):
    height += newlinesize
    line += newlinesize
    cursorpos = 0
    else:
    char = await imageopenWEB(fontdirectory+str(ord(i))+».png»)
    char = put(char, Image.new(«RGBA»,(w(char),1),(255,255,255,255)),0,h(char)-2+underlineoffset)
    colorimg = Image.new(«RGBA»,(w(char),h(char)),(color[0],color[1],color[2],255))
    char = ImageChops.multiply(char,colorimg)
    drawntext.paste(char,(cursorpos,line))
    cursorpos +=w(char)+kerningadjust
    width = max(width,cursorpos)
    height = max(height,h(char))
    text = text[1:]
    for i in text:
    if(i==»\n»):
    height += newlinesize
    line += newlinesize
    cursorpos = 0
    continue
    char = await imageopenWEB(fontdirectory+str(ord(i))+».png»)
    colorimg = Image.new(«RGBA»,(w(char),h(char)),(color[0],color[1],color[2],255))
    char = ImageChops.multiply(char,colorimg)
    drawntext.paste(char,(cursorpos,line))
    cursorpos +=w(char)+kerningadjust
    width = max(width,cursorpos)
    height = max(height,h(char))
    return drawntext.crop((0,0,width,height))
    async def createtext7(im,x,y,text,fontdirectory,color=(0,0,0,255), buffersize=(1000,1000),align=»00″, kerningadjust=0, fit=9999999):
    drawntext = Image.new(«RGBA»,buffersize,(255,255,0,0))
    whitedrawntext = Image.new(«RGBA»,buffersize,(0,0,255,0))
    width = 0
    height = 0
    line = 0
    cursorpos = 0
    newlinesize = int(await imageopenGETBYTES(fontdirectory+»newlinesize.txt»))
    for i in text:
    if(i==»\n»):
    height += newlinesize
    line += newlinesize
    cursorpos = 0
    continue
    char = await imageopenWEB(fontdirectory+str(ord(i))+».png»)
    if(cursorpos+w(char)+kerningadjust > fit):
    height += newlinesize
    line += newlinesize
    cursorpos = 0
    continue
    whitechar = await imageopenWEB(fontdirectory+»white»+str(ord(i))+».png»)
    #colorimg = Image.new(«RGBA»,(w(char),h(char)),(color[0],color[1],color[2],255))
    #char = ImageChops.multiply(char,colorimg)
    drawntext.paste(char,(cursorpos,line))
    whitedrawntext.paste(whitechar,(cursorpos,line))
    cursorpos +=w(char)+kerningadjust
    width = max(width,cursorpos)
    height = max(height,h(char))
    drawntext = drawntext.crop((0,0,width,height))
    drawntext = put(Image.new(«RGBA»,(w(im),h(im)),(0,0,0,0)),drawntext,x,y,align)
    whitedrawntext = whitedrawntext.crop((0,0,width,height))
    whitedrawntext = put(Image.new(«RGBA»,(w(im),h(im)),(0,0,0,0)),whitedrawntext,x,y,align)
    imgcolor = Image.new(«RGBA»,(w(im),h(im)),color)
    c = imgcolor.split()
    ir,ig,ib,ia = im.split()
    r,g,b,a = drawntext.split()
    wr,wg,wb,wa = whitedrawntext.split()
    r = ImageMath.eval(«convert( b*c/255+(255-w)*(255-c)/255 ,’L’)»,w=r,b=wr,c=c[0])
    g = ImageMath.eval(«convert( b*c/255+(255-w)*(255-c)/255 ,’L’)»,w=g,b=wg,c=c[1])
    b = ImageMath.eval(«convert( b*c/255+(255-w)*(255-c)/255 ,’L’)»,w=wb,b=b,c=c[2])
    #imgcolor.show()
    #drawntext.show()
    red = ImageMath.eval(«convert( int(((i*(255-t)/255+(c*t)/255)*a/255+i*(255-a)/255)*o/255+(i*(255-o))/255) , ‘L’)»,i=ir,t=r,c=c[0],a=a,o=c[3]) #i is the image RGB, t is the text RGB, c is the RGB color variable, a is the text alpha, o is the alpha color variable
    #ImageMath.eval(«convert( int((255-t)*255/255),’L’)»,i=ir,t=r,c=c[0]).show()
    green = ImageMath.eval(«convert( int(((i*(255-t)/255+(c*t)/255)*a/255+i*(255-a)/255)*o/255+(i*(255-o))/255) , ‘L’)»,i=ig,t=g,c=c[1],a=a,o=c[3])
    blue = ImageMath.eval(«convert( int(((i*(255-t)/255+(c*t)/255)*a/255+i*(255-a)/255)*o/255+(i*(255-o))/255) , ‘L’)»,i=ib,t=b,c=c[2],a=a,o=c[3])
    alpha = ImageMath.eval(«convert( int(((((r+g+b)/3+(255-(r+g+b)/3)*i/255))*t/255+(i*(255-t))/255)*o/255+(i*(255-o))/255) , ‘L’)»,i=ia,r=r,g=g,b=b,t=a,o=c[3]) #i is the image alpha, r,g,b are RGB values of the text, t is text alpha, o is color alpha
    result = Image.merge(«RGBA»,(red,green,blue,alpha))
    return result

    async def measuretext7(text,fontdirectory, buffersize=(1000,1000), kerningadjust=0, fit=9999999): #this gives width and height of text using windows 7 rendering
    #drawntext = Image.new(«RGBA»,buffersize,(255,127,127,0))
    width = 0
    height = 0
    line = 0
    cursorpos = 0
    newlinesize = int(await imageopenGETBYTES(fontdirectory+»newlinesize.txt»))
    for i in text:
    if(i==»\n»):
    height += newlinesize
    line += newlinesize
    cursorpos = 0
    continue
    char = await imageopenWEB(fontdirectory+str(ord(i))+».png»)
    if(cursorpos+w(char)+kerningadjust > fit):
    height += newlinesize
    line += newlinesize
    cursorpos = 0
    continue
    #colorimg = Image.new(«RGBA»,(w(char),h(char)),(color[0],color[1],color[2],255))
    #char = ImageChops.multiply(char,colorimg)
    #drawntext.paste(char,(cursorpos,line))
    cursorpos +=w(char)+kerningadjust
    width = max(width,cursorpos)
    height = max(height,h(char))
    return [width,height]

    async def createtextubuntu(im,x,y,text,fontdirectory,color=(0,0,0,255), buffersize=(1000,1000),align=»00″):
    drawntext = Image.new(«RGBA»,buffersize,(255,255,0,0))
    width = 0
    height = 0
    line = 0
    cursorpos = 0
    newlinesize = int(await imageopenGETBYTES(fontdirectory+»newlinesize.txt»))
    for i in text:
    if(i==»\n»):
    height += newlinesize
    line += newlinesize
    cursorpos = 0
    continue
    char = await imageopenWEB(fontdirectory+str(ord(i))+».png»)
    #colorimg = Image.new(«RGBA»,(w(char),h(char)),(color[0],color[1],color[2],255))
    #char = ImageChops.multiply(char,colorimg)
    drawntext.paste(char,(cursorpos,line))
    cursorpos +=w(char)
    width = max(width,cursorpos)
    height = max(height,h(char))
    drawntext = drawntext.crop((0,0,width,height))
    drawntext = put(Image.new(«RGBA»,(w(im),h(im)),(0,0,0,0)),drawntext,x,y,align)
    imgcolor = Image.new(«RGBA»,(w(im),h(im)),color)
    c = imgcolor.split()
    ir,ig,ib,ia = im.split()
    r,g,b,a = drawntext.split()
    #imgcolor.show()
    red = ImageMath.eval(«convert( int(((i*(255-t)/255+(c*t)/255)*a/255+i*(255-a)/255)*o/255+(i*(255-o))/255) , ‘L’)»,i=ir,t=r,c=c[0],a=a,o=c[3]) #i is the image RGB, t is the text RGB, c is the RGB color variable, a is the text alpha, o is the alpha color variable
    #ImageMath.eval(«convert( int((255-t)*255/255),’L’)»,i=ir,t=r,c=c[0]).show()
    green = ImageMath.eval(«convert( int(((i*(255-t)/255+(c*t)/255)*a/255+i*(255-a)/255)*o/255+(i*(255-o))/255) , ‘L’)»,i=ig,t=g,c=c[1],a=a,o=c[3])
    blue = ImageMath.eval(«convert( int(((i*(255-t)/255+(c*t)/255)*a/255+i*(255-a)/255)*o/255+(i*(255-o))/255) , ‘L’)»,i=ib,t=b,c=c[2],a=a,o=c[3])
    alpha = ImageMath.eval(«convert( int(((((r+g+b)/3+(255-(r+g+b)/3)*i/255))*t/255+(i*(255-t))/255)*o/255+(i*(255-o))/255) , ‘L’)»,i=ia,r=r,g=g,b=b,t=a,o=c[3]) #i is the image alpha, r,g,b are RGB values of the text, t is text alpha, o is color alpha
    result = Image.merge(«RGBA»,(red,green,blue,alpha))
    return result

    def resize(im,width,height,left,right,up,down,scalingmethod=Image.NEAREST): #this resizes image but keeps margins intact. think of Unity GUI elements
    if width < w(im):
    im = im.resize((width,h(im)),scalingmethod)
    left = 1
    right = 1
    if height < h(im):
    im = im.resize((w(im),height),scalingmethod)
    up = 1
    down = 1
    result = Image.new(«RGBA»,(width,height),(0,0,0,0))
    tl = im.crop((0,0,left,up))
    tm = im.crop((left,0,w(im)-right,up))
    tr = im.crop((w(im)-right,0,w(im),up))
    ml = im.crop((0,up,left,h(im)-down))
    mm = im.crop((left,up,w(im)-right,h(im)-down))
    mr = im.crop((w(im)-right,up,w(im),h(im)-down))
    dl = im.crop((0,h(im)-down,left,h(im)))
    dm = im.crop((left,h(im)-down,w(im)-right,h(im)))
    dr = im.crop((w(im)-right,h(im)-down,w(im),h(im)))
    result = put(result,tl,0,0)
    result = put(result,tm.resize((width-left-right,h(tm)),scalingmethod),left,0)
    result = put(result,tr,width,0,»20″)
    result = put(result,ml.resize((w(ml),height-up-down),scalingmethod),0,up)
    result = put(result,mm.resize((width-left-right,height-up-down),scalingmethod),left,up)
    result = put(result,mr.resize((w(mr),height-up-down),scalingmethod),width,up,»20″)
    result = put(result,dl,0,height,»02″)
    result = put(result,dm.resize((width-left-right,h(dm)),scalingmethod),left,height,»02″)
    result = put(result,dr,width,height,»22″)
    return result

    def resizeanchor(im,x1,y1,x2,y2,left,right,up,down,scalingmethod=Image.NEAREST): #this is resize, but you give it desired coordinates and it calculates the size the image should be
    return resize(im,x2-x1,y2-y1,left,right,up,down,scalingmethod)

    def tile(im,width,height): #this tiles an image
    result = Image.new(«RGBA»,(width,height),(0,0,0,0))
    for x in range(ceil(width/w(im))):
    for y in range(ceil(height/h(im))):
    result = put(result,im,x*w(im),y*h(im))
    return result

    #the button functions return an image of a button for the OS.

    async def CreateXPButton(text,style=0):
    styles = [«xp/Button.png»,»xp/Button Hovered.png»,»xp/Button Clicked.png»,»xp/Button Disabled.png»,»xp/Button Default.png»]
    style = min(style,len(styles)-1)
    Button = await imageopenWEB(styles[style])
    col = (0,0,0,255)
    if(style==3):
    col = (161,161,146,255)
    textgraphic = await createtext(text,».\\xp\\fonts\\text\\»,col)
    Button = resize(Button,max(w(textgraphic)+16,75),max(23,h(textgraphic)+10),8,8,9,9,Image.NEAREST)
    Button = put(Button,textgraphic,w(Button)//2-w(textgraphic)//2,5)
    return Button

    async def CreateMacButton(text,style=0):
    styles = [«mac/Button.png»,»mac/Button Disabled.png»]
    style = min(style,len(styles)-1)
    Button = await imageopenWEB(styles[style])
    col = (0,0,0,255)
    if(style==1):
    col = (161,161,146,255)
    textgraphic = await createtextmac(text,».\\mac\\fonts\\caption\\»,col)
    Button = resize(Button,max(w(textgraphic)+10,60),max(20,h(textgraphic)+4),2,2,2,2,Image.NEAREST)
    else:
    textgraphic = await createtextmac(text,».\\mac\\fonts\\caption\\»,col)
    Button = resize(Button,max(w(textgraphic)+10,60),max(20,h(textgraphic)+4),4,4,4,4,Image.NEAREST)
    Button = put(Button,textgraphic,floor(w(Button)/2-w(textgraphic)/2),2)
    return Button

    async def Create7Button(text,style=0):
    styles = [«7/Button.png»,»7/Button.png»,»7/Button.png»,»7/Button Disabled.png»,»7/Button Defaulted.png»,»7/Button Defaulted Animation.png»]
    Button = await imageopenWEB(styles[min(style,len(styles)-1)])
    col = (0,0,0,255)
    #if(style==3):
    # col = (161,161,146,255)
    #textgraphic = await createtext(text,».\\7\\fonts\\text\\»,col)
    textsize = await measuretext7(text,»7\\fonts\\text\\»,kerningadjust=-1)
    Button = resize(Button,max(textsize[0]+16,86),max(24,textsize[1]+9),3,3,3,3,Image.NEAREST)
    Button = await createtext7(Button,w(Button)//2-textsize[0]//2,4,text,»7\\fonts\\text\\»,kerningadjust=-1)
    return Button

    async def Create7TaskDialogButton(text,style=0):
    styles = [«7/Button.png»,»7/Button.png»,»7/Button.png»,»7/Button Disabled.png»,»7/Button Defaulted.png»,»7/Button Defaulted Animation.png»]
    Button = await imageopenWEB(styles[min(style,len(styles)-1)])
    col = (0,0,0,255)
    #if(style==3):
    # col = (161,161,146,255)
    #textgraphic = await createtext(text,».\\7\\fonts\\text\\»,col)
    textsize = await measuretext7(text,»7\\fonts\\text\\»,kerningadjust=-1)
    Button = resize(Button,max(textsize[0]+30,66),max(21,textsize[1]+6),3,3,3,3,Image.NEAREST)
    Button = await createtext7(Button,w(Button)//2-textsize[0]//2,3,text,»7\\fonts\\text\\»,kerningadjust=-1)
    return Button

    async def Create3_1Button(text,style=0,underline=False):
    styles = [«3.1/Button.png»,»3.1/Button Default.png»]
    style = min(style,len(styles)-1)
    Button = await imageopenWEB(styles[style])
    textgraphic = await createtextmac(text,»3.1//fonts//text//»,underline=underline)
    if style == 1:
    Button = resize(Button,max(58,w(textgraphic)+5+5),h(textgraphic)+6+6,4,4,4,4)
    Border = await imageopenWEB(«3.1//Button Text Outline.png»)
    BorderImg = tile(Border,max(58,w(textgraphic)+5+5),h(textgraphic)+6+6)
    textx = floor(w(Button)/2-w(textgraphic)/2-1)
    textendx = textx+w(textgraphic)
    Button = put(Button,textgraphic,textx,6,»00″)
    Button = put(Button,BorderImg.crop((textx-2, 6, textx-1, 7+h(textgraphic))), textx-2, 6)
    Button = put(Button,BorderImg.crop((textx-1, 7+h(textgraphic), textendx, 7+h(textgraphic)+1)), textx-1, 7+h(textgraphic))
    Button = put(Button,BorderImg.crop((textendx+1, 6, textendx+2, 7+h(textgraphic))), textendx+1, 6)
    Button = put(Button,BorderImg.crop((textx-1, 5, textendx, 6)), textx-1, 5)
    else:
    Button = resize(Button,max(58,w(textgraphic)+6+6),h(textgraphic)+6+6,3,3,3,3)
    Button = put(Button,textgraphic,floor(w(Button)/2-w(textgraphic)/2-1),6,»00″)
    return Button

    async def CreateUbuntuButton(text,style=0,predefinedsize=[]):
    styles = [«ubuntu/Button.png»,»ubuntu/Button Default.png»]
    Button = await imageopenWEB(styles[min(style,len(styles)-1)])
    if predefinedsize:
    size = predefinedsize
    else:
    size = await measuretext7(text,»ubuntu/fonts/text/»)
    size[0] += 16
    size[1] += 10
    size[0] = max(85,size[0])
    size[1] = max(29,size[1])
    Button = resize(Button,size[0],size[1],5,5,5,5,scalingmethod=Image.BICUBIC)
    Button = await createtextubuntu(Button, size[0]//2, size[1]//2, text, «ubuntu/fonts/text/»,(60,59,55,255),align=»11″)
    return Button

    async def Create95Button(text,style=0,underline=False):
    styles = [«95/Button.png»,»95/Button Default.png»]
    style = min(style,len(styles)-1)
    Button = await imageopenWEB(styles[style])
    textgraphic = await createtextmac(text,»95//fonts//text//»,underline=underline,underlineoffset=1)
    if style == 1:
    Button = resize(Button,max(75,w(textgraphic)+5+5),h(textgraphic)+6+4,3,3,3,3)
    Border = await imageopenWEB(«95//Button Text Outline.png»)
    BorderImg = tile(Border,max(75,w(textgraphic)+5+5),h(textgraphic)+6+4)
    textx = floor(w(Button)/2-w(textgraphic)/2)
    outx = 4
    outendx = max(75,w(textgraphic)+5+5)-4
    #BorderImg.show()
    Button = put(Button,textgraphic,textx,4)
    Button = put(Button,BorderImg.crop((outx, 4, outx+1, 6+h(textgraphic))), outx, 4)
    Button = put(Button,BorderImg.crop((outx, 5+h(textgraphic), outendx, 5+h(textgraphic)+1)), outx, 5+h(textgraphic))
    Button = put(Button,BorderImg.crop((outendx-1, 4, outendx, 6+h(textgraphic))), outendx-1, 4)
    Button = put(Button,BorderImg.crop((outx, 4, outendx, 5)), outx, 4)
    else:
    Button = resize(Button,max(75,w(textgraphic)+5+5),h(textgraphic)+4+6,2,2,2,2)
    Button = put(Button,textgraphic,floor(w(Button)/2-w(textgraphic)/2),4)
    return Button
    async def Create2000Button(text,style=0,underline=False):
    styles = [«2000/Button.png»,»2000/Button Default.png»]
    style = min(style,len(styles)-1)
    Button = await imageopenWEB(styles[style])
    textgraphic = await createtext(text,»xp//fonts//text//»,(0,0,0,255),underline=underline,underlineoffset=1)
    if style == 1:
    Button = resize(Button,max(75,w(textgraphic)+5+5),h(textgraphic)+6+4,3,3,3,3)
    Border = await imageopenWEB(«95//Button Text Outline.png»)
    BorderImg = tile(Border,max(75,w(textgraphic)+5+5),h(textgraphic)+6+4)
    textx = floor(w(Button)/2-w(textgraphic)/2)
    outx = 4
    outendx = max(75,w(textgraphic)+5+5)-4
    #BorderImg.show()
    Button = put(Button,textgraphic,textx,4)
    Button = put(Button,BorderImg.crop((outx, 4, outx+1, 6+h(textgraphic))), outx, 4)
    Button = put(Button,BorderImg.crop((outx, 5+h(textgraphic), outendx, 5+h(textgraphic)+1)), outx, 5+h(textgraphic))
    Button = put(Button,BorderImg.crop((outendx-1, 4, outendx, 6+h(textgraphic))), outendx-1, 4)
    Button = put(Button,BorderImg.crop((outx, 4, outendx, 5)), outx, 4)
    else:
    Button = resize(Button,max(75,w(textgraphic)+5+5),h(textgraphic)+4+6,2,2,2,2)
    Button = put(Button,textgraphic,floor(w(Button)/2-w(textgraphic)/2),4)
    return Button
    async def CreateXPWindow(width,height,captiontext=»»,active=True,insideimagepath = «»,erroriconpath=»»,errortext=»»,button1=»»,button2=»»,button3=»»,button1style=0,button2style=0,button3style=0):
    #brug = open(«./brug.txt»)
    #print(brug.read())
    if active:
    TopFrame = await imageopenWEB(«./xp/Frame Up Active.png»)
    LeftFrame = await imageopenWEB(«./xp/Frame Left Active.png»)
    RightFrame = await imageopenWEB(«./xp/Frame Right Active.png»)
    BottomFrame = await imageopenWEB(«./xp/Frame Bottom Active.png»)
    CloseButton = await imageopenWEB(«./xp/Close button.png»)
    else:
    TopFrame = await imageopenWEB(«./xp/Frame Up Inactive.png»)
    LeftFrame = await imageopenWEB(«./xp/Frame Left Inactive.png»)
    RightFrame = await imageopenWEB(«./xp/Frame Right Inactive.png»)
    BottomFrame = await imageopenWEB(«./xp/Frame Bottom Inactive.png»)
    CloseButton = await imageopenWEB(«./xp/Close button Inactive.png»)
    button1style = button1style*(button1style != 4)
    button2style = button2style*(button2style != 4)
    button3style = button3style*(button3style != 4)
    textposx = 15+3
    textposy = 11+h(TopFrame)

    captiontextwidth = w(await createtext(captiontext,».\\xp\\fonts\\caption\\»))
    width = max(width,captiontextwidth+43)
    createdtext = await createtext(errortext,».\\xp\\fonts\\text\\»,(0,0,0,255))
    #textposy -= min(15,h(createdtext)//2)
    width = max(width,w(createdtext)+textposx+8+3)
    height = max(height,h(createdtext)+h(TopFrame)+3+25)
    print(textposy)
    if(insideimagepath != «»):
    insideimage = await imageopenWEB(insideimagepath)
    height = max(h(insideimage)+h(TopFrame)+3,height)
    width = max(width,w(insideimage)+6)
    if(erroriconpath != «»):
    erroricon = await imageopenWEB(erroriconpath)
    textposx += 15+w(erroricon)
    textposy = max(textposy,11+floor(h(erroricon)/2-h(createdtext)/2)+h(TopFrame))
    height = max(height,h(erroricon)+h(TopFrame)+3+11+11+3)
    width += 14+w(erroricon)

    buttonsimage = Image.new(«RGBA»,(0,0),(0,0,0,0))
    buttonswidth = 0
    buttonsheight = 0
    if button1 != «»:
    buttonswidth += 11

    button1img = await CreateXPButton(button1,button1style)
    #IMAGE = put(IMAGE,button1img,3+12,height-3-12,»02″)
    buttonsheight = max(buttonsheight,h(button1img)+14)
    temp = Image.new(«RGBA»,(buttonswidth+w(button1img),buttonsheight),(0,0,0,0))
    temp = put(temp,buttonsimage,0,0)
    temp = put(temp,button1img,buttonswidth,3)
    buttonsimage = temp.copy()
    buttonswidth += w(button1img)
    if button2 != «»:
    buttonswidth += 6
    button2img = await CreateXPButton(button2,button2style)
    #IMAGE = put(IMAGE,button2img,3+12,height-3-12,»02″)
    buttonsheight = max(buttonsheight,h(button2img)+14)
    temp = Image.new(«RGBA»,(buttonswidth+w(button2img),buttonsheight),(0,0,0,0))
    temp = put(temp,buttonsimage,0,0)
    temp = put(temp,button2img,buttonswidth,3)
    buttonsimage = temp.copy()
    buttonswidth += w(button2img)
    if button3 != «»:
    buttonswidth += 6
    button3img = await CreateXPButton(button3,button3style)
    #IMAGE = put(IMAGE,button2img,3+12,height-3-12,»02″)
    buttonsheight = max(buttonsheight,h(button3img)+14)
    temp = Image.new(«RGBA»,(buttonswidth+w(button3img),buttonsheight),(0,0,0,0))
    temp = put(temp,buttonsimage,0,0)
    temp = put(temp,button3img,buttonswidth,3)
    buttonsimage = temp.copy()
    buttonswidth += w(button3img)
    width = max(width,buttonswidth+12)
    height += buttonsheight
    #buttonswidth.show()

    width = max(66,width)
    IMAGE = Image.new(«RGBA», (width,height), (236,233,216,0))
    #IMAGE = put(IMAGE,cropx(TopFrame,0,27),0,0,»00″)
    #IMAGE = put(IMAGE,cropx(TopFrame,28,31).resize((width-w(TopFrame)+4,h(TopFrame)),Image.NEAREST),27,0,»00″)
    #IMAGE = put(IMAGE,cropx(TopFrame,31,w(TopFrame)),width,0,»20″)
    IMAGE = put(IMAGE,resize(TopFrame,width,h(TopFrame),28,35,9,17,Image.NEAREST),0,0)
    IMAGE = put(IMAGE,LeftFrame.resize((3,height-h(TopFrame)-3),Image.NEAREST),0,h(TopFrame),»00″)
    IMAGE = put(IMAGE,RightFrame.resize((3,height-h(TopFrame)-3),Image.NEAREST),width,h(TopFrame),»20″)
    IMAGE = put(IMAGE,cropx(BottomFrame,0,5).resize((5,3),Image.NEAREST),0,height,»02″)
    IMAGE = put(IMAGE,cropx(BottomFrame,4,w(BottomFrame)-5).resize((width-10,3),Image.NEAREST),5,height,»02″)
    IMAGE = put(IMAGE,cropx(BottomFrame,w(BottomFrame)-5,w(BottomFrame)).resize((5,3),Image.NEAREST),width,height,»22″)
    IMAGE = put(IMAGE,Image.new(«RGBA», (width-6,height-3-h(TopFrame)), (236,233,216,255)),3,h(TopFrame),»00″)
    IMAGE = put(IMAGE,CloseButton,width-5,5,»20″)
    if active:
    IMAGE = put(IMAGE,await createtext(captiontext,».\\xp\\fonts\\captionshadow\\»,(10,24,131,255)),8,8,»00″)
    IMAGE = put(IMAGE,await createtext(captiontext,».\\xp\\fonts\\caption\\»),7,7,»00″)
    else:
    IMAGE = put(IMAGE,await createtext(captiontext,».\\xp\\fonts\\caption\\»,(216,228,248,255)),7,7,»00″)
    if(insideimagepath != «»):
    IMAGE = put(IMAGE,insideimage,3,h(TopFrame))
    if(erroriconpath != «»):
    IMAGE = put(IMAGE,erroricon,3+11,h(TopFrame)+11)
    IMAGE = put(IMAGE,await createtext(errortext,».\\xp\\fonts\\text\\»,(0,0,0,255)),textposx,textposy)
    IMAGE = put(IMAGE,buttonsimage,width//2-5,height-3,»12″)
    return IMAGE

    async def CreateMacAlertDialog(width,height,title=»»,bar=True,icon=»»,errortext=»»,subtext=»»,button1=»»,button2=»»,button3=»»,button1default=False,button2default=False,button3default=False,button1style=0,button2style=0,button3style=0):
    WindowBar = await imageopenWEB(«mac/Error Window With bar.png»)
    WindowNoBar = await imageopenWEB(«mac/Error Window No bar.png»)
    Ridges = await imageopenWEB(«mac/Red Ridges.png»)
    ButtonBorder = await imageopenWEB(«mac//Button Outline.png»)
    TextHeight = 0
    IconPadding = 0
    Paddingwidth = 7
    if(bar):
    Paddingheight = 29+4
    Barheight = 29
    else:
    Paddingheight = 3+4
    Barheight = 0
    if(errortext != «»):
    ErrorTextImg = await createtextmac(errortext,»mac//fonts//caption//»)
    width = max(width,w(ErrorTextImg)+79+90)
    #height = max(height,h(ErrorTextImg)+Paddingheight+20)
    TextHeight += h(ErrorTextImg)
    if(subtext != «»):
    SubTextImg = await createtextmac(subtext,»mac//fonts//text//»)
    SubTextPos = TextHeight
    width = max(width,w(SubTextImg)+79+90)
    TextHeight += h(SubTextImg)
    height += TextHeight + Paddingheight
    if(icon != «»):
    IconImg = await imageopenWEB(icon)
    height = max(height,h(IconImg)+Paddingheight)
    width += w(IconImg)
    IconPadding = w(IconImg)
    buttonswidth = 0
    if(button1 != «»):
    height += 60
    button1img = await CreateMacButton(button1,button1style)
    buttonswidth += w(button1img)
    if(button2 != «»):
    button2img = await CreateMacButton(button2,button2style)
    buttonswidth += w(button2img)
    if(button3 != «»):
    button3img = await CreateMacButton(button3,button3style)
    buttonswidth += w(button3img)
    width = max(width,buttonswidth+79+90)
    IMAGE = Image.new(«RGBA», (width,height), (236,233,216,0))
    if(bar):
    IMAGE = put(IMAGE,resize(WindowBar,width,height,3,4,24,4),0,0)
    else:
    IMAGE = put(IMAGE,resize(WindowNoBar,width,height,3,4,3,4),0,0)
    if bar:
    if(title == «»):
    IMAGE = put(IMAGE,resizeanchor(Ridges,5,4,width-6,16,1,1,1,1),5,4)
    else:
    TitleImage = await createtextmac(title,»mac//fonts//caption//»)
    IMAGE = put(IMAGE,TitleImage,width//2-w(TitleImage)//2,3)
    IMAGE = put(IMAGE,resizeanchor(Ridges,5,4,width//2-w(TitleImage)//2-3,16,1,1,1,1),5,4)
    IMAGE = put(IMAGE,resizeanchor(Ridges,width//2+w(TitleImage)//2+5,4,width-6,16,1,1,1,1),width//2+w(TitleImage)//2+5,4)
    if(icon != «»):
    IMAGE = put(IMAGE,IconImg,26,Barheight+15)
    if(errortext != «»):
    IMAGE = put(IMAGE,ErrorTextImg,47+IconPadding,Barheight+14)
    if(subtext != «»):
    IMAGE = put(IMAGE,SubTextImg,47+IconPadding,Barheight+SubTextPos+16)
    if(button1 != «»):
    button1img = await CreateMacButton(button1,button1style)
    IMAGE = put(IMAGE,button1img,width-17,height-17,»22″)
    if(button1default):
    button1border = resize(ButtonBorder,w(button1img)+6,h(button1img)+6,5,5,5,5)
    IMAGE = put(IMAGE,button1border,width-17+3,height-17+3,»22″)
    if(button2 != «»):
    button2img = await CreateMacButton(button2,button2style)
    IMAGE = put(IMAGE,button2img,width-17-w(button1img)-22,height-17,»22″)
    if(button2default):
    button2border = resize(ButtonBorder,w(button2img)+6,h(button2img)+6,5,5,5,5)
    IMAGE = put(IMAGE,button2border,width-17+3-w(button1img)-22,height-17+3,»22″)
    if(button3 != «»):
    button3img = await CreateMacButton(button3,button3style)
    IMAGE = put(IMAGE,button3img,width-17-w(button2img)-22-w(button1img)-22,height-17,»22″)
    if(button3default):
    button3border = resize(ButtonBorder,w(button3img)+6,h(button3img)+6,5,5,5,5)
    IMAGE = put(IMAGE,button3border,width-17+3-w(button2img)-22-w(button1img)-22,height-17+3,»22″)
    return IMAGE

    async def CreateMacWindow(width,height,title=»»,icon=»»,errortext=»»,button1=»»,button2=»»,button3=»»,button1default=False,button2default=False,button3default=False,button1style=0,button2style=0,button3style=0):
    WindowBar = await imageopenWEB(«mac/Window With bar.png»)
    Ridges = await imageopenWEB(«mac/Ridges.png»)
    ButtonBorder = await imageopenWEB(«mac//Button Outline.png»)
    Paddingheight = 29+4
    TextHeight = 0
    iconsize = 0
    if(icon != «»):
    IconImg = await imageopenWEB(icon)
    iconsize = w(IconImg)+26
    if(errortext != «»):
    ErrorTextImg = await createtextmac(errortext,»mac//fonts//caption//»)
    width = max(width,w(ErrorTextImg)+iconsize+20+20+100)
    #height = max(height,h(ErrorTextImg)+Paddingheight+20)
    TextHeight += h(ErrorTextImg)+36
    #if(subtext != «»):
    # SubTextImg = await createtextmac(subtext,»mac//fonts//text//»)
    # width = max(width,w(SubTextImg)+79+90)
    # TextHeight += h(SubTextImg)
    height += TextHeight+24+4
    if(button1 != «»):
    height += 17+17
    IMAGE = Image.new(«RGBA», (width,height), (236,233,216,0))
    IMAGE = put(IMAGE,resize(WindowBar,width,height,3,4,24,4),0,0)
    if(title == «»):
    IMAGE = put(IMAGE,resizeanchor(Ridges,5,4,width-6,16,1,1,1,1),5,4)
    else:
    TitleImage = await createtextmac(title,»mac//fonts//caption//»)
    IMAGE = put(IMAGE,TitleImage,width//2-w(TitleImage)//2,3)
    IMAGE = put(IMAGE,resizeanchor(Ridges,5,4,width//2-w(TitleImage)//2-3,16,1,1,1,1),5,4)
    IMAGE = put(IMAGE,resizeanchor(Ridges,width//2+w(TitleImage)//2+5,4,width-6,16,1,1,1,1),width//2+w(TitleImage)//2+5,4)
    if(icon != «»):
    IMAGE = put(IMAGE,IconImg,26,37)
    if(errortext != «»):
    IMAGE = put(IMAGE,ErrorTextImg,iconsize+20,36)
    if(button1 != «»):
    button1img = await CreateMacButton(button1,button1style)
    IMAGE = put(IMAGE,button1img,width-17,height-17,»22″)
    if(button1default):
    button1border = resize(ButtonBorder,w(button1img)+6,h(button1img)+6,5,5,5,5)
    IMAGE = put(IMAGE,button1border,width-17+3,height-17+3,»22″)
    if(button2 != «»):
    button2img = await CreateMacButton(button2,button2style)
    IMAGE = put(IMAGE,button2img,width-17-w(button1img)-22,height-17,»22″)
    if(button2default):
    button2border = resize(ButtonBorder,w(button2img)+6,h(button2img)+6,5,5,5,5)
    IMAGE = put(IMAGE,button2border,width-17+3-w(button1img)-22,height-17+3,»22″)
    if(button3 != «»):
    button3img = await CreateMacButton(button3,button3style)
    IMAGE = put(IMAGE,button3img,width-17-w(button2img)-22-w(button1img)-22,height-17,»22″)
    if(button3default):
    button3border = resize(ButtonBorder,w(button3img)+6,h(button3img)+6,5,5,5,5)
    IMAGE = put(IMAGE,button3border,width-17+3-w(button2img)-22-w(button1img)-22,height-17+3,»22″)
    return IMAGE

    async def CreateMacWindoid(icon=»»,text=»»,collapsed=False):
    contentwidth = 0
    contentheight = 0
    textpos = 6
    if(text != «»):
    TextImg = await createtextmac(text,»mac//fonts//text//»)
    contentwidth += w(TextImg)+7
    contentheight += h(TextImg)+3
    if(icon != «»):
    IconImg = await imageopenWEB(icon)
    contentwidth += w(IconImg) + 7
    contentheight = max(contentheight,h(IconImg))
    textpos += w(IconImg) + 7
    contentwidth += 12
    contentheight += 8
    CONTENT = Image.new(«RGBA»,(contentwidth,contentheight),(255,255,198))
    if(text != «»):
    CONTENT = put(CONTENT,TextImg,textpos,5)
    if(icon != «»):
    CONTENT = put(CONTENT,IconImg,6,4)
    Border = await imageopenWEB(«mac//Windoid.png»)
    CollapsedBorder = await imageopenWEB(«mac//Windoid Hidden.png»)
    Studs = await imageopenWEB(«mac//Studs.png»)
    CloseButton = await imageopenWEB(«mac//Windoid Close Button.png»)
    HideButton = await imageopenWEB(«mac//Windoid Hide Button.png»)
    width = contentwidth + 19
    height = contentheight + 9
    IMAGE = Image.new(«RGBA»,(width,height),(0,0,0,0))
    if not collapsed:
    IMAGE = put(IMAGE,resize(Border,width,height,14,5,4,5),0,0)
    IMAGE = put(IMAGE,CONTENT,14,4)
    IMAGE = put(IMAGE,CloseButton,2,2)
    IMAGE = put(IMAGE,HideButton,2,height-3,»02″)
    IMAGE = put(IMAGE,tile(Studs,8,height-14-15),3,14)
    else:
    IMAGE = put(IMAGE,resize(CollapsedBorder,15,height,2,3,2,3),0,0)
    IMAGE = put(IMAGE,CloseButton,2,2)
    IMAGE = put(IMAGE,HideButton,2,height-3,»02″)
    IMAGE = put(IMAGE,tile(Studs,8,height-14-15),3,14)
    return IMAGE

    async def mix(a,b,c): #smoothly mixes between two values.
    c = min(1,max(0,c))
    c = c**0.5
    return a*(1-c)+b*c

    #this function just takes a corner and squishes it based on width and the height of the image by some amount.
    #amount of 3 will put it in the width/3,height/3 position
    #amount of 7 will put it in the width/7,height/7 position and so on.
    #c is there to animate the translation, from 0 — fully translated, to 1 — no translation
    async def stretch(size,amount,c):
    result = size-size*(size/(size-size/amount)) #this is needed because deform() does the opposite of what you would think it will do, it takes 4 points, and then squishes them into a rectangle.
    return mix(result,0,c)

    class Windows7Anim:
    async def __init__(self,second):
    self.second = second

    async def getmesh(self, img):
    return [((0,0,w(img),h(img)),(stretch(w(img),30,self.second*4),stretch(h(img),56,self.second*4),
    stretch(w(img),18,self.second*4),h(img)-stretch(h(img),16,self.second*4),
    w(img)-stretch(w(img),18,self.second*4),h(img)-stretch(h(img),16,self.second*4),
    w(img)-stretch(w(img),30,self.second*4),stretch(h(img),56,self.second*4)))] #values arbitrary, somebody needs to look into dwm and find how it animates the window

    async def Create7Window(icon=»»,text=»»,title=»»,pos=(0,0),screenres=(1920,1080),wallpaper=»»,buttons=[]):
    #pos and screenres dictate the glass texture position and size on the window border
    #if wallpaper is not empty, it will composite the error onto an image at pos’s coordinates, screenres should be the same size as the wallpaper
    contentwidth = 106
    contentheight = 53
    textpos = 0
    textposy = 25+13
    print(«1»)
    if(text != «»):
    TextDim = await measuretext7(text,»7//fonts//text//»,kerningadjust=-1)
    contentwidth = max(contentwidth,TextDim[0]+38+12)
    contentheight += TextDim[1]
    textposy = textposy-min(TextDim[1],21)
    if(icon != «»):
    IconImg = await imageopenWEB(icon)
    contentwidth = max(contentwidth,w(IconImg)+25+25)
    contentheight = max(contentheight,h(IconImg)+26+26)
    textpos += w(IconImg)-4+25
    textposy += h(IconImg)//2-7
    if(text != «»):
    contentwidth = max(contentwidth,w(IconImg)+25+TextDim[0]+38+9)
    print(«2»)
    if(title != «»):
    TitleDim = await measuretext7(title,»7//fonts//text//»,kerningadjust=-1)
    contentwidth = max(contentwidth,TitleDim[0]+49)
    buttonswidth = 0
    #len(buttons)*95
    for i in buttons:
    tempbuttontextsize = await measuretext7(i[0],»7\\fonts\\text\\»,kerningadjust=-1)
    buttonswidth += max(tempbuttontextsize[0]+16,86) + 10
    if(buttons):
    contentheight += 49
    contentwidth = max(contentwidth,buttonswidth+43)
    print(«3»)
    CONTENT = Image.new(«RGBA»,(contentwidth,contentheight),(255,255,255))
    if(icon != «»):
    CONTENT = put(CONTENT,IconImg,25,26)
    if(text != «»):
    CONTENT = await createtext7(CONTENT,textpos+12,textposy,text,»7//fonts//text//»,kerningadjust=-1)
    if(buttons):
    CONTENT = put(CONTENT, Image.new(«RGBA»,(contentwidth,49),(240,240,240)),0,contentheight,»02″)
    buttonpos = 0
    print(«4″)
    for i in buttons:
    buttonpos += 10
    Button = await Create7Button(i[0],i[1])
    CONTENT = put7(CONTENT, Button, contentwidth-buttonpos,contentheight-12,»22»)
    buttonpos += w(Button)
    Window = await imageopenWEB(«7//Window.png»)
    CloseButton = await imageopenWEB(«7//Close Button Single.png»)
    CloseSymbol = await imageopenWEB(«7//Close Symbol.png»)
    GlassImg = await imageopenWEB(«7//Glass.png»)
    GlassMask = await imageopenWEB(«7//Glass Mask.png»)
    print(«5»)
    TextGlow = await imageopenWEB(«7//Text Glow.png»)
    SideGlowLeft = await imageopenWEB(«7//Sideglow 1 Left.png»)
    SideGlowRight = await imageopenWEB(«7//Sideglow 1 Right.png»)
    SideShine = await imageopenWEB(«7//Side Shine.png»)
    print(«6»)
    width = contentwidth+8+8
    height = contentheight+8+30
    GlassMask = resize(GlassMask,width,height,8,8,30,8)
    #Glass = put(Image.new(«RGBA»,(800,602),(0,0,0,0)),GlassImg.resize(screenres),int((width/screenres[0])*50-50-pos[0]+pos[0]*0.12173472694),0)
    Glass = put(Image.new(«RGBA»,(800,602),(0,0,0,0)),GlassImg.resize(screenres),int(-pos[0]+width/16-screenres[0]/16+pos[0]/8),-pos[1])
    WithBorder = ImageChops.multiply(GlassMask,Glass)
    WithBorder = put(WithBorder, SideGlowLeft, 0, 0)
    WithBorder = put(WithBorder, SideGlowRight, width, 0, «20»)
    WithBorder = put(WithBorder, SideShine.resize((w(SideShine),(height-29-8)//4)), 0, 29)
    WithBorder = put(WithBorder, SideShine.resize((w(SideShine),(height-29-8)//4)), width, 29, «20»)
    print(«7»)
    #WithBorder.show()
    if(title != «»):
    WithBorder = put(WithBorder,resize(TextGlow,TitleDim[0]+7+14+10,h(TextGlow),23,23,1,1),-7,0)
    WithBorder = await createtext7(WithBorder,8,7,title,»7//fonts//text//»,kerningadjust=-1)

    WithBorder = put(WithBorder,resize(Window,width,height,8,8,30,8),0,0)
    WithBorder = put(WithBorder,CONTENT,8,30)
    WithBorder = put(WithBorder,CloseButton,width-6,1,»20″)
    WithBorder = put(WithBorder,CloseSymbol,width-6-18,5,»20″)
    print(«8»)
    ShadowTop = await imageopenWEB(«7//Shadow Top.png»)
    ShadowRight = await imageopenWEB(«7//Shadow Right.png»)
    ShadowBottom = await imageopenWEB(«7//Shadow Bottom.png»)
    ShadowLeft = await imageopenWEB(«7//Shadow Left.png»)
    print(«9»)
    IMAGE = Image.new(«RGBA»,(width+19+13,height+18+12),(0,0,0,0))
    IMAGE = put(IMAGE, resize(ShadowTop,width+13+16,12,26,26,1,1),0,0)
    IMAGE = put(IMAGE, resize(ShadowLeft,13,height,1,1,20,14),0,12)
    IMAGE = put(IMAGE, resize(ShadowRight,19,height,1,1,20,14),width+13,12)
    IMAGE = put(IMAGE, resize(ShadowBottom,width+13+17,18,28,27,1,1),0,height+12)
    IMAGE = put(IMAGE,WithBorder,13,12)
    print(«10»)
    if(wallpaper != «»):
    WallpaperImg = await imageopenWEB(wallpaper)
    IMAGE = put(WallpaperImg, IMAGE, pos[0]-13, pos[1]-12)
    return IMAGE

    async def Create7ButtonPanel(buttons,windowwidth=360,screenres=(1920,1080)):
    summedwidth = 11
    summedheight = 20
    curwidth = 0
    curlevel = 0
    cachedbuttons = []
    for button in buttons:
    button = await Create7Button(button[0],button[1])
    cachedbuttons.append(button)
    size = button.size
    if(curwidth + size[0] > screenres[0]):
    summedheight += curlevel+2
    curwidth = 0
    curlevel = 0
    curwidth += size[0]
    summedwidth= max(summedwidth,curwidth)
    curlevel = max(curlevel,size[1])
    summedheight += curlevel

    for button in cachedbuttons:
    size = button.size

    async def Create7TaskDialog(icon=»»,textbig=»»,textsmall=»»,title=»»,buttons=[],closebutton=True,pos=(200,100),screenres=(1920,1080),wallpaper=»»):
    width = 360
    height = 0
    iconsize = 0
    if(title != «»):
    TitleDim = await measuretext7(title,»7//fonts//text//»,kerningadjust=-1)
    if(icon != «»):
    IconImg = await imageopenWEB(icon)
    iconsize = w(IconImg)+10
    height += iconsize+10
    textbigheight = 0
    if(textbig != «»):
    textbigheight = (await measuretext7(textbig,»7/fonts/bigtext/»,fit=width-iconsize-10-10))[1]+10
    height = max(height,textbigheight+10+30)
    if(textsmall != «»):
    height = max(height,(await measuretext7(textsmall,»7/fonts/text/»,fit=width-iconsize-10-10))[1]+15+15)
    if buttons:
    height += 41
    CONTENT = Image.new(«RGBA»,(width,height),(255,255,255,255))
    if(icon != «»):
    CONTENT = put(CONTENT,IconImg,10,10)

    if(textbig != «»):
    CONTENT = await createtext7(CONTENT,iconsize+10,10,textbig,»7/fonts/bigtext/»,(0,51,153,255),kerningadjust=-1,fit=width-iconsize-10-10)
    if(textsmall != «»):
    CONTENT = await createtext7(CONTENT,iconsize+10,textbigheight+15,textsmall,»7/fonts/text/»,kerningadjust=-1,fit=width-iconsize-10-10)
    if buttons:
    CONTENT = put(CONTENT, Image.new(«RGBA»,(width,40),(240,240,240,255)),0,height,»02″)
    CONTENT = put(CONTENT, Image.new(«RGBA»,(width,1),(222,222,222,255)),0,height-41)
    buttonpos = 12
    for button in buttons:
    ButtonImg = await Create7TaskDialogButton(button[0],button[1])
    CONTENT = put(CONTENT, ButtonImg, width-buttonpos,height-11,»22″)
    buttonpos += w(ButtonImg)+8

    Window = await imageopenWEB(«7//Window.png»)
    CloseButton = await imageopenWEB(«7//Close Button Single.png»)
    CloseSymbol = await imageopenWEB(«7//Close Symbol.png»)
    GlassImg = await imageopenWEB(«7//Glass.png»)
    GlassMask = await imageopenWEB(«7//Glass Mask.png»)
    TextGlow = await imageopenWEB(«7//Text Glow.png»)
    SideGlowLeft = await imageopenWEB(«7//Sideglow 1 Left.png»)
    SideGlowRight = await imageopenWEB(«7//Sideglow 1 Right.png»)
    SideShine = await imageopenWEB(«7//Side Shine.png»)
    width = width+8+8
    height = height+8+30
    GlassMask = resize(GlassMask,width,height,8,8,30,8)
    #Glass = put(Image.new(«RGBA»,(800,602),(0,0,0,0)),GlassImg.resize(screenres),int((width/screenres[0])*50-50-pos[0]+pos[0]*0.12173472694),0)
    Glass = put(Image.new(«RGBA»,(800,602),(0,0,0,0)),GlassImg.resize(screenres),int(-pos[0]+width/16-screenres[0]/16+pos[0]/8),-pos[1])
    WithBorder = ImageChops.multiply(GlassMask,Glass)
    WithBorder = put(WithBorder, SideGlowLeft, 0, 0)
    WithBorder = put(WithBorder, SideGlowRight, width, 0, «20»)
    WithBorder = put(WithBorder, SideShine.resize((w(SideShine),(height-29-8)//4)), 0, 29)
    WithBorder = put(WithBorder, SideShine.resize((w(SideShine),(height-29-8)//4)), width, 29, «20»)
    #WithBorder.show()
    if(title != «»):
    WithBorder = put(WithBorder,resize(TextGlow,TitleDim[0]+7+14+10,h(TextGlow),23,23,1,1),-7,0)
    WithBorder = await createtext7(WithBorder,8,7,title,»7//fonts//text//»,kerningadjust=-1)

    WithBorder = put(WithBorder,resize(Window,width,height,8,8,30,8),0,0)
    WithBorder = put(WithBorder,CONTENT,8,30)
    if closebutton:
    WithBorder = put(WithBorder,CloseButton,width-6,1,»20″)
    WithBorder = put(WithBorder,CloseSymbol,width-6-18,5,»20″)
    ShadowTop = await imageopenWEB(«7//Shadow Top.png»)
    ShadowRight = await imageopenWEB(«7//Shadow Right.png»)
    ShadowBottom = await imageopenWEB(«7//Shadow Bottom.png»)
    ShadowLeft = await imageopenWEB(«7//Shadow Left.png»)
    IMAGE = Image.new(«RGBA»,(width+19+13,height+18+12),(0,0,0,0))
    IMAGE = put(IMAGE, resize(ShadowTop,width+13+16,12,26,26,1,1),0,0)
    IMAGE = put(IMAGE, resize(ShadowLeft,13,height,1,1,20,14),0,12)
    IMAGE = put(IMAGE, resize(ShadowRight,19,height,1,1,20,14),width+13,12)
    IMAGE = put(IMAGE, resize(ShadowBottom,width+13+17,18,28,27,1,1),0,height+12)
    IMAGE = put(IMAGE,WithBorder,13,12)
    if(wallpaper != «»):
    WallpaperImg = await imageopenWEB(wallpaper)
    IMAGE = put(WallpaperImg, IMAGE, pos[0]-13, pos[1]-12)
    return IMAGE

    def Export7Animation(img,savepath): #just put the generated window into img and set savepath to the folder you want it to save «7//animoutput//» is recommended
    for i in range(16):
    ImageChops.multiply(ImageOps.deform(img, Windows7Anim(i/60)),Image.new(«RGBA»,(w(img),h(img)),(255,255,255,int(max(0,min(1,(i+0.1)/15))**0.5*255)))).save(savepath+str(i)+».png»)
    def even(a):
    c = ceil(a/2)*2
    dc = abs(c-a)
    f = floor(a/2)*2
    df = abs(f-a)
    if(df <= dc):
    return f
    else:
    return c
    def buttoneven(a):
    c = ceil(a/2)*2
    dc = abs(c-a)
    f = floor(a/2)*2
    df = abs(f-a)
    if(df < dc):
    return f
    else:
    return c
    def getsafe(a, i, fallback):
    try:
    return a[i]
    except IndexError:
    return fallback
    async def Create3_1Window(icon=»»,text=»»,title=»»,buttons=[],active=True):
    contentwidth = 0
    contentheight = 0
    textpos = 18
    textposy = 16
    iconposy = 17
    if(text != «»):
    TextImg = await createtextmac(text,»3.1//fonts//text//»)
    contentwidth += w(TextImg)+18+17
    contentheight += h(TextImg)+16+16
    if(icon != «»):
    IconImg = await imageopenWEB(icon)
    textpos += w(IconImg)+19
    contentwidth += w(IconImg)+18
    contentwidth = max(contentwidth,w(IconImg)+19+19)
    contentheight = max(contentheight,17+h(IconImg)+15)
    if(text != «»):
    textposy = max(16,h(IconImg)//2-h(TextImg)//2+17)
    if(title != «»):
    TitleImg = await createtextmac(text,»3.1//fonts//text//»)
    contentwidth = max(contentwidth,w(TitleImg)+20+1)
    if buttons:
    contentheight += 44
    buttonswidth = 0
    for button in buttons:
    CurrentButton = await Create3_1Button(button[0],button[1],getsafe(button,2,False))
    buttonswidth += w(CurrentButton)+17
    contentwidth = max(contentwidth,buttonswidth+17)
    contentwidth = even(contentwidth)
    if active:
    Window = await imageopenWEB(«3.1//Window.png»)
    else:
    Window = await imageopenWEB(«3.1//Window Inactive.png»)
    CloseButton = await imageopenWEB(«3.1//Close Button.png»)
    CONTENT = Image.new(«RGBA»,(contentwidth,contentheight),(255,255,255,255))
    if(text != «»):
    CONTENT = put(CONTENT,TextImg,even(textpos),even(textposy))
    if(icon != «»):
    iconposy = even(textposy+h(TextImg)/2-h(IconImg)/2)
    if(icon != «»):
    CONTENT = put(CONTENT,IconImg,18,iconposy)
    buttonpos = contentwidth/2-(58*len(buttons)+17*len(buttons)-17)/2
    if active:
    for i in range(len(buttons)):
    CONTENT = put(CONTENT,await Create3_1Button(buttons[i][0],buttons[i][1],getsafe(buttons[i],2,False)),buttoneven(buttonpos),contentheight-10,»02″)
    print(buttons[i][0]+»:»,buttonpos,»which is»,buttoneven(buttonpos))
    buttonpos += 58+17
    else:
    for i in range(len(buttons)):
    CONTENT = put(CONTENT,await Create3_1Button(buttons[i][0],0,getsafe(buttons[i],2,False)),buttoneven(buttonpos),contentheight-10,»02″)
    print(buttons[i][0]+»:»,buttonpos,»which is»,buttoneven(buttonpos))
    buttonpos += 58+17
    print(contentwidth,contentheight)
    width = contentwidth+5+5
    height = contentheight+24+5
    IMAGE = resize(Window,width,height,6,6,24,5)
    IMAGE = put(IMAGE,CONTENT,5,24)
    IMAGE = put(IMAGE, CloseButton,6,5)
    if(title != «»):
    if active:
    TitleImg = await createtextmac(title,»3.1//fonts//text//»,(255,255,255,255))
    else:
    TitleImg = await createtextmac(title,»3.1//fonts//text//»)
    IMAGE = put(IMAGE,TitleImg,floor((contentwidth-20-1)/2-w(TitleImg)/2)+19+6,6)
    return IMAGE
    #

    async def CreateUbuntuWindow(icon=»»,bigtext=»»,text=»»,title=»»,buttons=[],active=True):
    contentwidth = 12+12+12
    contentheight = 12+16+24
    textwidth = 0
    textheight = 0
    if(bigtext != «»):
    bigtextsize = await measuretext7(bigtext,»ubuntu/fonts/bigtext/»)
    textwidth += bigtextsize[0]
    textheight += bigtextsize[1]+12
    if(text != «»):
    textsize = await measuretext7(text,»ubuntu/fonts/text/»)
    textwidth = max(textwidth,textsize[0])
    textheight += textsize[1]
    else:
    textheight += 17
    contentwidth += textwidth
    contentheight = max(contentheight,textheight+12+24+16)
    if(icon != «»):
    IconImg = await imageopenWEB(icon)
    contentwidth += w(IconImg)
    contentheight = max(contentheight,h(IconImg)+12+24+16)
    maxbuttonwidth = 0
    maxbuttonheight = 0
    for button in buttons:
    ButtonImg = await CreateUbuntuButton(button[0],button[1])
    maxbuttonwidth = max(w(ButtonImg),maxbuttonwidth)
    maxbuttonheight = max(h(ButtonImg),maxbuttonheight)
    contentwidth = max(contentwidth, (maxbuttonwidth+4+4)*len(buttons)+8+8)
    contentheight += maxbuttonheight
    CONTENT = Image.new(«RGBA»,(contentwidth,contentheight),(240,235,226))
    iconsize = 0
    if(icon != «»):
    CONTENT = put(CONTENT,IconImg,12,12)
    iconsize = w(IconImg)
    if(bigtext == «»):
    if(text != «»):
    CONTENT = await createtextubuntu(CONTENT,iconsize+24,12,text,»ubuntu/fonts/text/»,(60,59,55,255))
    else:
    CONTENT = await createtextubuntu(CONTENT,iconsize+24,12,bigtext,»ubuntu/fonts/bigtext/»,(60,59,55,255))
    if(text != «»):
    CONTENT = await createtextubuntu(CONTENT,iconsize+24,bigtextsize[1]+12+12,text,»ubuntu/fonts/text/»,(60,59,55,255))
    buttonpos = contentwidth-12
    for button in buttons:
    CONTENT = put(CONTENT, await CreateUbuntuButton(button[0],active and button[1] or 0,[maxbuttonwidth,maxbuttonheight]),buttonpos,contentheight-16,»22″)
    buttonpos -= maxbuttonwidth+8

    Frame = await imageopenWEB(active and «ubuntu/Window.png» or (not active and «ubuntu/Window Inactive.png»))
    CloseButton = await imageopenWEB(active and «ubuntu/Close Button.png» or (not active and «ubuntu/Close Button Inactive.png»))
    Mask = await imageopenWEB(«ubuntu/Mask.png»)
    Highlight = await imageopenWEB(«ubuntu/Highlight.png»)
    Mask = resize(Mask,contentwidth,contentheight,5,5,1,4)
    WINDOW = resize(Frame,contentwidth+1+1,contentheight+27+1,5,5,27,5)
    WINDOW = put(WINDOW, ImageChops.multiply(Mask,CONTENT), 1, 27)
    WINDOW = put(WINDOW, CloseButton, 10, 5)
    WINDOW = put(WINDOW, Highlight,0,27)
    WINDOW = put(WINDOW, Highlight,contentwidth+1,27)
    if(title != «»):
    WINDOW = await createtextubuntu(WINDOW, 42, 6, title, «ubuntu/fonts/caption/», (51,51,51,255))
    WINDOW = await createtextubuntu(WINDOW, 42, 4, title, «ubuntu/fonts/caption/», (51,51,51,255))
    WINDOW = await createtextubuntu(WINDOW, 41, 5, title, «ubuntu/fonts/caption/», (51,51,51,255))
    WINDOW = await createtextubuntu(WINDOW, 43, 5, title, «ubuntu/fonts/caption/», (51,51,51,255))
    WINDOW = await createtextubuntu(WINDOW, 42, 5, title, «ubuntu/fonts/caption/», (223,216,200,255))
    Shadow = await imageopenWEB(«ubuntu/Shadow.png»)
    IMAGE = resize(Shadow,contentwidth+1+1+8+10,contentheight+27+1+8+10,20,20,21,21)
    IMAGE = put(IMAGE,WINDOW,8,8)
    return IMAGE

    async def Create95Window(icon=»»,text=»»,title=»»,buttons=[],active=True,closebutton=True):
    buttons = buttons.copy()
    width = 0
    height = 0
    textshift = 0
    iconheight = 32
    if(icon):
    IconImg = await imageopenWEB(icon)
    width += w(IconImg)+12+12
    height = max(height,h(IconImg)+12+6)
    textshift += w(IconImg)+10
    iconheight = h(IconImg)
    if(text):
    TextImg = await createtextmac(text,»95/fonts/text/»)
    print(w(TextImg))
    print(w(TextImg)+textshift+18+12)
    width = max(width,w(TextImg)+textshift+18+11)
    height = max(height,h(TextImg)+12+6)
    print(buttons)
    if(buttons):
    button = buttons[0]
    ButtonsImg = Image.new(«RGBA»,(1,1),(0,0,0,0))
    ButtonImg = await Create95Button(button[0],getsafe(button,1,0) if active else 0,getsafe(button,2,False))
    ButtonsImg = put(Image.new(«RGBA»,(w(ButtonsImg)+w(ButtonImg),max(h(ButtonsImg),h(ButtonImg))),(0,0,0,0)),ButtonsImg,0,0)
    ButtonsImg = put(ButtonsImg,ButtonImg,w(ButtonsImg),0,»20″)
    buttons.pop(0)
    for button in buttons:
    ButtonImg = await Create95Button(button[0],getsafe(button,1,0) if active else 0,getsafe(button,2,False))
    ButtonsImg = put(Image.new(«RGBA»,(w(ButtonsImg)+w(ButtonImg)+6,max(h(ButtonsImg),h(ButtonImg))),(0,0,0,0)),ButtonsImg,0,0)
    ButtonsImg = put(ButtonsImg,ButtonImg,w(ButtonsImg),0,»20″)
    width = max(width,w(ButtonsImg)+12+12)
    height += h(ButtonsImg)+12+11
    buttons.append(«good»)
    #width = 262
    #height = 96
    IMAGE = Image.new(«RGBA»,(width,height),(192,192,192,255))
    if(icon):
    IMAGE = put(IMAGE,IconImg,12,12)
    if(text):

    IMAGE = put(IMAGE,TextImg,18+textshift,21 if h(TextImg) == 13 else 16 if h(TextImg) == 26 else 12 )
    if(buttons):
    print(width/2-w(ButtonsImg)/2+1)
    print(floor(width/2-w(ButtonsImg)/2)+1)
    IMAGE = put(IMAGE, ButtonsImg,floor(width/2-w(ButtonsImg)/2)+1,height-12,»02″)
    if active:
    Window = await imageopenWEB(«95/Window.png»)
    else:
    Window = await imageopenWEB(«95/Window Inactive.png»)
    if closebutton:
    CloseButton = await imageopenWEB(«95/Close Button.png»)
    else:
    CloseButton = await imageopenWEB(«95/Close Button Disabled.png»)
    IMAGE = put(resize(Window,width+2+2,height+21+2,3,3,21,2),IMAGE,2,21)
    if(title):
    TitleImg = await createtextmac(title,»95/fonts/caption/»,(255,255,255) if active else (192,192,192))
    IMAGE = put(IMAGE,TitleImg,5,5)
    print(IMAGE.size)
    IMAGE = put(IMAGE,CloseButton,width-1,5,»20″)
    return IMAGE

    async def Create98Window(icon=»»,text=»»,title=»»,buttons=[],active=True,closebutton=True):
    buttons = buttons.copy()
    width = 0
    height = 0
    textshift = 0
    iconheight = 32
    if(icon):
    IconImg = await imageopenWEB(icon)
    width += w(IconImg)+12+12
    height = max(height,h(IconImg)+12+6)
    textshift += w(IconImg)+10
    iconheight = h(IconImg)
    if(text):
    TextImg = await createtextmac(text,»95/fonts/text/»)
    print(w(TextImg))
    print(w(TextImg)+textshift+18+12)
    width = max(width,w(TextImg)+textshift+18+11)
    height = max(height,h(TextImg)+12+6)
    print(buttons)
    if(buttons):
    button = buttons[0]
    ButtonsImg = Image.new(«RGBA»,(1,1),(0,0,0,0))
    ButtonImg = await Create95Button(button[0],getsafe(button,1,0) if active else 0,getsafe(button,2,False))
    ButtonsImg = put(Image.new(«RGBA»,(w(ButtonsImg)+w(ButtonImg),max(h(ButtonsImg),h(ButtonImg))),(0,0,0,0)),ButtonsImg,0,0)
    ButtonsImg = put(ButtonsImg,ButtonImg,w(ButtonsImg),0,»20″)
    buttons.pop(0)
    for button in buttons:
    ButtonImg = await Create95Button(button[0],getsafe(button,1,0) if active else 0,getsafe(button,2,False))
    ButtonsImg = put(Image.new(«RGBA»,(w(ButtonsImg)+w(ButtonImg)+6,max(h(ButtonsImg),h(ButtonImg))),(0,0,0,0)),ButtonsImg,0,0)
    ButtonsImg = put(ButtonsImg,ButtonImg,w(ButtonsImg),0,»20″)
    width = max(width,w(ButtonsImg)+12+12)
    height += h(ButtonsImg)+12+11
    buttons.append(«good»)
    #width = 262
    #height = 96
    IMAGE = Image.new(«RGBA»,(width,height),(192,192,192,255))
    if(icon):
    IMAGE = put(IMAGE,IconImg,12,12)
    if(text):

    IMAGE = put(IMAGE,TextImg,18+textshift,21 if h(TextImg) == 13 else 16 if h(TextImg) == 26 else 12 )
    if(buttons):
    print(width/2-w(ButtonsImg)/2+1)
    print(floor(width/2-w(ButtonsImg)/2)+1)
    IMAGE = put(IMAGE, ButtonsImg,floor(width/2-w(ButtonsImg)/2)+1,height-12,»02″)
    if active:
    Window = await imageopenWEB(«95/Window.png»)
    else:
    Window = await imageopenWEB(«95/Window Inactive.png»)
    if closebutton:
    CloseButton = await imageopenWEB(«95/Close Button.png»)
    else:
    CloseButton = await imageopenWEB(«95/Close Button Disabled.png»)
    IMAGE = put(resize(Window,width+2+2,height+21+2,3,3,21,2),IMAGE,2,21)
    if active:
    IMAGE = put(IMAGE,Image.new(«RGBA»,(width-2,18),(16,132,208)),3,3)
    IMAGE = put(IMAGE,gradient(width-2-19,18,(0,0,128),(16,132,208)),3,3)
    else:
    IMAGE = put(IMAGE,Image.new(«RGBA»,(width-2,18),(181,181,181)),3,3)
    IMAGE = put(IMAGE,gradient(width-2-19,18,(128,128,128),(181,181,181)),3,3)
    if(title):
    TitleImg = await createtextmac(title,»95/fonts/caption/»,(255,255,255) if active else (192,192,192))
    IMAGE = put(IMAGE,TitleImg,5,5)
    print(IMAGE.size)
    IMAGE = put(IMAGE,CloseButton,width-1,5,»20″)
    return IMAGE

    async def Create2000Window(icon=»»,text=»»,title=»»,buttons=[],active=True,closebutton=True):
    buttons = buttons.copy()
    width = 0
    height = 0
    textshift = 0
    iconheight = 32
    if(icon):
    IconImg = await imageopenWEB(icon)
    width += w(IconImg)+12+12
    height = max(height,h(IconImg)+12+6)
    textshift += w(IconImg)+10
    iconheight = h(IconImg)
    if(text):
    TextImg = await createtext(text,»xp/fonts/text/»,(0,0,0,255))
    print(w(TextImg))
    print(w(TextImg)+textshift+18+12)
    width = max(width,w(TextImg)+textshift+18+11)
    height = max(height,h(TextImg)+12+6)
    print(buttons)
    if(buttons):
    button = buttons[0]
    ButtonsImg = Image.new(«RGBA»,(1,1),(0,0,0,0))
    ButtonImg = await Create2000Button(button[0],getsafe(button,1,0) if active else 0,getsafe(button,2,False))
    ButtonsImg = put(Image.new(«RGBA»,(w(ButtonsImg)+w(ButtonImg),max(h(ButtonsImg),h(ButtonImg))),(0,0,0,0)),ButtonsImg,0,0)
    ButtonsImg = put(ButtonsImg,ButtonImg,w(ButtonsImg),0,»20″)
    buttons.pop(0)
    for button in buttons:
    ButtonImg = await Create2000Button(button[0],getsafe(button,1,0) if active else 0,getsafe(button,2,False))
    ButtonsImg = put(Image.new(«RGBA»,(w(ButtonsImg)+w(ButtonImg)+6,max(h(ButtonsImg),h(ButtonImg))),(0,0,0,0)),ButtonsImg,0,0)
    ButtonsImg = put(ButtonsImg,ButtonImg,w(ButtonsImg),0,»20″)
    width = max(width,w(ButtonsImg)+12+12)
    height += h(ButtonsImg)+12+11
    buttons.append(«good»)
    #width = 262
    #height = 96
    IMAGE = Image.new(«RGBA»,(width,height),(212,208,200,255))
    if(icon):
    IMAGE = put(IMAGE,IconImg,12,12)
    if(text):

    IMAGE = put(IMAGE,TextImg,18+textshift,21 if h(TextImg) == 13 else 16 if h(TextImg) == 26 else 12 )
    if(buttons):
    print(width/2-w(ButtonsImg)/2+1)
    print(floor(width/2-w(ButtonsImg)/2)+1)
    IMAGE = put(IMAGE, ButtonsImg,floor(width/2-w(ButtonsImg)/2)+1,height-12,»02″)
    if active:
    Window = await imageopenWEB(«2000/Window.png»)
    else:
    Window = await imageopenWEB(«2000/Window Inactive.png»)
    if closebutton:
    CloseButton = await imageopenWEB(«2000/Close Button.png»)
    else:
    CloseButton = await imageopenWEB(«2000/Close Button Disabled.png»)
    IMAGE = put(resize(Window,width+2+2,height+21+2,3,3,21,2),IMAGE,2,21)
    if active:
    IMAGE = put(IMAGE,Image.new(«RGBA»,(width-2,18),(166,202,240)),3,3)
    IMAGE = put(IMAGE,gradient(width-2-19,18,(10,36,106),(166,202,240)),3,3)
    else:
    IMAGE = put(IMAGE,Image.new(«RGBA»,(width-2,18),(192,192,192)),3,3)
    IMAGE = put(IMAGE,gradient(width-2-19,18,(128,128,128),(192,192,192)),3,3)
    if(title):
    TitleImg = await createtext(title,»xp/fonts/text/»,(255,255,255,255) if active else (212,208,200,255),kerningadjust=1)
    IMAGE = put(IMAGE,TitleImg,5,5)
    IMAGE = put(IMAGE,TitleImg,6,5)
    print(IMAGE.size)
    IMAGE = put(IMAGE,CloseButton,width-1,5,»20″)
    return IMAGE

    async def UpdateImagexp():
    image = await CreateXPWindow(0,0,errortext=document.getElementById(«text»).value,
    captiontext=document.getElementById(«title»).value,
    active=document.getElementById(«active»).checked,
    erroriconpath=document.querySelector(‘input[name=»icon»]:checked’).value,
    button1=document.getElementById(«button1»).value,
    button2=document.getElementById(«button2»).value,
    button3=document.getElementById(«button3»).value,
    button1style=int(document.getElementById(«button1style»).value),
    button2style=int(document.getElementById(«button2style»).value),
    button3style=int(document.getElementById(«button3style»).value))
    canvas = document.getElementById(«xpoutput»)
    ctx = canvas.getContext(«2d»)
    width,height = image.size

    canvas.style.width = f»{width}px»
    canvas.style.height = f»{height}px»

    canvas.width = width
    canvas.height = height

    ctx.clearRect(0, 0, width, height)
    data = Uint8ClampedArray.new(to_js(image.tobytes()))
    image_data = ImageData.new(data, width, height)
    ctx.putImageData(image_data, 0, 0)
    def createlist(b1,b2,b3,s1,s2,s3):
    buttonlist = []
    if(b1 != «»):
    buttonlist.append([b1,s1])
    if(b2 != «»):
    buttonlist.append([b2,s2])
    if(b3 != «»):
    buttonlist.append([b3,s3])
    return buttonlist
    def createlist95(b1,b2,b3,s1,s2,s3,u1,u2,u3):
    buttonlist = []
    if(b1 != «»):
    buttonlist.append([b1,s1,u1])
    if(b2 != «»):
    buttonlist.append([b2,s2,u2])
    if(b3 != «»):
    buttonlist.append([b3,s3,u3])
    return buttonlist
    async def UpdateImage7():
    button1=document.getElementById(«button1»).value
    button2=document.getElementById(«button2»).value
    button3=document.getElementById(«button3»).value
    button1style=int(document.getElementById(«button1style»).value)
    button2style=int(document.getElementById(«button2style»).value)
    button3style=int(document.getElementById(«button3style»).value)
    image = await Create7Window(text=document.getElementById(«text»).value,
    title=document.getElementById(«title»).value,
    icon=document.querySelector(‘input[name=»icon»]:checked’).value,
    buttons=createlist(button1,button2,button3,button1style,button2style,button3style))
    canvas = document.getElementById(«7output»)
    ctx = canvas.getContext(«2d»)
    width,height = image.size

    canvas.style.width = f»{width}px»
    canvas.style.height = f»{height}px»

    canvas.width = width
    canvas.height = height

    ctx.clearRect(0, 0, width, height)
    data = Uint8ClampedArray.new(to_js(image.tobytes()))
    image_data = ImageData.new(data, width, height)
    ctx.putImageData(image_data, 0, 0)

    async def UpdateImage3_1():
    button1=document.getElementById(«button1»).value
    button2=document.getElementById(«button2»).value
    button3=document.getElementById(«button3»).value
    button1style=int(document.getElementById(«button1style»).value)
    button2style=int(document.getElementById(«button2style»).value)
    button3style=int(document.getElementById(«button3style»).value)
    button1underline=int(document.getElementById(«button1default»).checked)
    button2underline=int(document.getElementById(«button2default»).checked)
    button3underline=int(document.getElementById(«button3default»).checked)
    image = await Create3_1Window(text=document.getElementById(«text»).value,
    title=document.getElementById(«title»).value,
    icon=document.querySelector(‘input[name=»icon»]:checked’).value,
    buttons=createlist95(button1,button2,button3,button1style,button2style,button3style,button1underline,button2underline,button3underline),
    active=document.getElementById(«active»).checked)
    canvas = document.getElementById(«3_1output»)
    ctx = canvas.getContext(«2d»)
    width,height = image.size

    canvas.style.width = f»{width}px»
    canvas.style.height = f»{height}px»

    canvas.width = width
    canvas.height = height

    ctx.clearRect(0, 0, width, height)
    data = Uint8ClampedArray.new(to_js(image.tobytes()))
    image_data = ImageData.new(data, width, height)
    ctx.putImageData(image_data, 0, 0)

    async def UpdateImageUbuntu():
    button1=document.getElementById(«button1»).value
    button2=document.getElementById(«button2»).value
    button3=document.getElementById(«button3»).value
    button1style=int(document.getElementById(«button1style»).value)
    button2style=int(document.getElementById(«button2style»).value)
    button3style=int(document.getElementById(«button3style»).value)
    image = await CreateUbuntuWindow(bigtext=document.getElementById(«text»).value,
    text=document.getElementById(«subtext»).value,
    title=document.getElementById(«title»).value,
    icon=document.querySelector(‘input[name=»icon»]:checked’).value,
    buttons=createlist(button1,button2,button3,button1style,button2style,button3style),
    active=document.getElementById(«active»).checked)
    canvas = document.getElementById(«ubuntuoutput»)
    ctx = canvas.getContext(«2d»)
    width,height = image.size

    canvas.style.width = f»{width}px»
    canvas.style.height = f»{height}px»

    canvas.width = width
    canvas.height = height

    ctx.clearRect(0, 0, width, height)
    data = Uint8ClampedArray.new(to_js(image.tobytes()))
    image_data = ImageData.new(data, width, height)
    ctx.putImageData(image_data, 0, 0)

    async def UpdateImageMac():
    image = await CreateMacWindow(0,0,errortext=document.getElementById(«text»).value,
    title=document.getElementById(«title»).value,
    icon=document.querySelector(‘input[name=»icon»]:checked’).value,
    button1=document.getElementById(«button1»).value,
    button2=document.getElementById(«button2»).value,
    button3=document.getElementById(«button3»).value,
    button1style=int(document.getElementById(«button1style»).value),
    button2style=int(document.getElementById(«button2style»).value),
    button3style=int(document.getElementById(«button3style»).value),
    button1default=int(document.getElementById(«button1default»).checked),
    button2default=int(document.getElementById(«button2default»).checked),
    button3default=int(document.getElementById(«button3default»).checked))
    canvas = document.getElementById(«macoutput»)
    ctx = canvas.getContext(«2d»)
    width,height = image.size

    canvas.style.width = f»{width}px»
    canvas.style.height = f»{height}px»

    canvas.width = width
    canvas.height = height

    ctx.clearRect(0, 0, width, height)
    data = Uint8ClampedArray.new(to_js(image.tobytes()))
    image_data = ImageData.new(data, width, height)
    ctx.putImageData(image_data, 0, 0)

    async def UpdateImageMacAlert():
    image = await CreateMacAlertDialog(0,0,errortext=document.getElementById(«text»).value,
    title=document.getElementById(«title»).value,
    icon=document.querySelector(‘input[name=»icon»]:checked’).value,
    bar=document.getElementById(«secondary»).checked,
    button1=document.getElementById(«button1»).value,
    button2=document.getElementById(«button2»).value,
    button3=document.getElementById(«button3»).value,
    button1style=int(document.getElementById(«button1style»).value),
    button2style=int(document.getElementById(«button2style»).value),
    button3style=int(document.getElementById(«button3style»).value),
    button1default=int(document.getElementById(«button1default»).checked),
    button2default=int(document.getElementById(«button2default»).checked),
    button3default=int(document.getElementById(«button3default»).checked))
    canvas = document.getElementById(«macalertoutput»)
    ctx = canvas.getContext(«2d»)
    width,height = image.size

    canvas.style.width = f»{width}px»
    canvas.style.height = f»{height}px»

    canvas.width = width
    canvas.height = height

    ctx.clearRect(0, 0, width, height)
    data = Uint8ClampedArray.new(to_js(image.tobytes()))
    image_data = ImageData.new(data, width, height)
    ctx.putImageData(image_data, 0, 0)

    async def UpdateImageMacWindoid():
    image = await CreateMacWindoid(text=document.getElementById(«text»).value,
    icon=document.querySelector(‘input[name=»icon»]:checked’).value,
    collapsed=not document.getElementById(«secondary»).checked)
    canvas = document.getElementById(«macwindoidoutput»)
    ctx = canvas.getContext(«2d»)
    width,height = image.size

    canvas.style.width = f»{width}px»
    canvas.style.height = f»{height}px»

    canvas.width = width
    canvas.height = height

    ctx.clearRect(0, 0, width, height)
    data = Uint8ClampedArray.new(to_js(image.tobytes()))
    image_data = ImageData.new(data, width, height)
    ctx.putImageData(image_data, 0, 0)

    async def UpdateImage7TaskDialog():
    button1=document.getElementById(«button1»).value
    button2=document.getElementById(«button2»).value
    button3=document.getElementById(«button3»).value
    button1style=int(document.getElementById(«button1style»).value)
    button2style=int(document.getElementById(«button2style»).value)
    button3style=int(document.getElementById(«button3style»).value)
    image = await Create7TaskDialog(textbig=document.getElementById(«text»).value,
    textsmall=document.getElementById(«subtext»).value,
    closebutton=document.getElementById(«secondary»).checked,
    title=document.getElementById(«title»).value,
    icon=document.querySelector(‘input[name=»icon»]:checked’).value,
    buttons=createlist(button1,button2,button3,button1style,button2style,button3style))
    canvas = document.getElementById(«taskdialogoutput»)
    ctx = canvas.getContext(«2d»)
    width,height = image.size

    canvas.style.width = f»{width}px»
    canvas.style.height = f»{height}px»

    canvas.width = width
    canvas.height = height

    ctx.clearRect(0, 0, width, height)
    data = Uint8ClampedArray.new(to_js(image.tobytes()))
    image_data = ImageData.new(data, width, height)
    ctx.putImageData(image_data, 0, 0)

    async def UpdateImage95():
    button1=document.getElementById(«button1»).value
    button2=document.getElementById(«button2»).value
    button3=document.getElementById(«button3»).value
    button1style=int(document.getElementById(«button1style»).value)
    button2style=int(document.getElementById(«button2style»).value)
    button3style=int(document.getElementById(«button3style»).value)
    button1underline=int(document.getElementById(«button1default»).checked)
    button2underline=int(document.getElementById(«button2default»).checked)
    button3underline=int(document.getElementById(«button3default»).checked)
    image = await Create95Window(text=document.getElementById(«text»).value,
    title=document.getElementById(«title»).value,
    icon=document.querySelector(‘input[name=»icon»]:checked’).value,
    buttons=createlist95(button1,button2,button3,button1style,button2style,button3style,button1underline,button2underline,button3underline),
    active=document.getElementById(«active»).checked,
    closebutton=document.getElementById(«secondary»).checked)
    canvas = document.getElementById(«95output»)
    ctx = canvas.getContext(«2d»)
    width,height = image.size

    canvas.style.width = f»{width}px»
    canvas.style.height = f»{height}px»

    canvas.width = width
    canvas.height = height

    ctx.clearRect(0, 0, width, height)
    data = Uint8ClampedArray.new(to_js(image.tobytes()))
    image_data = ImageData.new(data, width, height)
    ctx.putImageData(image_data, 0, 0)

    async def UpdateImage98():
    button1=document.getElementById(«button1»).value
    button2=document.getElementById(«button2»).value
    button3=document.getElementById(«button3»).value
    button1style=int(document.getElementById(«button1style»).value)
    button2style=int(document.getElementById(«button2style»).value)
    button3style=int(document.getElementById(«button3style»).value)
    button1underline=int(document.getElementById(«button1default»).checked)
    button2underline=int(document.getElementById(«button2default»).checked)
    button3underline=int(document.getElementById(«button3default»).checked)
    image = await Create98Window(text=document.getElementById(«text»).value,
    title=document.getElementById(«title»).value,
    icon=document.querySelector(‘input[name=»icon»]:checked’).value,
    buttons=createlist95(button1,button2,button3,button1style,button2style,button3style,button1underline,button2underline,button3underline),
    active=document.getElementById(«active»).checked,
    closebutton=document.getElementById(«secondary»).checked)
    canvas = document.getElementById(«98output»)
    ctx = canvas.getContext(«2d»)
    width,height = image.size

    canvas.style.width = f»{width}px»
    canvas.style.height = f»{height}px»

    canvas.width = width
    canvas.height = height

    ctx.clearRect(0, 0, width, height)
    data = Uint8ClampedArray.new(to_js(image.tobytes()))
    image_data = ImageData.new(data, width, height)
    ctx.putImageData(image_data, 0, 0)

    async def UpdateImage2000():
    button1=document.getElementById(«button1»).value
    button2=document.getElementById(«button2»).value
    button3=document.getElementById(«button3»).value
    button1style=int(document.getElementById(«button1style»).value)
    button2style=int(document.getElementById(«button2style»).value)
    button3style=int(document.getElementById(«button3style»).value)
    button1underline=int(document.getElementById(«button1default»).checked)
    button2underline=int(document.getElementById(«button2default»).checked)
    button3underline=int(document.getElementById(«button3default»).checked)
    image = await Create2000Window(text=document.getElementById(«text»).value,
    title=document.getElementById(«title»).value,
    icon=document.querySelector(‘input[name=»icon»]:checked’).value,
    buttons=createlist95(button1,button2,button3,button1style,button2style,button3style,button1underline,button2underline,button3underline),
    active=document.getElementById(«active»).checked,
    closebutton=document.getElementById(«secondary»).checked)
    canvas = document.getElementById(«2000output»)
    ctx = canvas.getContext(«2d»)
    width,height = image.size

    canvas.style.width = f»{width}px»
    canvas.style.height = f»{height}px»

    canvas.width = width
    canvas.height = height

    ctx.clearRect(0, 0, width, height)
    data = Uint8ClampedArray.new(to_js(image.tobytes()))
    image_data = ImageData.new(data, width, height)
    ctx.putImageData(image_data, 0, 0)

    async def UpdateImage(e):
    await asyncio.gather(
    UpdateImagexp(),
    UpdateImage7(),
    UpdateImage3_1(),
    UpdateImageUbuntu(),
    UpdateImageMac(),
    UpdateImageMacAlert(),
    UpdateImageMacWindoid(),
    UpdateImage7TaskDialog(),
    UpdateImage95(),
    UpdateImage98(),
    UpdateImage2000()
    )

    def UpdateCustomIcon(e=None):
    url = document.getElementById(«customicon»).value
    document.getElementById(«customiconimg»).src = url
    document.getElementById(«customiconradio»).value = url

    Update = create_proxy(UpdateImage)
    document.getElementById(«generate»).addEventListener(«click»,Update)

    UpdateIcon = create_proxy(UpdateCustomIcon)
    document.getElementById(«customicon»).addEventListener(«change»,UpdateIcon)
    UpdateCustomIcon()

    Чем более новой является версия и сборка Windows, тем больше вероятность появления какой-нибудь ошибки при запуске в ней устаревшего программного обеспечения. Примером может служить ошибка DirectDraw 16385 или с иным кодом при запуске устаревших игр вроде Diablo II или Age of Empires в Windows 10. Ошибка возникает далеко не у всех пользователей «десятки», но статистически вероятность с ней столкнуться в Windows 10 выше, чем в более ранних версиях системы.

    DirectDraw 16385

    Ошибка DirectDraw в Windows 10 может возникнуть из-за несовместимости, использования полноэкранного режима, отключенных компонентов Direct Play и .NET Framework, а также проблем с рендерингом, когда устаревшая игра не знает, как использовать современные технологии, например, Direct3D 11 и Direct3D 12. Когда-нибудь в будущем запуск игр начала 2000 годов будет возможен только в эмуляторах, а пока что столкнувшимся с ошибкой DirectDraw при запуске старых игр в Windows 10 можно дать такие рекомендации.

    Использование оконного режима

    Для начала можно попробовать запустить игру в обычном оконном режиме.

    Для этого откройте свойства ярлыка игры.

    Свойства ярлыка

    И добавьте через пробел ключ -w в конец пути к исполняемому файлу игры.

    Ключ -w

    Сам путь, как обычно, указывается в поле «Объект».

    Сохраните изменения и запустите игру.

    Если устранить таким способом ошибку DirectDraw не удалось, переходим к следующему варианту.

    Запуск в режиме совместимости

    Для устранения проблем совместимости в Windows 10 предусмотрена специальная функция, задачей которой является «убедить» запускаемую программу, что она работает в более ранней версии операционной системы.

    Удается ей это не всегда, но в случае с той же Age of Empire вроде бы всё работает, по крайней мере, об этом сообщали многие пользователи, столкнувшиеся при запуске этой игры с ошибкой DirectDraw.

    Откройте свойства исполняемого файла или ярлыка игры, переключитесь на вкладку «Совместимость», активируйте чекбокс «Запустить программу в режиме совместимости» и выберите в выпадающем списке Windows XP (пакет обновления 3).

    Совместимость

    Сохраните настройки и запустите игру.

    Также вы можете попробовать опцию «Исправление проблем с совместимостью», но тогда Windows 10 будет пробовать сама определить наиболее подходящую версию системы.

    Включите Direct Play и .NET 3.5

    Достаточно распространенной причиной ошибки является также недоступность системных компонентов Direct Play и .NET 3.5, которые в последних сборках могут быть отключены по умолчанию.

    Откройте командой optionalfeatures модуль управления компонентами и установите флажки для .NET Framework 3.5 (включает .NET 2.0 и 3.0).

    Управление компонентами

    И Компоненты прежних версий -> Direct Play.

    Direct Play

    Нажмите «OK».

    Если потребуется перезагрузка компьютера, перезагрузитесь.

    Использование оболочки dgVoodo Wrapper

    Если ни один из способов не помог, весьма вероятно, что причиной ошибки являются проблемы с рендерингом.

    В этом случае можно попробовать прибегнуть к врапперу dgVoodo — специальной программе, позволяющей автоматически преобразовывать старые графические API-интерфейсы в Direct3D 11 и выше.

    Скачать инструмент можно с сайта разработчика http://dege.freeweb.hu/dgVoodoo2/dgVoodoo2.

    Проводник

    Распакуйте архив с враппером в любую папку и скопируйте файлы dgVoodooCpl.exe и dgVoodoo.conf, а также содержимое каталогов MS и Glide в папку с установленной игрой.

    А еще лучше ничего не копировать, а нажать кнопку «Add» и просто указать путь к папке с игрой.

    DgVoodo

    Далее включаем контроль dgVoodo нажатием кнопки «./» и запускаем игру.

    Содержание

    1. Как разыграть друга, вызвав безопасный «BSOD» в любой версии Windows
    2. Fakebsod.com
    3. Screenprank
    4. Geekprank.com
    5. 12 самых смешных ошибок Windows всех времен
    6. 1. В Интернете больше пользователей, чем вы
    7. 2. Windows Error Reporting сообщит об ошибке
    8. 3. Это может занять некоторое время
    9. 4. Ложная тревога
    10. 5. Не указан потенциальный недостаток безопасности?
    11. 6. Не удается удалить файл, пожалуйста, удалите файлы
    12. 7. Нам понадобится более длинный пароль
    13. 8. Мы не можем открывать программы при выключении
    14. 9. Vista — это проблема
    15. 10. Что-то случилось
    16. 11. Здесь нет клавиатуры
    17. 12. Вставьте диск в Windows Phone
    18. Ошибка загрузки ошибок
    19. 12 самых смешных ошибок Windows всех времен
    20. 1. В Интернете больше пользователей, чем вы
    21. 2. Windows Error Reporting сообщит об ошибке
    22. 3. Это может занять некоторое время
    23. 4. Ложная тревога
    24. 5. Не указан потенциальный недостаток безопасности?
    25. 6. Не удается удалить файл, пожалуйста, удалите файлы
    26. 7. Нам понадобится более длинный пароль
    27. 8. Мы не можем открывать программы при закрытии
    28. 9. Vista — это проблема
    29. 10. Что-то случилось
    30. 11. Здесь нет клавиатуры
    31. 12. Вставьте диск в Windows Phone
    32. Ошибка загрузки ошибок

    Как разыграть друга, вызвав безопасный «BSOD» в любой версии Windows

    bsodfun

    Появление BSOD всегда указывает на критический сбой в работе операционной системы, но это свидетельство об ошибке можно превратить в шутку, разыграв друга, коллегу или даже начальника. В ранних версиях Windows это можно было сделать, подправив один ключ в реестре, затем появилась утилита NotMyFault от самих же разработчиков Microsoft, вызывающая синий экран путем искусственного моделирования разных ошибок — сбоя драйверов ядра, переполнения буфера и тому подобное.

    Называется она NotMyFault, скачать ее можно со страницы docs.microsoft.com/en-us/sysinternals/downloads/notmyfault, но дело в другом — похоже на то, что в последних сборках Windows 10 она перестала работать.

    6203518 0

    То есть она работает, но не так, как этого следовало бы ожидать.

    Если в параметрах загрузки и восстановления системы у вас включена автоматическая перезагрузка, то после нажатия кнопки «Crash» система на несколько секунд зависнет, а затем уйдет на перезагрузку; если отключена, то перезагружать зависшую Windows придется вручную. Любопытно, что файл MEMORY.DMP в корневом каталоге Windows всё же создается, а значит его можно проанализировать. В свое время Microsoft предупреждала о рисках использования NotMyFault, а сейчас и вовсе прекратила его развитие. Возможно, это даже к лучшему, потому что существуют куда более безопасные, но ничуть не менее реалистичные способы подшутить над другом или коллегой, сымитировав BSOD с помощью обычного браузера.

    Fakebsod.com

    6203518 1

    6203518 2

    Screenprank

    Шуточный ресурс, предлагающий несколько безобидных розыгрышей, в том числе и синий экран смерти Windows 8.1 и 10.

    6203518 4

    Как и в предыдущем розыгрыше, Screenprank моделирует реальный экран смерти с описанием HAL INSTALLATION FAILED, вызванный сбоем драйверов или аппаратными неполадками.

    6203518 3

    Geekprank.com

    6203518 5

    6203518 6

    6203518 7

    а вслед за ним еще ряд угрожающих сообщений вроде «загрузочное устройство не найдено» и прочее.

    6203518 8

    Как и в остальных случаях, избавляемся от беды нажатием F11 и закрытием страницы.

    6203518 10

    Источник

    Конечно, компьютерные глюки раздражают. Зато какой чудесный источник смешных рассказов.

    1. В интернете есть другие пользователи

    Любой человек, просидевший в интернете дольше пяти минут, в курсе, что в онлайне с приватностью проблемы. Это не мешает Internet Explorer предупреждать об очевидном:

    53«Когда вы отправляете информацию в интернет, ее могут увидеть другие люди. Вы хотите продолжить?»

    Эта ошибка появляется после установки новой версии Internet Explorer. Как правило, когда вы первый раз открываете поиск Google. Так она очень заботливо сообщает, если вы выложите что-то в сеть, кто-нибудь может случайно это увидеть. Представляете, какой ужас? К счастью, кнопка «не показывать это сообщение снова» избавляет от этой гиперопеки на будущее. В первые дни существования интернета эта ошибка имела смысл, но в наше-то время ее почему не удалили.

    2. Система уведомлений об ошибках уведомляет вас

    Когда программа вылетает, она обычно просит вас предоставить отчет об ошибке, чтобы вы могли сделать вид, будто верите, что кто-нибудь будет придумывать решение для вашей проблемы. Но иногда в отчете об ошибке происходит сбой, и тогда вы видите что-нибудь в этом духе:

    53«Система уведомлений об ошибках прекратила работу.
    Возникла проблема, которая помешала ей работать корректно.
    Windows закроет приложение и сообщит, если появится решение этой проблемы»

    Программа, которая сообщает о багах, вылетела. Windows обещает сообщить, если найдет для этого решения, но как она будет его искать – загадка, ведь программа-то вылетела. Похоже, это рекурсия.

    3. Кажется, потребуется время

    Когда вы перемещаете файлы, Windows открывает специальное окно, в котором очень мило демонстрирует, сколько времени осталось до конца копирования. Иногда эта оценка не очень точная.

    06«Копирование 306 файлов (1.45Гб) Осталось примерно 46368 дней, 5 часов»

    Не беспокойтесь, полтора гигабайта данных переместятся всего лишь за 127 лет. Если, конечно, раньше компьютер не скачает себе обновление и не уйдет в перезагрузку.

    Обычно сообщения об ошибках говорят о том, что что-то сломалось, глючит или вылетело. Но некоторые просто любят пугать людей:

    30Ошибка. Операция успешно завершена.

    Большинство людей видят заголовок «Ошибка», сопровождающийся выразительным значком «Х», и пугаются, что сейчас придется восстанавливать половину сделанного за день… но нет! «Винда» всего лишь решила, видимо, вылечить вас от икоты.

    5. Невозможно удалить файл, пожалуйста, удалите файл

    С ошибками при удалении сталкиваешься часто, но одна из них – это просто нечто! Если ваш жесткий диск забит до невозможности, и вы пытаетесь начать зачистку, Windows может порадовать вас таким сообщением:

    12«Ошибка при удалении файла.
    Невозможно удалить: недостаточно дискового пространства.
    Удалите один или несколько файлов, чтобы освободить место на диске, и попробуйте снова»

    Пытаешься удалить файл, а тебе говорят, что для этого слишком мало места, и нужно сначала удалить какой-то другой файл! Почему мы не можем освободить место, удалив конкретно этот – загадка, достойная Шерлока.

    6. Мы не можем открыть программу, потому что выключаемся.

    Сторонние разработчики создавали настолько феерические сообщения об ошибках, что Microsoft пришлось создавать специальную инструкцию по созданию этих сообщений. Что сподвигло их на этот шаг? Гениальное сообщение:

    37«Невозможен запуск приложения. Приложение не может запуститься, так как компьютер выключается»

    Это просто великолепная комбинация бесполезного и ненужного – если уж пользователь решил выключить компьютер, наверное его не интересует, что какая-то программа не может запуститься? К тому же это сообщение мешало завершению работы Windows, пока пользователь не нажмет на «ОК», так что компьютер мог подвиснуть в таком состоянии надолго.

    7. Vista – это проблема!

    Vista нельзя назвать самой адекватной сборкой. Пользователи подшучивали над ней аж до выхода «восьмерки». Но то, что Windows будет самокритична, никто не ожидал:

    94«Проблема вызвана приложением Windows Vista от Microsoft»

    В этом окне Windows честно признается, что Vista вызвала проблему и обещает сообщить о решении, когда оно будет доступно. Но давайте честно: лучшее решение – перестать использовать Vista. Или вообще Windows.

    Это один из самых новых багов. При обновлении до Windows 10, некоторые пользователи увидели весьма полезное сообщение:

    31«Установка Windows 10. Что-то случилось. Что-то случилось»

    На случай, если пользователь с первого раза не поймет, ему повторили два раза. И ведь какое информативное сообщение! Оно, конечно, поможет найти и суть проблемы, и ее причины.

    9. Клавиатура? Какая клавиатура?

    Сообщение «нажмите любую клавишу, чтобы продолжить» появляется очень часто, и обычно это признак не проблемы, а, например, окончания загрузки игры. Но что будет, если Windows заметит, что клавиатура не работает?

    82«Ошибка клавиатуры. Клавиатура не отвечает. Нажмите любую клавишу»

    Как и чем я должен нажимать клавишу, если клавиатура не работает целиком? И почему сразу вспоминается анекдот про наклейку Any Key на кнопке выключения?

    Источник

    ridiculous windows errors

    Компьютеры и люди такие разные. Хотя компьютеры бесконечно быстрее обрабатывают информацию, они сталкиваются с проблемами, если пытаются отклониться от курса. Эти «быстрые идиоты» контраст с людьми, которые не могут думать так же быстро, как машины, но могут адаптироваться гораздо легче.

    Эти отношения привели к некоторым веселым ситуациям, когда начинающие пользователи не смогли понять основы использования Windows. С другой стороны это сообщения об ошибках. Когда компьютер сталкивается с неожиданным сценарием, он обычно выдает окно сообщения для просмотра пользователем.

    hqdefault

    1. В Интернете больше пользователей, чем вы

    Любой, кто пользовался интернетом более пяти минут, знает, что большая часть активности в Интернете не является частной. Это не мешает Internet Explorer (IE) указывать на очевидное:

    01 IE See Information

    Эта ошибка обычно появляется при новой установке IE. Обычно вы увидите это при первом поиске в Google или Bing. Как он любезно указывает, когда вы размещаете что-то в сети, какой-то другой пользователь где-то может увидеть это. Представь это! К счастью, вы можете установить флажок « Не показывать мне это сообщение», и IE избавит вас от напоминания в будущем.

    Эта ошибка, возможно, была более уместной в первые дни Интернета, но в настоящее время она все еще скрывается в IE. По-прежнему важно оставаться в безопасности в Интернете, поэтому обязательно ознакомьтесь с руководством по предотвращению интернет-наблюдения.

    2. Windows Error Reporting сообщит об ошибке

    Всякий раз, когда происходит сбой программы в Windows, она обычно просит вас отправить отчет об ошибке, чтобы вы могли притворяться, что Microsoft ищет решение именно вашей проблемы. Однако что происходит, когда в отчете об ошибке встречается ошибка?

    Итак, теперь программа, сообщающая об ошибке, обнаружила ошибку, но не волнуйтесь. Windows сообщит вам, если появится решение. Как оно достигнет этого решения, неизвестно, поскольку ошибка не позволяет ему найти это решение. Надеемся, что мы не другой ошибкой или, что еще хуже, BSOD, такой как SYSTEM_SERVICE_EXCEPTION

    3. Это может занять некоторое время

    03 long copy time errorИзображение предоставлено TechBlog

    Не волнуйтесь, ваш гигабайт и половина данных будут перемещены всего за 127 лет. Надеемся, что вы назначили преемника для наблюдения за его завершением, хотя более вероятно, что операционная система просто перестанет работать до этого. Скорее всего, Windows прервет его с обновлением и перезагрузится.

    4. Ложная тревога

    В мире достаточно сообщений об ошибках, которые предоставляют информацию о реальных проблемах. Это конкретное сообщение не удовлетворено этим, однако, и вместо этого заставляет вас всех работать впустую:

    04 Error SuccessИмиджевый кредит: советник через Flickr

    5. Не указан потенциальный недостаток безопасности?

    Нет ничего более похожего на сообщение об ошибке, настолько расплывчатое и бесполезное, что у пользователя нет другого выбора, кроме как игнорировать его. Вот одно из таких сообщений:

    05 Unspecified Security FlawИзображение предоставлено Zusch

    6. Не удается удалить файл, пожалуйста, удалите файлы

    06 Error Deleting FilesИзображение предоставлено TechV.com

    7. Нам понадобится более длинный пароль

    Некоторые пользователи Windows 2000 обнаружили, что ОС не принимает ничего, кроме пароля длиной 18 770 символов. Даже не пытайтесь украсть этот пароль из 18 760 символов в Windows.

    07 Error Long PasswordИмиджевый кредит: TechChunks

    Более того, Windows стремилась обеспечить безопасность, следя за тем, чтобы этот мега-пароль отличался от последних 30 689 паролей. Каковы шансы дублировать более 18 000 символов (около 9 300 слов!)? Может ли менеджер паролей хранить такой длинный пароль? Один пользователь Reddit подсчитал, что обычному машинисту потребуется около 45 минут, чтобы ввести столько символов.

    Как объяснили в Microsoft, это произошло из-за ошибки аутентификации домена MIT Kerberos, которую они исправили в Windows 2000 с пакетом обновления 3. Microsoft также предупредительно указала, что «количество необходимых символов изменяется с 17 145 до 18 770 при установке SP1». Это дало столь необходимое объяснение людям, которые задавались вопросом, почему им вдруг пришлось добавить дополнительные 1625 символов в свои пароли.

    8. Мы не можем открывать программы при выключении

    08 Error Failed Shutdown

    Лучшим вариантом было бы вообще избежать сообщения об ошибке. Мы рады, что можем воспользоваться возможностью подшутить над этим.

    9. Vista — это проблема

    Windows Vista не была самой лучшей версией операционной системы Microsoft. Хотя это обычная шутка среди пользователей компьютеров, мы не ожидаем, что Microsoft скажет что-то слишком плохое о Vista.

    09 Problem Caused By VistaИмиджевый кредит: Quora

    10. Что-то случилось

    Вот тот, который более свежий. При обновлении до Windows 10 вы могли встретить это полезное сообщение:

    10 Something Happened ErrorИзображение предоставлено: Reddit

    На тот случай, если вы не были уверены, что что-то действительно произошло, это и заголовок, и текст сообщения. Мы не можем представить, как это сообщение было полезным для команды разработчиков, не говоря уже о пользователе. Было ли что-то, что наше имя было выбрано в раздаче?

    11. Здесь нет клавиатуры

    11 Keyboard ErrorИзображение предоставлено: Голиаф

    Э-э, если клавиатура не отвечает, как вы узнаете, что я нажал клавишу? Это тест, чтобы увидеть, доверчив ли я? Я не собираюсь ничего нажимать.

    12. Вставьте диск в Windows Phone

    Технически это не ошибка Windows, поскольку она произошла на телефоне с Windows, но все равно довольно забавно. В то время как обычные пользователи, вероятно, никогда не столкнутся с этой ошибкой, те, кто возится со своими устройствами Windows Mobile, иногда сталкивался с этой ошибкой:

    Вы можете увидеть эту ошибку на настольной установке Windows с поврежденными файлами, но это забавная рекомендация. У моего телефона есть слот для дисков, или мне нужно купить адаптер для этого?

    Ошибка загрузки ошибок

    Забавно шутить о глупости компьютеров. Эти ошибки могут вызывать разочарование когда вы сталкиваетесь с ними, но когда вы уделяете время тому, чтобы подумать о том, что они (не могут) сказать вам, юмор проникает. Надеемся, что разработчики смогут извлечь уроки из этого и создать сообщения об ошибках, которые не столь загадочны или бесполезны.

    Знаете ли вы, что вы можете обойти экран входа в Windows 98 через принтер? Ознакомьтесь с возвратом ошибок больше смеха.

    Мы уверены, что в этот список можно добавить еще много ошибок. Каковы самые смешные ошибки, с которыми вы столкнулись в Windows?

    Источник

    12 самых смешных ошибок Windows всех времен

    Компьютеры и люди такие разные. Хотя компьютеры бесконечно быстрее обрабатывают информацию, у них возникают проблемы, если они пытаются отклониться от курса. Эти «быстрые идиоты»

    в отличие от людей, которые не могут мыслить так же быстро, как машины, но могут гораздо легче адаптироваться.

    Эти отношения привели к некоторым веселым ситуациям, когда начинающие пользователи не смогли понять основы использования Windows. С другой стороны это сообщения об ошибках. Когда компьютер сталкивается с неожиданным сценарием, он обычно выдает окно сообщения для просмотра пользователем.

    Хотя они могут предоставить информацию о реальных проблемах

    Часто они парадоксальны, смешны или просто глупы. Давайте посмотрим на некоторые из самых глупых и глупых сообщений об ошибках, которые создала Windows.

    1. В Интернете больше пользователей, чем вы

    Любой, кто пользовался интернетом более пяти минут, знает, что большая часть онлайн-активности не является частной. Это не мешает Internet Explorer (IE) указывать на очевидное:

    12 samyh smeshnyh oshibok windows vseh vremen 1

    Эта ошибка обычно появляется при новой установке IE. Обычно вы увидите это при первом поиске в Google или Bing. Как он любезно указывает, когда вы размещаете что-то в сети, какой-то другой пользователь где-то может увидеть это. Представь это! К счастью, вы можете проверить Не показывать мне это сообщение коробка и IE сэкономит вам напоминание в будущем.

    Эта ошибка, возможно, была более уместной в первые дни Интернета, но в настоящее время она все еще скрывается в IE. По-прежнему важно оставаться в безопасности в Интернете, поэтому обязательно ознакомьтесь с руководством по избежанию интернет-наблюдения

    2. Windows Error Reporting сообщит об ошибке

    Всякий раз, когда происходит сбой программы в Windows, она обычно просит вас представить отчет об ошибке, чтобы вы могли притвориться, что Microsoft ищет решение именно вашей проблемы. Однако что происходит, когда в отчете об ошибке встречается ошибка?

    12 samyh smeshnyh oshibok windows vseh vremen 1 1Имиджевый кредит: Gizmodo

    Итак, теперь программа, сообщающая об ошибке, обнаружила ошибку, но не беспокойтесь. Windows сообщит вам, появится ли решение. Как оно достигнет этого решения, неизвестно, поскольку ошибка не позволяет ему найти это решение. Надеюсь, мы не увидим еще одну ошибку

    или, что еще хуже, BSOD, такой как SYSTEM_SERVICE_EXCEPTION

    3. Это может занять некоторое время

    Всякий раз, когда вы перемещаете некоторые файлы

    Windows предоставляет полезное диалоговое окно, чтобы оценить, сколько времени займет передача. Иногда это не совсем точно.

    12 samyh smeshnyh oshibok windows vseh vremen 2 1Изображение предоставлено TechBlog

    Не волнуйтесь, ваш гигабайт и половина данных будут перемещены в течение 127 лет. Надеемся, что вы назначили преемника для наблюдения за его завершением, хотя более вероятно, что операционная система просто перестанет работать до этого. Скорее всего, Windows прервет его с обновлением и перезагрузится.

    4. Ложная тревога

    В мире достаточно сообщений об ошибках, которые предоставляют информацию о реальных проблемах. Это конкретное сообщение не удовлетворено этим, и вместо этого заставляет всех вас работать впустую:

    12 samyh smeshnyh oshibok windows vseh vremen 3 1Кредит изображения: E A через Flickr

    Большинство людей увидят ошибка заголовок, сопровождаемый большим красным Икс, и предположим, что что-то пошло не так. Но не волнуйтесь! Мы просто хотели напугать вас — и дать вам знать, что все прошло успешно. Почему вообще есть сообщение об успехе?

    5. Не указан потенциальный недостаток безопасности?

    Нет ничего более похожего на сообщение об ошибке, настолько расплывчатое и бесполезное, что у пользователя нет другого выбора, кроме как игнорировать его. Вот одно из таких сообщений:

    12 samyh smeshnyh oshibok windows vseh vremen 4 1Изображение предоставлено: Zusch Войти

    Что обычный человек собирается делать с этим? Не только недостаток безопасности не определен, но это только потенциальный недостаток. Означает ли это, нажав да Я кидаю кости на свою безопасность? Подобные сообщения приводят к тому, что люди нажимают да как можно быстрее, чтобы очистить надоедливую коробку и вернуться к тому, что они делали.

    6. Не удается удалить файл, пожалуйста, удалите файлы

    Нередко появляются ошибки при удалении файла

    , но этот достаточно причудливый, чтобы поднять некоторые брови. Если вы попытаетесь удалить файл, Windows может заколдовать вас следующим образом:

    12 samyh smeshnyh oshibok windows vseh vremen 5 1Изображение предоставлено: TechV.com

    Это забавно, Windows. Я пытался удалить файл, чтобы освободить место на диске

    , но теперь вы говорите мне, что мне нужно освободить место на диске, удалив другие файлы. Почему мы не можем удалить этот конкретный файл, чтобы освободить это место — загадка, которую никто не знает.

    7. Нам понадобится более длинный пароль

    Мы знаем, что более длинный пароль более безопасен

    , но это заходит слишком далеко.

    Некоторые пользователи Windows 2000 обнаружили, что ОС не принимает пароль длиной менее 18 770 символов. Даже не пытайтесь украсть этот пароль из 18 760 символов в Windows.

    12 samyh smeshnyh oshibok windows vseh vremen 6 1Имиджевый кредит: TechChunks

    Более того, Windows стремилась обеспечить безопасность, следя за тем, чтобы этот мега-пароль отличался от последних 30 689 паролей. Каковы шансы дублировать более 18 000 символов (около 9 300 слов!)? Может ли менеджер паролей хранить такой длинный пароль? Один пользователь Reddit подсчитал, что обычному машинисту потребуется около 45 минут для ввода такого количества символов.

    Как объяснили в Microsoft, это произошло из-за ошибки аутентификации домена MIT Kerberos, которую они исправили в Windows 2000 с пакетом обновления 3. Microsoft также предупредительно указала, что «количество необходимых символов изменяется с 17 145 до 18 770 при установке SP1». Это дало столь необходимое объяснение людям, которые задавались вопросом, почему им вдруг пришлось добавить дополнительные 1625 символов в свои пароли.

    8. Мы не можем открывать программы при закрытии

    Разработчики программного обеспечения создавали сообщения об ошибках настолько ужасно, что Microsoft пришлось вмешаться и создать руководство по эффективным сообщениям об ошибках. Первое сообщение «Зала позора», которое они критикуют, таково:

    12 samyh smeshnyh oshibok windows vseh vremen 7 1

    Эта ошибка представляет собой идеальное сочетание ненужного и раздражающего. Это позволяет пользователю знать, что часть программного обеспечения не может быть запущена, потому что Windows закрывается

    , Конечно, пользователь инициализировал завершение работы, поэтому ему все равно, что программа не может быть запущена. Хуже того, это сообщение не позволяет Windows завершать работу до тех пор, пока пользователь не закроет ее, поэтому, если вы уйдете, ваш компьютер может сидеть там и ждать выключения в течение нескольких часов.

    Лучшим вариантом было бы вообще избежать сообщения об ошибке. Мы рады, что можем воспользоваться этой возможностью, чтобы подшутить над этим.

    9. Vista — это проблема

    Windows Vista не была самой лучшей версией операционной системы Microsoft. Хотя это обычная шутка среди пользователей компьютеров, мы не ожидаем, что Microsoft скажет что-то слишком плохое о Vista.

    12 samyh smeshnyh oshibok windows vseh vremen 8 1Имиджевый кредит: Quora

    Но вот, вот Windows, сообщающая нам, что Microsoft Windows Vista вызвала проблему! Окно позволяет вам знать, что доступно решение, которое решит эту проблему, но лучшее решение было, вероятно, прекратить использовать Vista.

    10. Что-то случилось

    Вот тот, который более свежий. При обновлении до Windows 10 вы могли встретить это полезное сообщение:

    12 samyh smeshnyh oshibok windows vseh vremen 9 1Изображение предоставлено: Reddit

    На тот случай, если вы не уверены, что что-то действительно произошло, это и заголовок, и текст сообщения. Мы не можем представить, как это сообщение было полезным для команды разработчиков, не говоря уже о пользователе. Было ли что-то, что наше имя было выбрано в раздаче?

    К счастью, вы можете исправить эту проблему обновления

    с относительной легкостью.

    11. Здесь нет клавиатуры

    Вы, вероятно, иногда видели сообщения «нажмите любую клавишу для продолжения». Обычно они не являются проблемой. Но что происходит, когда Windows распознает, что у вас нет работающей клавиатуры

    , и дает вам рекомендации, чтобы это исправить?

    12 samyh smeshnyh oshibok windows vseh vremen 10 1Изображение предоставлено: Голиаф

    Э-э, если клавиатура не отвечает, как вы узнаете, что я нажал клавишу? Это тест, чтобы узнать, доверчив ли я? Я не собираюсь ничего нажимать.

    12. Вставьте диск в Windows Phone

    Эта ошибка технически не является ошибкой Windows, поскольку она произошла на телефоне Windows, но она все еще довольно забавная. В то время как обычные пользователи, вероятно, никогда не столкнутся с этой ошибкой, те, кто возится со своими устройствами на Windows Mobile

    иногда сталкивался с этой ошибкой:

    «Не удалось загрузить Windows Phone. Пожалуйста, вставьте установочный диск Windows…»: pic.twitter.com/qQUibDXz#wontfit

    — Микко Хиппонен (@mikko) 11 января 2013 г.

    Вы можете увидеть эту ошибку на настольной установке Windows с поврежденными файлами, но это забавная рекомендация. Есть ли в моем телефоне слот для дисков, или мне нужно приобрести адаптер для этого?

    Ошибка загрузки ошибок

    Забавно шутить о глупости компьютеров. Эти ошибки могут расстраивать

    когда вы сталкиваетесь с ними, но когда вы уделяете время тому, чтобы подумать о том, что они (не могут) вам сказать, юмор проникает. Надеемся, что разработчики смогут извлечь уроки из этого и создать сообщения об ошибках, которые не являются настолько загадочными или бесполезными.

    Знаете ли вы, что вы можете обойти экран входа в Windows 98 через принтер? Проверьте возврат Windows 98 ошибок

    для большего смеха.

    Мы уверены, что в этот список можно добавить еще много ошибок. Каковы самые смешные ошибки, с которыми вы столкнулись в Windows?

    Источник

    Содержание

    1. Windows Error Message Creator – создать окно ошибки или синий экран
    2. #1 Скрытые приколы в ОС Windows
    3. Фокус с блокнотом!
    4. Фокус с word-ом
    5. Выигрываем косынку за 3 сек
    6. Запрещено создавать папки
    7. Torrent
    8. Играем в torrent
    9. Skype
    10. Mail.Ru Агент 4.6
    11. Paint
    12. Хочу избежать службу в армии
    13. Mozilla Firefox
    14. Приколы google
    15. 12 самых смешных ошибок Windows всех времен
    16. 1. В Интернете больше пользователей, чем вы
    17. 2. Windows Error Reporting сообщит об ошибке
    18. 3. Это может занять некоторое время
    19. 4. Ложная тревога
    20. 5. Не указан потенциальный недостаток безопасности?
    21. 6. Не удается удалить файл, пожалуйста, удалите файлы
    22. 7. Нам понадобится более длинный пароль
    23. 8. Мы не можем открывать программы при закрытии
    24. 9. Vista — это проблема
    25. 10. Что-то случилось
    26. 11. Здесь нет клавиатуры
    27. 12. Вставьте диск в Windows Phone
    28. Ошибка загрузки ошибок

    Windows Error Message Creator – создать окно ошибки или синий экран

    Windows Error Message Creator (WEMC)– портативная программа для создания поддельных сообщений об ошибках, «синий экран смерти» экраны, диалоги «форматирование» и многое другое.

    Если близкий друг оставляет свой ноутбук или ПК без присмотра на некоторое время, запустите программу с USB-накопителя, и в течение нескольких секунд Вы можете иметь систему, отображающую фиктивный экран «синий экран смерти», диалоговое окно «форматирование C:» или какое-либо другое поддельное предупреждение с любым пользовательским текстом и значком, который вам нужен. Затем сидите и наблюдайте за их лицами, когда они возвращаются.

    Текст, заголовок и три кнопки

    Программа даёт вам значительный контроль над дизайном диалогового окна. На главном экране вы можете выбрать тип диалогового окна (вопрос / информация / восклицательный знак / критический / пользовательский), установить свой собственный заголовок и одну или две пользовательские строки текста, включить до трёх кнопок с вашим собственным текстом для каждого, а также выбрать подходящий предустановленный значок («заблокирован», «предупреждение», «низкий уровень заряда батареи» и т.д.) или определить свой собственный.

    Но это ещё не все. Нажмите на меню «Create», и вы найдёте варианты, чтобы создать диалоговое окно «Форматирование», это выглядит как это форматирование выбранного диска.

    Вызов синего экрана

    Выбрав меню «BSOD» можно оставить систему, отображающую синий экран смерти, которая скрывает все остальное и не уходит, пока пользователь не нажимает «Enter».

    Единственное неудобство, это невозможность сохранять созданные сообщения, и каждый раз нужно по новой вводить данные.

    Вместо выводов: 😉 если вы хотите подшутить над кем то, то Windows Error Message Creator-отличный способ заставить пользователей понервничать! Но будьте осторожны, если пользователь подумает, что произошло что — то катастрофическое — например, настоящий BSOD — то, возможно, попытается перезагрузить систему кнопкой ресет, и из-за этого могут потеряться какие либо данные. Не используйте это, если вы не собираетесь быть рядом и внимательно наблюдать.

    #1 Скрытые приколы в ОС Windows

    Не для кого не секрет что разработчики различного программного обеспечения тоже являются обычными людьми, со своими «тараканами» в голове. Идеально написанная программа это та, которая выполняет свои функции в полном объеме, работает стабильно и без багов.

    Бывают случаи когда программисты крупных компаний Microsoft, Google, Yandex внедряют «шуточный код» в свой софт. Тут не подразумевается вредоносный, а именно шуточный.

    Про несколько таких шуток я вам расскажу:

    Фокус с блокнотом!

    1.Создаем блокнот
    2.Пишем в блокнот Bush hid the facts
    3.Сохраняем и закрываем блокнот
    4.Откройте заново этот файл — и посмотрите что случилось

    Фокус с word-ом

    1.Откройте Microsoft Word
    2.Сделайте шрифт крупнее ( напр. 50 )
    3.Наберите Q33 NYC , и замените шрифт на Wingdings
    4.Как вам результат?

    Выигрываем косынку за 3 сек

    1.Откройте косынку
    2.Нажмите Alt+Shift+2

    Запрещено создавать папки

    В windows запрещено создавать папки с названиями CON , AUX , NUL , PRN , и подобные.

    Torrent

    1.Откройте программу µtorrent
    2.Зайдите в «Help» — «About» (либо «Помощь» — «О Торренте»).
    3.Кликните на логотип µtorrent и услышите забавный звук.

    Играем в torrent

    1.Запускаем програму торрент
    2.Нажимаем help About uTorrent
    3.Нажимаем англискую » T »
    4.Что бы выйти с игры нажимаем опять английскую » Т »

    Skype

    1.Запустите Skype
    2.Откройте чат
    3.Наберите » /eggy prayer /eggy indrek@mare.ee » без кавычек

    Mail.Ru Агент 4.6

    1.Запустите Mail.Ru Агент 4.6
    2.Зайдите в Меню — » О программе «
    3.Щёлкните два раза по значку программы.

    Paint

    1.Откройте любую картинку
    2.Выберите лупу
    3.В выборе видно только , но если нажать чуть-пониже где тонкая белая линия, картинка увеличится в 10 раз!

    1.Создайте документ в Microsoft Word
    2.Напечатайте =rand(200,99 )
    3.Нажмите на Enter и удерживайте клавишу 3 секунды

    Хочу избежать службу в армии

    1.Напишите в Word фразу « хочу избежать службу в армии » )
    2.Потом прочтите комментарий по выделенной ошибке

    Mozilla Firefox

    1.В адресную строку пишем

    Приколы google

    1) let it snow-идёт снег
    2) Google Gravity-всё падает вниз
    3) Google Loco-странный язык и прикольные буквы
    4) Google Gothic-гугл в готском стиле
    5) Google Cheese- в конце луны сыр
    6) Ewmew Fudd
    7) Gooooogle ГОП | Что найду — всё моё!
    8) Если открыть на Youtube любое видео, остановить его, а затем одновременно нажать клавиши вверх и вправо, на экране появится игра в змейку.
    9) do a barrel roll-трюк бочка
    Если в поиске картинок Гугла набрать: 241543903.

    12 самых смешных ошибок Windows всех времен

    Компьютеры и люди такие разные. Хотя компьютеры бесконечно быстрее обрабатывают информацию, у них возникают проблемы, если они пытаются отклониться от курса. Эти «быстрые идиоты»

    в отличие от людей, которые не могут мыслить так же быстро, как машины, но могут гораздо легче адаптироваться.

    Эти отношения привели к некоторым веселым ситуациям, когда начинающие пользователи не смогли понять основы использования Windows. С другой стороны это сообщения об ошибках. Когда компьютер сталкивается с неожиданным сценарием, он обычно выдает окно сообщения для просмотра пользователем.

    Хотя они могут предоставить информацию о реальных проблемах

    Часто они парадоксальны, смешны или просто глупы. Давайте посмотрим на некоторые из самых глупых и глупых сообщений об ошибках, которые создала Windows.

    1. В Интернете больше пользователей, чем вы

    Любой, кто пользовался интернетом более пяти минут, знает, что большая часть онлайн-активности не является частной. Это не мешает Internet Explorer (IE) указывать на очевидное:

    Эта ошибка обычно появляется при новой установке IE. Обычно вы увидите это при первом поиске в Google или Bing. Как он любезно указывает, когда вы размещаете что-то в сети, какой-то другой пользователь где-то может увидеть это. Представь это! К счастью, вы можете проверить Не показывать мне это сообщение коробка и IE сэкономит вам напоминание в будущем.

    Эта ошибка, возможно, была более уместной в первые дни Интернета, но в настоящее время она все еще скрывается в IE. По-прежнему важно оставаться в безопасности в Интернете, поэтому обязательно ознакомьтесь с руководством по избежанию интернет-наблюдения

    2. Windows Error Reporting сообщит об ошибке

    Всякий раз, когда происходит сбой программы в Windows, она обычно просит вас представить отчет об ошибке, чтобы вы могли притвориться, что Microsoft ищет решение именно вашей проблемы. Однако что происходит, когда в отчете об ошибке встречается ошибка?

    Имиджевый кредит: Gizmodo

    Итак, теперь программа, сообщающая об ошибке, обнаружила ошибку, но не беспокойтесь. Windows сообщит вам, появится ли решение. Как оно достигнет этого решения, неизвестно, поскольку ошибка не позволяет ему найти это решение. Надеюсь, мы не увидим еще одну ошибку

    или, что еще хуже, BSOD, такой как SYSTEM_SERVICE_EXCEPTION

    3. Это может занять некоторое время

    Всякий раз, когда вы перемещаете некоторые файлы

    Windows предоставляет полезное диалоговое окно, чтобы оценить, сколько времени займет передача. Иногда это не совсем точно.

    Изображение предоставлено TechBlog

    Не волнуйтесь, ваш гигабайт и половина данных будут перемещены в течение 127 лет. Надеемся, что вы назначили преемника для наблюдения за его завершением, хотя более вероятно, что операционная система просто перестанет работать до этого. Скорее всего, Windows прервет его с обновлением и перезагрузится.

    4. Ложная тревога

    В мире достаточно сообщений об ошибках, которые предоставляют информацию о реальных проблемах. Это конкретное сообщение не удовлетворено этим, и вместо этого заставляет всех вас работать впустую:

    Кредит изображения: E A через Flickr

    Большинство людей увидят ошибка заголовок, сопровождаемый большим красным Икс, и предположим, что что-то пошло не так. Но не волнуйтесь! Мы просто хотели напугать вас — и дать вам знать, что все прошло успешно. Почему вообще есть сообщение об успехе?

    5. Не указан потенциальный недостаток безопасности?

    Нет ничего более похожего на сообщение об ошибке, настолько расплывчатое и бесполезное, что у пользователя нет другого выбора, кроме как игнорировать его. Вот одно из таких сообщений:

    Изображение предоставлено: Zusch Войти

    Что обычный человек собирается делать с этим? Не только недостаток безопасности не определен, но это только потенциальный недостаток. Означает ли это, нажав да Я кидаю кости на свою безопасность? Подобные сообщения приводят к тому, что люди нажимают да как можно быстрее, чтобы очистить надоедливую коробку и вернуться к тому, что они делали.

    6. Не удается удалить файл, пожалуйста, удалите файлы

    Нередко появляются ошибки при удалении файла

    , но этот достаточно причудливый, чтобы поднять некоторые брови. Если вы попытаетесь удалить файл, Windows может заколдовать вас следующим образом:

    Изображение предоставлено: TechV.com

    Это забавно, Windows. Я пытался удалить файл, чтобы освободить место на диске

    , но теперь вы говорите мне, что мне нужно освободить место на диске, удалив другие файлы. Почему мы не можем удалить этот конкретный файл, чтобы освободить это место — загадка, которую никто не знает.

    7. Нам понадобится более длинный пароль

    Мы знаем, что более длинный пароль более безопасен

    , но это заходит слишком далеко.

    Некоторые пользователи Windows 2000 обнаружили, что ОС не принимает пароль длиной менее 18 770 символов. Даже не пытайтесь украсть этот пароль из 18 760 символов в Windows.

    Имиджевый кредит: TechChunks

    Более того, Windows стремилась обеспечить безопасность, следя за тем, чтобы этот мега-пароль отличался от последних 30 689 паролей. Каковы шансы дублировать более 18 000 символов (около 9 300 слов!)? Может ли менеджер паролей хранить такой длинный пароль? Один пользователь Reddit подсчитал, что обычному машинисту потребуется около 45 минут для ввода такого количества символов.

    Как объяснили в Microsoft, это произошло из-за ошибки аутентификации домена MIT Kerberos, которую они исправили в Windows 2000 с пакетом обновления 3. Microsoft также предупредительно указала, что «количество необходимых символов изменяется с 17 145 до 18 770 при установке SP1». Это дало столь необходимое объяснение людям, которые задавались вопросом, почему им вдруг пришлось добавить дополнительные 1625 символов в свои пароли.

    8. Мы не можем открывать программы при закрытии

    Разработчики программного обеспечения создавали сообщения об ошибках настолько ужасно, что Microsoft пришлось вмешаться и создать руководство по эффективным сообщениям об ошибках. Первое сообщение «Зала позора», которое они критикуют, таково:

    Эта ошибка представляет собой идеальное сочетание ненужного и раздражающего. Это позволяет пользователю знать, что часть программного обеспечения не может быть запущена, потому что Windows закрывается

    , Конечно, пользователь инициализировал завершение работы, поэтому ему все равно, что программа не может быть запущена. Хуже того, это сообщение не позволяет Windows завершать работу до тех пор, пока пользователь не закроет ее, поэтому, если вы уйдете, ваш компьютер может сидеть там и ждать выключения в течение нескольких часов.

    Лучшим вариантом было бы вообще избежать сообщения об ошибке. Мы рады, что можем воспользоваться этой возможностью, чтобы подшутить над этим.

    9. Vista — это проблема

    Windows Vista не была самой лучшей версией операционной системы Microsoft. Хотя это обычная шутка среди пользователей компьютеров, мы не ожидаем, что Microsoft скажет что-то слишком плохое о Vista.

    Имиджевый кредит: Quora

    Но вот, вот Windows, сообщающая нам, что Microsoft Windows Vista вызвала проблему! Окно позволяет вам знать, что доступно решение, которое решит эту проблему, но лучшее решение было, вероятно, прекратить использовать Vista.

    10. Что-то случилось

    Вот тот, который более свежий. При обновлении до Windows 10 вы могли встретить это полезное сообщение:

    Изображение предоставлено: Reddit

    На тот случай, если вы не уверены, что что-то действительно произошло, это и заголовок, и текст сообщения. Мы не можем представить, как это сообщение было полезным для команды разработчиков, не говоря уже о пользователе. Было ли что-то, что наше имя было выбрано в раздаче?

    К счастью, вы можете исправить эту проблему обновления

    с относительной легкостью.

    11. Здесь нет клавиатуры

    Вы, вероятно, иногда видели сообщения «нажмите любую клавишу для продолжения». Обычно они не являются проблемой. Но что происходит, когда Windows распознает, что у вас нет работающей клавиатуры

    , и дает вам рекомендации, чтобы это исправить?

    Изображение предоставлено: Голиаф

    Э-э, если клавиатура не отвечает, как вы узнаете, что я нажал клавишу? Это тест, чтобы узнать, доверчив ли я? Я не собираюсь ничего нажимать.

    12. Вставьте диск в Windows Phone

    Эта ошибка технически не является ошибкой Windows, поскольку она произошла на телефоне Windows, но она все еще довольно забавная. В то время как обычные пользователи, вероятно, никогда не столкнутся с этой ошибкой, те, кто возится со своими устройствами на Windows Mobile

    иногда сталкивался с этой ошибкой:

    «Не удалось загрузить Windows Phone. Пожалуйста, вставьте установочный диск Windows…»: pic.twitter.com/qQUibDXz#wontfit

    — Микко Хиппонен (@mikko) 11 января 2013 г.

    Вы можете увидеть эту ошибку на настольной установке Windows с поврежденными файлами, но это забавная рекомендация. Есть ли в моем телефоне слот для дисков, или мне нужно приобрести адаптер для этого?

    Ошибка загрузки ошибок

    Забавно шутить о глупости компьютеров. Эти ошибки могут расстраивать

    когда вы сталкиваетесь с ними, но когда вы уделяете время тому, чтобы подумать о том, что они (не могут) вам сказать, юмор проникает. Надеемся, что разработчики смогут извлечь уроки из этого и создать сообщения об ошибках, которые не являются настолько загадочными или бесполезными.

    Знаете ли вы, что вы можете обойти экран входа в Windows 98 через принтер? Проверьте возврат Windows 98 ошибок

    для большего смеха.

    Мы уверены, что в этот список можно добавить еще много ошибок. Каковы самые смешные ошибки, с которыми вы столкнулись в Windows?

    You need Sign In to add your Favorite

    Windows Error Effect

    We all know it – we all love it.
    created out of nostalgic feeling from the time i used windows;)

    Tags

    This game’s description and thumbnail are both copyright by it’s owner site or author.

    The Same Title Games

    Similar Games

    play Windows Infinity

    gamesonlyplay Windows Infinity on gamesonly — Everyone knows the annoying windows errors. sometimes there ..

    play Flux Family Secrets - The Ripple Effect

    escapegames24play Flux Family Secrets - The Ripple Effect on escapegames24 — Flux family secrets: the ripple effect is an addicting and ..

    play Error Maker V4

    kongregateplay Error Maker V4 on kongregate — New version of error maker! new better design, graphics and ..

    play Windows Expee

    freeonlinegamesplay Windows Expee on freeonlinegames — This is a fun little flash game which simulates the windows ..

    play Errors Of Reflection: Innercity Life

    kongregateplay Errors Of Reflection: Innercity Life on kongregate — Make a journey through a mysterious city and visit ..

    play Windows: E. M.

    newgroundsplay Windows: E. M. on newgrounds — The windows errors are crazy! (and hilarious!)

    Comments

    Понравилась статья? Поделить с друзьями:
  • Смешная ошибка на работе
  • Смешная ошибка журналиста 6 букв
  • Смешение прямой и косвенной речи это грамматическая ошибка
  • Смешная ошибка 6 букв сканворд
  • Смешение синонимов примеры ошибок