Skip to content

Instantly share code, notes, and snippets.

@ynkdir
ynkdir / win32.mak
Created July 31, 2015 21:05
win32.mak
# Win32.Mak - Win32 application master NMAKE definitions file for the
# Microsoft Windows SDK programming samples
# Copyright (C) Microsoft Corporation
# -------------------------------------------------------------------------
# This files should be included at the top of all MAKEFILEs as follows:
# !include <Win32.Mak>
# -------------------------------------------------------------------------
#
# Define APPVER = [ 4.0 | 5.0 | 5.01 | 5.02 | 6.0 | 6.1] prior to including win32.mak to get
# build time checking for version dependencies and to mark the executable
@ynkdir
ynkdir / ctypes_meta.py
Created January 27, 2024 09:50
Meta class for ctypes definition
import ctypes
import inspect
class GlobalFirstAndNoClassPrivateNamespace:
def __init__(self, name, globals_):
self._class_scope = f"_{name}"
self._globals = globals_
self._dict = {}
def __getitem__(self, key):
@ynkdir
ynkdir / mydumpbin.c
Created December 24, 2023 13:10
mydumpbin
// mydumpbin.c
//
// Reference:
// http://msdn.microsoft.com/msdnmag/issues/02/03/PE2/default.aspx
// http://forums.belution.com/ja/vc/000/234/78s.shtml
// http://nienie.com/~masapico/api_ImageDirectoryEntryToData.html
// http://www.geocities.jp/i96815/windows/win09.html
// http://hp.vector.co.jp/authors/VA050396/index.html
#include <windows.h>
@ynkdir
ynkdir / disable_touchpad.sh
Created November 1, 2011 12:04
Disable Touchpad
#!/bin/sh
# Disable touchpad
# Reference: http://d.hatena.ne.jp/hosikiti/20101002/1285987199
# Add this script to Startup Applications.
# You can see device list with `xinput list`.
# This is for my PC.
DEVICE="SynPS/2 Synaptics TouchPad"
# ON
@ynkdir
ynkdir / dump.vim
Created December 6, 2011 13:06
google-calendar-holiday
#!vim -u
let s:calendar_list = [
\ ['Australian Holidays', 'en.australian#holiday@group.v.calendar.google.com'],
\ ['Austrian Holidays', 'en.austrian#holiday@group.v.calendar.google.com'],
\ ['Brazilian Holidays', 'en.brazilian#holiday@group.v.calendar.google.com'],
\ ['Canadian Holidays', 'en.canadian#holiday@group.v.calendar.google.com'],
\ ['China Holidays', 'en.china#holiday@group.v.calendar.google.com'],
\ ['Christian Holidays', 'en.christian#holiday@group.v.calendar.google.com'],
\ ['Danish Holidays', 'en.danish#holiday@group.v.calendar.google.com'],
@ynkdir
ynkdir / taiyosha_comic.ps1
Last active November 14, 2022 23:26
太洋社 (http://taiyosha.co.jp/) のコミック発売予定一覧を取得して CSV を出力する
# 太洋社 (http://taiyosha.co.jp/) のコミック発売予定一覧を取得する
#
# to get csv:
# taiyosha_comic.ps1 | ConvertTo-CSV
function ToUTF8($s) {
return [Text.Encoding]::UTF8.GetString([Text.Encoding]::GetEncoding("ISO-8859-1").GetBytes($s))
}
function GetTable($url) {
@ynkdir
ynkdir / zip.js
Created February 4, 2011 11:33
zip.js
// WSH
function zip(zipfile, files) {
var fso = new ActiveXObject("Scripting.FileSystemObject");
var shell = new ActiveXObject("Shell.Application");
var process_id = get_process_id();
// create empty zip (right click -> new file -> compressed (zipped) folder)
var zip = fso.CreateTextFile(zipfile, true);
@ynkdir
ynkdir / clangdump.py
Last active August 25, 2022 11:24
Python bindings for Win32 API generated using clang
import sys
import clang.cindex
clang.cindex.Config.set_library_path(r'C:\Program Files\LLVM\bin')
def visit(cursor, indent):
print("%s[KIND:%s] { extent: { File:%s, start:{ l:%d, c:%d }, end {l:%d, c:%d } } , spelling:%s, type:{ kind:%s, spelling:%s } }" % (
' ' * indent,
cursor.kind.name,
cursor.extent.start.file,
@ynkdir
ynkdir / ShortMsgKAT_0.txt
Created October 7, 2012 12:08
Keccak in Vim
This file has been truncated, but you can view the full file.
# ShortMsgKAT_0.txt
# Algorithm Name: Keccak
# Principal Submitter: The Keccak Team (Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche)
Len = 0
Msg = 00
Squeezed = 6753E3380C09E385D0339EB6B050A68F66CFD60A73476E6FD6ADEB72F5EDD7C6F04A5D017A19CBE291935855B4860F69DF04C98AA78B407A9BA9826F7266EF14BA6D3F90C4FE154D27C2858EA6DB8C117411A1BC5C499410C391B298F37BF636B0F5C31DBD6487A7D3D8CF2A97B619697E66D894299B8B4D80E0498538E18544C3A2FA33F0BFB1CFEF8DA7875C4967F332C7FC93C050E81FB404F9A91503D6010EE16F50B4ED0BC563BA8431668B003D7E2E6F226CB7FA93BB2E132C861FDC2141457589A63ECF05481126A7C2DE941A2FDEC71CB70DE81887B9014223865E79C4FFE82DAE83C1FC484B9A07A7E52B135F4AE3A0E09247EA4E2625E9349B0AC73F24CB418DF6DCB49CA37860298ADA18AA23595B5096EF789DE3EDF3826817FFF4F71102A01E1D2599F2958D5C186F5B11F5FEEDB61BB732DBB42D18B1E77258A8F211BF95C9F47F19603EC419FF879AEA41A4811344D016BBC4F9496741C469CCA425C5BE73543219AF40796C0B9FF14AEAA70C5E22E4BB1346A3DDFEDD8A559104E4704F1227D42918AE3F7404FBF3C6340A486E776AABCC34190F87DA4BD954B83386255
@ynkdir
ynkdir / md5.vim
Last active January 26, 2022 01:51
hash function simple version
" md5: http://www.ietf.org/rfc/rfc1321.txt
function! Md5(data)
let data = (type(a:data) == type("") ? s:strtobytes(a:data) : a:data)
return s:md5(data)
endfunction
function! Md5Test()
let s = ""
let h = Md5(s)