2021年6月22日 星期二

[程式碼] 在Windows使用Python/C#監測檔案是否被修改

Pythonimport os, time, datetimeprint("創立時間: " + datetime.datetime.fromtimestamp(os.path.getctime(file)).strftime("%Y-%m-%d %H:%M:%S"))print("修改時間: " + datetime.datetime.fromtimestamp(os.path.getmtime(file)).strftime("%Y-%m-%d %H:%M:%S"))程式執行效果如下C#using System.IO;FileInfo f = new FileInfo(strFile);DateTime dtCreate = f.CreationTime;DateTime dtModify = f.LastWriteTime;程式執行效...

2021年4月6日 星期二

[程式碼] 使用Excel + VBA實現通訊錄 (Tasker案例)

'ThisWorkbookPrivate Sub Workbook_Open()  shtApp.Activate  UserForm1.ShowEnd Sub'ShtAppPrivate Sub Worksheet_activate()  UserForm1.ShowEnd SubPrivate Sub Worksheet_Deactivate()  UserForm1.HideEnd Sub' UserFormDim gnDataRow As LongPrivate Sub Userform_Initialize()    gnDataRow = -1End SubPrivate Sub SearchData(ByVal nSearchCol As Integer, ByVal strCondition As String)    Dim row As Long        listData.Clear        For row = 2 To shtData.UsedRange.Rows.Count    If InStr(shtData.Cells(row, nSearchCol).Value, strCondition) > 0 Then      listData.AddItem Str(row) & vbTab & shtData.Cells(row, 1).Value & vbTab & shtData.Cells(row, 2).Value & vbTab & shtData.Cells(row,...

[真實案例] 使用Excel + VBA實現通訊錄 (Tasker案例)

 今天我們要介紹如何使用Excel + VBA實現通訊錄APP首先我們進入VBA編輯器畫面按右鍵選擇插入自訂表單先將表單的ShowModal改為False,如此一來可以一邊使用UserForm,一邊使用Excel功能否則UserForm出現時,Excel會沒辦法操作其他功能接下來我們先將APP介面設計好基本資料包括姓名、手機、住家電話與住址,並加入各自的搜尋按鈕我們將搜尋功能包成一個函數,四種搜尋按鈕各自帶入比對欄位與參數再來是新增、修改、刪除與資料ListBox新增按鈕先檢查是否有輸入姓名,並確認名字是否有重複,若重複時確認使用者是否真的要新增資料,然後將資料加入最後一列刪除與修改功能要先確定使用者有從listbox選中資料,方便我們知道要改的是哪列資料接著我們在Excel開啟時,要顯示APP分頁,並且秀出表單並且在分頁切換時,去顯示/隱藏表單程式碼操...

[程式碼] 使用Python 爬取內政部戶政司提供之全國門牌資料 (PTT CodeJob案例)

import requestsurl = "https://www.ris.gov.tw/info-doorplate/app/doorplate/dateQuery"data = {  "searchType": "date",  "cityCode": "63000000",  "tkt": "-1",  "areaCode": "63000010",  "village": "",  "neighbor": "",  "sDate": "001-01-01",  "eDate": "110-03-25",  "_includeNoDate": "on",  "registerKind": "0",  "floor": "",  "lane": "",  "alley": "",  "number": "",  "number1": "",  "ext": "",  "_search": "false",  "nd": "1616602191259",  "rows": "20",  "page": "1",  "sidx": "",  "sord": "asc",  "token": ""}r = requests.post(url, data=data)r.encoding='utf-8'f = open(r'dump.txt', 'w', encoding="utf-8")f.write(r.text)f.clos...

[真實案例] 使用Python 爬取內政部戶政司提供之全國門牌資料 (PTT CodeJob案例)

今天我們要介紹如何使用Python爬取內政部戶政司提供之全國門牌資料 首先讓我們連到文章內的網址點右鍵觀看程式碼,先搜尋"現有村里街路門牌查詢"關鍵字串我們可以發現在網頁原始碼中,找不到該字串,因此可以判斷網頁某些內容是需要執行過Javascript後,才會是完整內容在點選"以編釘日期、編釘類別查詢"按鈕後,來到縣市選擇頁面,但是我們發現網址並沒有改變,所以無法單純利用網址跳轉方式來操作按下F12觀看網路操作,發現有進行一個POST動作請求內容為使用日期作為搜尋條件點選臺北市後,看到有對另外一個網址進行POST請求內容除了剛才的日期以外,還多了一個城市編碼填好想要的條件之後,點選搜尋請求發出後,就會回應我們相關的內容當我們點選下一頁時,POST的需求也跟著改變我們已經找出資料是由dataQuery這個網址所回應,因此我們要爬資料只需要照著需求填寫,再利用POST功能取得資料就可以了最後我們來比對一下網頁資料與抓下來的內容v1 部分是門牌資料,v2是編訂日期,v3是編訂類別程式碼操...

2021年3月30日 星期二

使用C#與Python實作遊戲修改大師

 首先我們編寫一支測試程式按鈕每按一次將全域變數(Value)加1,並且將數值顯示在右邊標籤右邊文本框在視窗初始化時,顯示全域變數的位址程式流程如下首先使用GetCurrentProcess取得修改程式控制碼,接著使用相關Windows API將權限提升使用FindWindow找到視窗控制碼,再使用GetWindowsThreadProcessID得到ProcessID,最後再利用這個ID取得程序控制碼搜尋目標數值前,我們先使用GetSystemInfor取得應用程式的記憶體上下限再利用VirtualQueryEx確定記憶體區塊屬性為可讀可寫如果條件都成立,使用ReadProcessMemory將整個記憶體區塊內容讀出,並比對數值是否為我們要的,如果是就記錄該記憶體位址測試程式修改記憶體後,檢查記錄地址的記憶體內容數值是否依然匹配,若不匹配則移除該地址,直到只剩下一個地址最後我們使用WriteProcessMemoroy去修改測試程式的記憶體數值C#程式碼Python程式碼TestApp.zip教...

[程式碼] C#修改程式記憶體

 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Runtime.InteropServices;  // DllImportusing System.Diagnostics;  // Processnamespace RwMem{    // https://www.pinvoke.net/default.aspx    public class AdjPriv  // 提升權限    {        [StructLayout(LayoutKind.Sequential, Pack = 1)]        struct TokPriv1Luid        {            public int Count;            public long Luid;            public int Attr;        }        [DllImport("advapi32.dll", ExactSpelling = true, SetLastError = true)]       ...

Page 1 of 41234Next

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Blogger Templates