Skip to content

Instantly share code, notes, and snippets.

View annidy's full-sized avatar
💭
I may be slow to respond.

fengxing annidy

💭
I may be slow to respond.
View GitHub Profile
@annidy
annidy / gist:10964785
Created April 17, 2014 08:32
电话监听私有api
#include <dlfcn.h>
typedef CFNotificationCenterRef (*fpCFNotificationCenterRef)(void);
typedef void (*fpCTTelephonyCenterAddObserver)(CFNotificationCenterRef center, const void *observer, CFNotificationCallback callBack, CFStringRef name, const void *object, CFNotificationSuspensionBehavior suspensionBehavior);
void callback(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef userInfo);
int install_callback()
{
void *framework = dlopen("/System/Library/Frameworks/CoreTelephony.framework/CoreTelephony", RTLD_LAZY);
fpCFNotificationCenterRef CTTelephonyCenterGetDefault = (fpCFNotificationCenterRef)dlsym(framework, "CTTelephonyCenterGetDefault");
if (CTTelephonyCenterGetDefault == NULL) {
@annidy
annidy / MyIllustrator.rb
Created May 20, 2014 02:29
Illustrator Mac 中文版启动修复
#!/bin/ruby
APP = "/Applications/Adobe Illustrator CS6/Adobe Illustrator.app/Contents/MacOS/Adobe Illustrator"
if File.size(APP) > 4096
print "Rename"
NEWAPP = File.dirname(APP) + '/AICS6'
`mv "#{APP}" "#{NEWAPP}"`
end
@annidy
annidy / pname.rb
Created June 11, 2014 15:50
文件夹内,数字文件重命名
#!/bin/ruby
# annidy 2014-6-11
d = Dir.new(".")
max = 0
d.each {|x|
m = /^\d+\./.match(x)
m = m or ["0"]
max = [max, m.to_s.to_i].max
}
@annidy
annidy / baseview.m
Created June 14, 2014 03:53
获取能用于显示的baseview,排除警告框
- (void)baseView
{
BOOL hasAlertView = FALSE;
UIView* baseView = [UIApplication sharedApplication].keyWindow;
for (UIWindow* w in [UIApplication sharedApplication].windows) {
for (UIView *o in w.subviews)
{
[self dismissAlertView:o didDismiss:&hasAlertView];
}
}
@implementation NSString (CoreAdditions)
/*
URL encode
*/
- (NSString *)encodeURIComponent_NON_ARC
{
static NSString * const kLegalCharactersToBeEscaped = @"!*'();:@&=+$,/?%#[]";
return [(NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,
(CFStringRef)self,
@annidy
annidy / clicktest
Created August 18, 2014 02:51
鼠标模拟点击
tell application "Finder"
set my_folder_path to container of (path to me) as text
set my_folder_path to POSIX path of my_folder_path
set my_path to my_folder_path & "smv"
end tell
tell application "Google Chrome"
activate
open location "http://www.baidu.com"
end tell
//
// NSObject+Blocks.h
// Filemator
//
// Created by Zachary Waldowski on 4/12/11.
// Copyright 2011 Dizzy Technology. All rights reserved.
//
@interface NSObject (Blocks)
@annidy
annidy / gist:7ebd4932dc1f1718ab71
Created October 21, 2014 08:29
获取信号强度方法
int GetSignalStrength()
{
static int (*CTGetSignalStrength)() = GetSignalStrength;
if (CTGetSignalStrength == GetSignalStrength) {
void *libHandle = dlopen("/System/Library/Frameworks/CoreTelephony.framework/CoreTelephony", RTLD_LAZY);
CTGetSignalStrength = dlsym(libHandle, "CTGetSignalStrength");
dlclose(libHandle);
}
if( CTGetSignalStrength == NULL) {
@annidy
annidy / FMDatabase+UserVer.h
Created December 16, 2014 07:12
FMDB userver 扩展
#import "FMDatabase.h"
@interface FMDatabase (UserVer)
@property (nonatomic) int userVer;
@end
#import "NSData+OADataHelpers.h"
@implementation NSData (OADataHelpers)
- (NSString*) UTF8String
{
// First we try strict decoding to avoid iconv overhead when not needed (majority of cases).
NSString* str = [[[NSString alloc] initWithData:self encoding:NSUTF8StringEncoding] autorelease];
if (!str)
{