標籤

bat (54) 作品 (41) python (24) shell (17) windows (11) 虛擬機 (11) php (10) CPP (6) KMS (6) 程式設計 (6) docker (5) 使用教學 (5) xoops (4) 公文 (4) Apache2 (3) Excel (3) juniper (3) 資料庫 (3) 轉檔 (3) mysql (2) 免動手 (2) 資料結構 (2) 軟體廣播 (2) 電腦維修 (2) Android Studio (1) Apple IPAD管理 (1) Arduino (1) CSS (1) LAMP (1) NAS (1) Ubuntu (1) VHD (1) Windows Server (1) 原因 (1) 程式應用 (1) 程式積木 (1) 編輯器 (1) 雲端硬碟 (1)

2023年12月20日 星期三

只要點兩下,就能在Windows 10 建立Tello Scratch 2.0積木環境(安裝AdobeAIR、Scratch 2.0、node.js )

         最近要教學生玩Tello Edu版,還想要讓學生用Scratch 寫程式。查詢網路資料,發現步驟有點麻煩。希望能夠用簡易的方式來完成設定,最好是能夠用點兩下,就能夠完成安裝與設定。這時,才驚覺可以用BAT來完成。因此,只要點兩下,就能在Windows 10 建立Tello Scratch 2.0積木環境(安裝AdobeAIR、Scratch 2.0、node.js ) 
         下載檔案解壓密碼:demo1234
Here is the website where you can download the program and find instructions:
Download。Extraction Password: demo1234
使用教學(Instructional videos):

        

         以下是開發過程與原始碼 (Development process and code):
        從資料來源1.從安裝到使用 Scratch 寫程式控制 Tello,我們大抵知道手動安裝的順序。安裝順序如下:
1.下載


    (2)Node.js
    (3)Tello Scratch2.0
         點選Tello Scratch2.0,就會進行下載,檔名為Release.zip。
         解壓縮後,就可以看到Release\內有Scratch資料夾
         Release\Scratch資料夾內有三個檔案:Tello.js、Tello.s2e、TelloChs.s2e

2.安裝
   1.將Adobe AIRScratch 2.0 離線版Node.js 的安裝程式放置到TelloScratch20\Program資料夾
   2.將Release\Scratch更名為tello,放置到TelloScratch20\
    那我們寫成一個BAT,檔名為TelloScratch20.bat
    檔案內容為:
@echo off
REM --------------以下為設定檔-可修改--------------
set driver01_64=%~dp0Program\AdobeAIR.exe
set driver02_64=%~dp0Program\Scratch-461.exe
set driver03_64=%~dp0Program\node-v20.10.0-x64.msi

REM ----------------以下為程式碼-可修改--------------
REM 安裝 AdobeAIR
start/wait %driver01_64%
echo 安裝 %driver01_64% OK 

REM 安裝 Scratch
start/wait %driver02_64%
echo 安裝 %driver02_64% OK 

REM 安裝 Node 
msiexec /package %driver03_64%
echo 安裝 %driver03_64% OK

REM 在C槽建立tello 資料夾 
md C:\tello\
REM 將隨身碟tello資料夾內的檔案,複製到C槽tello資料夾
copy %~dp0tello C:\tello\
echo 複製隨身碟內tello 到 C:\tello OK

REM 以Node啟動C槽tello資料夾內的 Tello.js
"C:\Program Files\nodejs\node.exe" C:\tello\Tello.js  
Pause
exit



2023年10月18日 星期三

只要點兩下,就能將放進input的一堆PDF轉成在ouput資料夾內的各自的WORD


        By simply double-clicking, you can convert a bunch of PDF files that are placed in the input folder into their respective Word documents, which will be located in the output folder.

        根據上篇只要點兩下,就能將放進input的一堆PDF轉成各自的WORD,發現產出的WORD會跟執行程式PDFTOWORD.exe混在一起。當轉換的檔案多了,恐怕要用人工去一一核對,造成不便。如果產出的產出的WORD會集中在一個output資料夾,只要移動output資料即可。
 
        According to the previous article, by simply double-clicking, you can convert a bunch of PDF files that are placed in the input folder into their respective Word documents. However, it was found that the generated Word documents are mixed with the execution program PDFTOWORD.exe. When there are multiple converted files, it might be inconvenient to manually check each one. To address this issue, if the generated Word documents are centralized in an output folder, you can simply move the output folder.

下載檔案解壓密碼:demo1234
Here is the website where you can download the program and find instructions:
Download。Extraction Password: demo1234
使用教學(Instructional videos):
 


以下是開發過程與原始碼 (Development process and code):
 
安裝pdf2docx套件(Install the pdf2docx suite)
指令(command):pip install pdf2docx
 
程式名稱(Program name):PdfToWord01.py
程式內容(Code):
#請安裝套件 pdf2docx
#指令 pip install pdf2docx
from pdf2docx import Converter
import os

#取得當前目錄
Path = os.getcwd()
#取得input路徑
InputPath = Path+'\\input\\'
#取得input資料夾下的目錄或檔案
dirs = os.listdir(InputPath)
#檢查目錄是否存在
if os.path.exists(Path+'\\output'):
    #印出output資料夾存在
    print(Path+'\\output'+' exists!')
else:
    #建立output資料夾
    os.makedirs(Path+'\\output')

if dirs != []:
    for dir in dirs:
        fileName,fileExt = dir.split('.')
        if fileExt.lower() == 'pdf':
            PdfCvWord = Converter(InputPath+dir)
            PdfCvWord.convert(Path+'\\output\\'+fileName+'.docx')
            PdfCvWord.close()
else:
    print('Input is empty!!')



2023年10月17日 星期二

只要點兩下,就能將放進input的一堆PDF轉成各自的WORD

With just a double-click, you can convert a bunch of PDF files placed in the "input" folder into their respective Word documents.

        最近遇到了問題,希望能將一堆PDF轉成各自的WORD,然後再進行編輯。目前市面上有類似的網站,可以提供PDF轉WORD。偏偏有些機密的PDF就不適合放到那些網站進行轉檔,怕洩密。若要不洩密,仍要轉檔成WORD,則需要購買版權。剛好,Python 就有PDF轉成DOCX的套件。但是需要填入檔名,一個一個地轉。因此,希望能夠有一種程式,只要將一堆的PDF放進INPUT資料夾,接著點兩下,相對應的WORD就會出現。

 Recently, I encountered a problem and I hope to be able to convert a bunch of PDF files into individual Word documents for editing. Currently, there are similar websites available in the market that offer PDF to Word conversion. However, some confidential PDF files are not suitable for uploading to those websites for conversion due to security concerns. If I want to convert them to Word without compromising security, I would need to purchase a license. Luckily, there is a Python package available for converting PDF to DOCX. However, it requires filling in the file name and converting them one by one. Therefore, I would like to have a program where I can simply place a bunch of PDF files in the input folder, double-click, and the corresponding Word documents will be generated.

 

下載檔案解壓密碼:demo1234

Here is the website where you can download the program and find instructions:
Download。Extraction Password: demo1234
使用教學(Instructional videos):
 

 
以下是開發過程與原始碼 (Development process and code):
 
安裝pdf2docx套件(Install the pdf2docx suite)
指令(command):pip install pdf2docx
 
程式名稱(Program name):PdfToWord.py
程式內容(Code):

#請安裝套件 pdf2docx
#指令 pip install pdf2docx
from pdf2docx import Converter
import os

#取得當前目錄
Path = os.getcwd()
#取得input路徑
InputPath = Path+'\\input\\'
#取得input資料夾下的目錄或檔案
dirs = os.listdir(InputPath)

if dirs != []:
    for dir in dirs:
        fileName,fileExt = dir.split('.')
        if fileExt.lower() == 'pdf':
            PdfCvWord = Converter(InputPath+dir)
            PdfCvWord.convert(Path+'\\'+fileName+'.docx')
            PdfCvWord.close()
else:
    print('Input is empty!!')

 
 
資料來源:


2023年9月21日 星期四

解決phpmyadmin出現的警告訊息Warning in ./libraries/sql.lib.php#613

       最近在xubuntu 18.04 LTS 安裝 apache2、php 7.2、phpmyadmin與 MariaDB。當我進入phpmyadmin,出現這樣的錯誤訊息:

Warning in ./libraries/sql.lib.php#613
 count(): Parameter must be an array or an object that implements Countable

解決方式:

1.備份sql.lib.php

$sudo cp /usr/share/phpmyadmin/libraries/sql.lib.php /usr/share/phpmyadmin/libraries/sql.lib.php.bak 

2.編輯sql.lib.php

$sudo geany /usr/share/phpmyadmin/libraries/sql.lib.php 

3.將 (count($analyzed_sql_results['select_expr'] == 1) 改為((count($analyzed_sql_results['select_expr']) == 1),實際上只是要新增個括號 )

4.儲存



資料來源:

1.Issue with phpMyAdmin and PHP: Warning in ./libraries/sql.lib.php#613 count(): Parameter must be an array or an object that implements Countable”

2023年8月24日 星期四

Windows 10 x64 版本1809 LTSC 不能從Miscrosoft store 下載 HEIF extensions 模組的替代方案

       由於Windows 10 x64 版本1809 LTSC 電腦想要觀看蘋果手機的照片,但是照片副檔名卻是HEIC。找谷歌大神求助,發現都要從Miscrosoft store 下載 HEIF extensions 模組。由於某些原因,現在的Windows 10 x64 版本1809 LTSC 電腦無法從Miscrosoft store 下載 HEIF extensions 模組。換言之,現在的Windows 10 x64 版本1809 LTSC 電腦不能看蘋果手機的照片。那我要如何解決這個問題?

        再次找谷歌大神求助,發現資料來源1.1. Windows直接開啟瀏覽HEIF(.heic)格式的照片檔、轉檔JPEG-CopyTrans HEIC for Windows。其中的Windows HEIC照片檢視器,可以免費下載後安裝。安裝完畢後,就可以觀看蘋果手機的照片

資料來源:

2023年6月21日 星期三

只要點兩下,就能將一堆的JPG轉成一個PDF,並以JPG所在的資料夾名稱為PDF的檔名

        Just two clicks and you can convert a bunch of JPGs into a single PDF, with the PDF file named after the folder where the JPGs are located. 

       現在遇到一個問題,這個問題是要將一堆的JPG轉成一個PDF,並且這個PDF的檔名為一堆JPG所在的資料夾名稱。
       I am currently facing an issue where I need to convert a bunch of JPGs into a single PDF, and the PDF file should be named after the folder where the JPGs are located.
 
       在資料來源1.Convert Images to PDF using Python,發現程式碼如下:
       In data source 1, "Convert Images to PDF using Python," I found the following code:
from PIL import Image

image_1 = Image.open(r'path where the image is stored\file name.png')
im_1 = image_1.convert('RGB')
im_1.save(r'path where the pdf will be stored\new file name.pdf')

所以我需要安裝套件 Pillow、jpg檔案位置。
So I need to install the Pillow package and provide the location of the JPG files. 
                     下載檔案解壓密碼:demo1234
Here is the website where you can download the program and find instructions:
Download。Extraction Password: demo1234
使用教學(Instructional videos):

以下是開發過程與原始碼 (Development process and code):
安裝Pillow套件(Install the Pillow suite)      
安裝套件指令(command):pip install Pillow
 
       程式名稱(Program name):jpg2pdf.py
       程式內容(Code):
from PIL import Image
import os

#取得當前目錄
Path = os.getcwd()
#取得input路徑
InputPath = Path+'\\input\\'
#取得input資料夾下的目錄或檔案
dirs = os.listdir(InputPath)
# 建立字典與串列
pdfname = dict()
pdfadds = []
jpglist = []
#逐一檢查input資料夾下的目錄或檔案
for dir in dirs:
    #print(dir)
    #目錄的處理
    if os.path.isdir(InputPath+'\\'+dir+'\\'):
        pdfadds = os.listdir(InputPath+'\\'+dir)
        pdfname[dir] = pdfadds
    #檔案的處理    
    elif os.path.isfile(InputPath+'\\'+dir):
        #檢查檔案副檔名為jpg
        if dir.split('.')[1] == 'jpg':
            jpglist.append(dir)
# 目錄-> jpglist        
pdfname['input'] = jpglist            

#jpg 轉 pdf
for key in pdfname.keys():
    TempIm_list = []
    Tempk = 0
    TempPdfName = str(key+'.pdf')
    for i in pdfname[key]:
        if key != 'input':
            # 處理放在資料夾內的jpg
            ImagePath = InputPath+'\\'+key+'\\'+i
        elif key == 'input':
            # 處理放在input 的jpg
            ImagePath = InputPath+'\\'+i
        Tempk = Tempk + 1
        if Tempk == 1:
            TempImage_1 = Image.open(ImagePath)
            TempIm_1 = TempImage_1.convert('RGB')
        else:
            TempImage = Image.open(ImagePath)
            TempIm= TempImage.convert('RGB')
            TempIm_list.append(TempIm)
    TempIm_1.save(TempPdfName,save_all=True,append_images=TempIm_list)

       
資料來源:
4.




2023年5月31日 星期三

只要點兩下,就能將一堆的Doc與Docx 轉成 PDF

 
Just two clicks and you can convert a bunch of Doc and Docx files into PDF format.
 
        最近遇到一個問題,想要把一堆的Word 轉成PDF。當然可以用手動的方式,一個個用Word打開,另存新檔,然後另存成PDF。可是這樣很麻煩,要是有100多個以上的Doc與Docx,然後要一一打開後再另存成PDF。有沒有更快的方法!!只要讓我點兩下滑鼠,不管有多少個Doc與Docx就能自動轉換成PDF?
 
        I recently encountered a problem where I wanted to convert a bunch of Word files into PDFs. Of course, I could do it manually by opening each file in Word, saving it as a new file, and then saving it as a PDF. But that's very tedious, especially if there are more than 100 Doc and Docx files that need to be converted. Is there a faster way? Ideally, I would like to be able to convert all of the files to PDF with just two clicks of the mouse, regardless of how many Doc and Docx files there are.
                     下載檔案解壓密碼:demo1234
Here is the website where you can download the program and find instructions:
Download。Extraction Password: demo1234
使用教學(Instructional videos):

安裝pywin32套件(Install the pywin32 suite)
指令(command):pip install pywin32

程式名稱(Program name):Word2Pdf.py
程式內容(Code):
# pip install pywin32
import glob
import os
from win32com import client

path=os.getcwd()
os.chdir(path+'\\input\\')
word = client.Dispatch("Word.Application")

for i in glob.glob('*.doc'):
    print("Convert "+path+'\\input\\'+i+" to PDF!")
    doc = word.Documents.Open(path+'\\input\\'+i)
    doc.SaveAs("{}.pdf".format(path+'\\output\\'+i[:-4]),17)
    print("{}.pdf".format(path+'\\output\\'+i[:-4])+" OK!")
    doc.Close()
for i in glob.glob('*.docx'):
    print("Convert "+path+'\\input\\'+i+" to PDF!")
    docx = word.Documents.Open(path+'\\input\\'+i)
    docx.SaveAs("{}.pdf".format(path+'\\output\\'+i[:-5]),17)
    print("{}.pdf".format(path+'\\output\\'+i[:-5])+" OK!")
    docx.Close()

word.Quit()


資料來源:

2023年4月18日 星期二

只要點兩下,免傳輸線,就能讓學生透過QRcode來傳送IPAD或平板內的檔案


        由於教育部生生有平板計畫,讓每一位學生都能透過IPAD或平板來進行學習。但是在電腦教室內,希望學生能夠將檔案傳到教師電腦。除了傳輸線、隨身碟等這一類的工具,一部一部將檔案傳到老師機。還有其他辦法讓學生將檔案傳到學校老師的電腦裡嗎?要用行動載具來進行教學。若沒有傳輸線,但有區域無線網路與筆電。我該如何將載具內檔案傳送到我的筆電內?
 

只要如上圖布置硬體,下載檔案,解壓縮下載檔案,對著Open.bat點兩下。就能產生QRcode接下來用行動載具拍下此QRcode,就能連接到筆電的HFS。
                     下載檔案解壓密碼:demo1234
使用教學:

        
      以下是程式碼:
目的:只要點兩下,就能產生本機IP的QRcode
程式名稱:IpQRcode.py
程式內容:
import socket
import qrcode

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
ip = s.getsockname()[0]
print('http://'+ip)
img = qrcode.make('http://'+ip)
img.show()
s.close()

目的:只要點兩下,直接開啟hfs.exe與IpQRCode.exe
程式名稱:Open.bat
程式內容:

@echo off
start %~dp0\IpQRcode\hfs.exe %~dp0\IpQRcode\1.vfs
start %~dp0\IpQRcode\IpQRCode.exe

 

資料來源:

3.HFS 

2023年3月28日 星期二

只要點兩下,就能啟用、更名、停用與還原Administrator帳號

        最近接到通知,希望能夠將公用電腦的Administrator帳號->啟用、更名、停用。老實說,一點都不想花時間去一台一台設定。只想著讓自己輕鬆地完成這件事。因此,就開始著手撰寫BAT。啟用Administrator更名後停用.BAT。但為了能夠測試,也順便開發了還原名稱為Administrator.BAT與檢視過程.BAT

        下載檔案解壓密碼:demo1234
使用步驟教學:

        如何檢視程式碼正確執行?
詳細教學步驟:
1.確認內部使用者:
   點選[檢視過程.BAT]->[使用者],就可以看出所有使用者狀況->[關閉視窗]
2.啟用、更名、停用Administrator帳號
點選[啟用Administrator更名後停用.BAT]->點選[檢視過程.BAT]
就可以看到Administrator更名為OK,並且停用。接下來,關閉所有視窗。
3.還原Administrator帳號
點選[還原名稱為Administrator.BAT]->點選[檢視過程.BAT]
就可以看到OK還原為Administrator,並且停用


        以下是程式碼:
目的:只要點兩下,就能啟用、更名、停用Administrator帳號
程式名稱:啟用Administrator更名後停用.BAT
程式內容:
@echo off
REM ================設定Administrator更名的名稱===
set AdministratorRename=OK
REM ================以下為程式碼==================
REM 啟用 administrator
net user administrator /active:yes
REM 將 Administrator 更名為 AdministratorRename變數值
wmic UserAccount where Name="Administrator" call Rename Name="%AdministratorRename%"
REM 停用 %AdministratorRename%
net user %AdministratorRename% /active:no
pause
exit

目的:只要點兩下,就能還原Administrator帳號
程式名稱:還原名稱為Administrator.BAT
程式內容:
@echo off
REM ================設定Administrator更名的名稱===
set AdministratorRename=OK
REM ================以下為程式碼==================
REM 啟用 %AdministratorRename%
net user %AdministratorRename% /active:yes
REM 將 AdministratorRename變數值 回復 Administrator
wmic UserAccount where Name="%AdministratorRename%" call Rename Name="Administrator"
REM 停用 administrator
net user administrator /active:no
pause
exit

目的:檢視過程
程式名稱:檢視過程.BAT
程式內容:
@echo off
REM 開啟本機使用者和群組
lusrmgr.msc


資料來源:

2023年2月21日 星期二

只要點兩下,就能離開位子。讓電腦依照規劃自動下載YT多媒體

 系列文章:


下載檔案解壓密碼:demo1234
MP4下載使用步驟教學:
MP3下載使用步驟教學:

     感恩員東國小徐千惠資訊組長的建議。
     由於學生練舞需要有配樂。除了下載影片MP4,也能下載MP3,希望能簡便使用。換言之,只要貼上所有網址,只要點兩下就能將MP3或MP4下載。在2.只要點兩下,就能離開位子。讓電腦依照公開的PlayList自動下載YT多媒體中,利用公開playlist,來下載MP3或MP4。現在則改寫1.只要點兩下,就能離開位子。讓電腦依照規劃自動下載YT影片的程式碼,讓其可以下載MP3


程式碼:
檔案名稱:P001.py
程式內容:
from pytube import YouTube
from pytube.cli import on_progress
import os

class YouTubeDownloader:
    def __init__(self,URL,FolderPath):
        self.Url = URL
        self.FolderPath = FolderPath
   
    def onProgress(self,stream,chunk,remains):
        total = stream.filesize
        percent = (total-remains)/total*100
        print(f'下載中… {percent:05.2f}%', end='\r')

    def YTDownloader(self):
        yt = YouTube(self.Url,on_progress_callback=self.onProgress)
        print(yt.title+" downloading....")
        yt.streams.filter().get_highest_resolution().download(self.FolderPath)
        print("Download "+yt.title+" OK!")

    def YTMp3Downloader(self):
        yt = YouTube(self.Url,on_progress_callback=self.onProgress)
        print(yt.title+".mp4"+" downloading....")
        yt.streams.filter().get_audio_only().download(self.FolderPath)
        print("Download "+yt.title+".mp4"+" OK!")



class OpenFiles():
    #開啟檔案

    def __init__(self,FileName,FolderName):
        self.FileName = FileName
        self.FolderName = FolderName
   
    def FileContentList(self):
        #設定信件內容檔名並取得檔案內容並回傳List
        ContentFileName = str(os.path.abspath(os.getcwd()))+"\\"+self.FileName
        ContentFile = open(ContentFileName,'r')
        FileContentList = ContentFile.readlines()
        ContentFile.close()
        return FileContentList
   
    def GetFolderPath(self):
        #取得資料夾路徑
        if os.path.exists(self.FolderName):
            FolderPath = str(os.path.abspath(os.getcwd()))+"\\"+self.FolderName
        else:
            os.mkdir(self.FolderName)
            FolderPath = str(os.path.abspath(os.getcwd()))+"\\"+self.FolderName

        return FolderPath
   
fcl = OpenFiles('下載名單.txt','').FileContentList()
gfp = OpenFiles('','download').GetFolderPath()
TempType = OpenFiles('Mp3orMp4.txt','').FileContentList()
TempType.pop(0)
for i in fcl:
    temp=i.replace('\n','')
    for k in TempType:
        if k.upper() == 'MP3':
            YouTubeDownloader(temp,gfp).YTMp3Downloader()
        elif k.upper() =='MP4':
            YouTubeDownloader(temp,gfp).YTDownloader()

for i in TempType:
    if i.upper() =='MP3':
        print("**************************************************")
        print("您選擇下載mp3檔案,由於編碼的關係,下載時檔案為mp4")
        print("請您於下載完畢後,點選[轉換副檔名為mp3.bat]")
        print("[轉換副檔名為mp3.bat]會完成轉換副檔名由mp4改為mp3")
        print("*************************************************")
       
os.system("pause")
os.system("exit")

檔案名稱:轉換副檔名為mp3.bat
程式內容:
@echo off
REM 讀取檔案

for /f "skip=1 delims=" %%a in (Mp3orMp4.txt) do (
    set mp3txt=%%~a
)
echo %mp3txt%
if "%mp3txt%"=="mp3" (
cd  %~dp0\download\
ren *.mp4 *.mp3
)

PAUSE
EXIT

資料來源:

只要點兩下,就能夠將InputAndOutput資料夾底下的子子孫孫資料夾內所有Word通通轉成PDF

  系列文章: 1. 只要點兩下,就能將一堆的Doc與Docx 轉成 PDF 1. https://skjhcreator.blogspot.com/2023/05/docdocx-pdf.html 2. 只要點兩下,就能將一堆的JPG轉成一個PDF,並以JPG所在的資料夾名稱為...