2014年10月27日星期一

一周岁总结

熊仔已经1周岁了,像做梦一样,以前想象很遥远的事情,这么快就到来了。这一年给我们最深的感受是前慢后快,前面的3个月感觉过得异常缓慢,3个月之后感觉一眨眼就过去了。有了孩子以后我们没有以前那么悠闲,想的不再是两个人的事情,不管干什么都会想着家里还有个宝宝。这一年里虽有辛苦,带给我们更多的是快乐,看着熊仔一天天长大,让我们体会到了成长的惊喜,也让我们深切体验到为人父母的不容易。熊仔的每一步的成长Jasmine都有记录,写的都很详细具体,我偷个懒撷取一些节点略说一二。

霜降节气

熊仔出生那天是霜降节气,很奇怪今年的生日那天还是霜降。去年的霜降那天还不算冷,穿着单薄的短袖进的医院,出院时恍然入冬,穿着薄袄仍然会感觉到冷。

住起保温箱

熊仔出生的第二天就住进了日均千元的保温箱,因为新生儿肺炎,吸入羊水所致。在保温箱的几天给我们带来的便利是可以腾出时间好好照顾Jasmine。出保温箱犹如做了一场战斗,医生死活不让出,我们强烈要求出,如果我们态度不够坚决的话,熊仔不知道还要在里面多待多少天。熊仔出院那天,手上脚上的针孔甚是扎眼。Jasmine过后总是在想,保温箱里那么多孩子,不知道熊仔受苦了没有,哭的时候护士会不会抱一抱,拉屎了护士会不会立马清理。

母乳喂养

我们想自己顺产的心愿没有实现,另母乳喂养的心愿算实现了一半。Jasmine出院以后坚持喂养宝宝,忍受着破腹产伤口的疼痛。只是不知道为什么她的奶水不够多,她为此还沮丧过,专门去看了医生。看过医生的效果仍然不明显,一直到熊仔断奶,她的奶水依旧是断断续续不够熊仔喝。

医院

医院这个地方,多少人痛恨,但又离不了它。从医院出来我们又不得不带着熊仔去了医院好几次,不过还好都不是大的问题。

第一次抱着她去医院是因为“血便”,就是大便中有血丝,那时她才出生十几天,天气很冷,我们把她包了好几层棉被。给熊仔化验过大便,显示有白细胞,医生给开了妈咪乐和头孢克肟颗粒。回家吃了几天药,大便正常了,可是没过多久有出现了带血丝的大便,换了家医院,医生说因为牛奶过敏,之后换了水解的奶粉,大便才日渐正常。

第二次去医院是熊仔起湿疹很旺盛的时候,因为耳朵发脓,我们生怕是中耳炎,赶紧抱她去医院。去了医院,医生简单地给看了下,给开了金霉素眼膏让回家搽一下就让我们回家了。

第三次去医院是因为吃苹果卡住,那时熊仔7个月了,还没有长牙,我们低估了她的咀嚼能力,没想到她能把苹果咬断,卡到嗓子,幸好吐了出来。我们不放心带她去了医院,医生给拍了X光片,幸好没有事儿。一家人吓得半死。

第四次去医院是熊仔10个月的时候,因为咳嗽。这次咳嗽持续了2周,总是不见好,去了3次医院。Jasmine在咳嗽中有详细的记载,我们之后把原因归结为晚上开空调,房间干燥。之后买了加湿器。

第五次去医院因为拉稀,这时熊仔11个月,连续1个星期大便都是稀的,每天拉一次。医生也说不上原因,胡乱开了药就回来了。过了几天就好了。

第六次去医院因为便秘,这次把熊仔折腾得够呛,她的脾气也长了不少,从此只让她姥姥抱,因为奶奶、爸爸和妈妈都给她用了开塞露

湿疹

熊仔从2个月开始头皮、脸上和脖子处就会起痱子大小的红疙瘩,很小很小,开始以为是痱子。慢慢地这些小疙瘩破开流出黄色的液体然后结疤,之后才知道是湿疹。看着她总是挠头抓脸痒得难受,我们也很心疼。网上说郁美净可以治疗湿疹,买回家用了感觉效果很不错。到了3个月大面积的湿疹就没有了。

流口水

熊仔从3个月开始流口水,一直流到6个月,刚开始姥姥说是因为要长牙了,可是一直到不流口水牙齿还没有长出来。流口水不是什么大事,但是很麻烦,每次刚换的口水巾很快就湿了,湿了要立马换掉,不然下巴和脖子处的皮肤就会被浸的红一片,再然后就会破开。

长牙

流口水让我们知道和长牙没关系,我们一直在期盼着小熊仔的牙齿早点长出来,7个月的时候因为吃苹果卡住拍了X光片,在片子上我们能清楚的看到熊仔嘴里上下两排牙齿,只是还没有长出来。到了9个月的时候下面长出了2个牙齿

辅食

在熊仔6个月的时候,我们试图给她添加辅食,从稀饭、米粉、果泥、蛋黄,她根本不理睬,总是吃了一小口就吐掉,我们的试了几次就没有再喂她辅食了。一直到11个月的时候,发现她渐渐对食物产生了兴趣,我们在吃水果的时候她会拽着我们的手把食物往自己嘴里送。之后我们给她吃面条和稀饭,她渐渐地接受了,水果也不抗拒,米粉和蛋黄还是不感兴趣。

翻身

小熊仔6个月学会了翻身9个月已经可以很轻松的翻身坐起来了,这也让我们对她更加照顾了,生怕她睡在床上掉下来,特意把床挪到墙角放。

爬行

小熊仔从11月开始慢慢地学会了爬行,开始只能2个手支撑趴在那里不知道怎么动,支撑不住了头就会摔在床上,还好床很软没伤着她。也不知道什么时候起她能慢慢地爬起来了,开始只是双腿一前一后的移动,手还是不知道怎么动,就用头抵在床上,一点点能挪动了。之后慢慢学会了手部的动作,终于可以肆意地在床上爬来爬去了。

说话

熊仔从8个月时开始可以发出“爸爸”、“妈妈”的声音了,但是只限于此,而且对她来说没有什么意义,她不知道叫的是谁。一直到一周岁,仍然只会叫爸爸和妈妈。

走路

熊仔到1周岁还不能自己独立走路,但是大人用手稍微扶着不怎么用力她都能小脚迈起来走上十几分钟,她自己倒是走的很欢快,只是我们的腰受不了。熊仔差不多从10个月开始能扶着床边的物体自己站起来,之后动作越来越熟练,有次晚上刚把她哄睡着,过一会儿Jasmine看到她扶着婴儿床的栏杆自己站了起来,吓了一身的冷汗,生怕她摔着。

玩具

小熊仔对玩具的态度是“不分贵贱,喜新厌旧”,刚买回来的玩具最多玩2天就再也不碰了,我们开始不得不总是给她买些小玩具,之后干脆不买了,家里有什么只要不危险就拿给她玩。这样的好处是剩下不少买玩具的钱,坏处是家里的东西被她破坏了不少。她的小手拿东西还不稳当,所以摔坏了不少的东西。

喂奶

喂奶一直都是个困难的问题,6个月之前还算好,抱着她不反抗老老实实地喝奶。6个月以后脾气渐长,根本没法抱着喂奶了,抱在怀里扭来扭去,看到奶瓶来了头部向相反的方向扭动。之后想到把她放在床上,夹在两腿之间,让她仰面躺着,然后再喂奶。后来这样躺着也不行,总是翻身爬走,或者头朝下趴在床上抗议。我们能想到的就是和她做游戏,或者让她手里拿个玩具没法翻身。喂奶是个头疼的事情。

照相

一岁以内熊仔照了2次相,一次是百天照,一次是周岁照。照百天照的时候,她还不会爬、不会翻身,老老实实或趴或躺任人摆布,毫无怨言,很顺利就照了两套衣服近百张照片。可是到了照一周岁照的时候,那个哭的呀,好像要把她卖人似的,放在地上就哭,爬起来扭头哭,哭的鼻涕眼泪一大把,没有照几张摄影师说不行啊改天再来一次吧。第二次去,同样的地方以为她熟悉了不会再哭了,没想到这次哭得更凶了,照了5张照片根本就没法再照了。

一周岁写的文章汇总:

一周岁记

全家都在感慨:时间过得真快呀,小熊仔都已经一岁啦。去年的这个时候,她才多么小一点点呀,眼睛都还没完全睁开……

之前预定10月23日小熊仔生日当天10:30去影楼拍照。因此,小熊仔奶奶一大早便起床忙碌,准备周岁祭拜物品和午饭,并几番叮嘱我和hillway要早起,还要记得九点钟左右叫醒小熊仔(近来都是睡到十点多甚至中午十二点才醒)并穿上新衣服。

小熊仔奶奶按照老家的习俗,在客厅的两个方位的桌上各摆上一大块煮熟的五花肉,肉上插上三双筷子,摆上三杯白酒,两支红蜡烛,三支香,还有一盘用小蜜瓜从老家带来的洋红染的红鸡蛋。摆好以后,小熊仔奶奶便开始烧纸钱,嘴里说道保佑小熊仔平平安安、健健康康、长命百岁之类的话,并把白酒倒到纸钱里面,招呼小熊仔、hillway和我来磕头。

祭拜仪式后,就开始抓周了。事先我从网上打印了一份“现代抓周物品清单”,后面注明各种物品代表的含义,hillway和小蜜瓜看了以后,拿着记号笔把锅铲、彩笔、毛线团、笛子之类的物品都删掉了,他们并不希望小熊仔以后从事厨师、画家、服装设计师或是音乐家之类的职业。参考了大家的意见,我给小熊仔摆上肩章、印章、计算器、听诊器、鼠标、螺丝刀、笔、字典、本子、毕业证书、人民币、银行卡等物品。小熊仔坐在桌子上,先是用手按计算器,拿起肩章,又拿起笔对着计算器按了几下,再拿起印章后便起身在桌子上爬起来,看来其他东西都没能吸引她的注意。

再接下来就是摆上生日蛋糕吹蜡烛了。本来生日蛋糕只有小蜜瓜和小熊仔奶奶肯吃,为了隆重些,便订了一个12寸的慕斯蛋糕,图片上用草莓果酱抹成大红色十分喜庆好看,实物还是有一定的差距。小熊仔太小还不会吹蜡烛,我便为她代劳了,不过忘记替她许生日愿望了。

我们一家五口赶到影楼正好十点半,小熊仔在车上睡着了,我们选好拍摄的两套衣服后把她叫醒。回想小熊仔当时拍摄百天照十分乖顺的样子,希望可以拍到更多小熊仔开心笑起来的模样,为此,还特意让“逗笑师”奶奶前往。哪知道,小熊仔换完衣服,根本不肯坐下来拍照,不停地哭,小眼泪鼻涕往下流,小眼皮哭的又红又肿的,总是爬向小蜜瓜要抱抱,拍照过程不得不中断很多次,但是不管中途怎么哄,只要一放下来,面对镜头和闪光灯,小熊仔还是大哭不止。实在不忍心看小熊仔哭的如此伤心,便向摄影师提出不再拍摄了,勉勉强强拍完两个场景。小熊仔奶奶没有发挥出“逗笑师”的作用,还白白遭遇来回乘公交车的晕车之苦。hillway说当时幸亏没有给小熊仔预定那种五套场景的套餐,不然小熊仔哭到不行,我们大家也受不了。

因为本月临时替培训同事顶班,单位只准了半天假,无奈吃完午饭就匆忙去上班。

吃过晚饭,hillway把家中的灯全都打开,打算拍合影,结果小熊仔看到我们要拍照,便趴在小蜜瓜的肩膀上一动也不动,怎么都不肯转过身来,结果每张合影小熊仔出镜的只有后背。发现我们拍完照片,又转身坐在沙发上玩起来,看来如今小熊仔是比较排斥拍照的。

我和hillway早早为小熊仔预备下了作为生日礼物的衣服、玩具和靴。不过还没有等到生日那天,衣服和玩具都拿出来给小熊仔用了。小蜜瓜觉得提前拿出来用都都算不上生日礼物了,她连续几天利用平时小熊仔睡午觉的时间,走到菜市场周边的商店给小熊仔买来一辆脚蹬三轮扭扭车和一个粉色兔子造型的充气皮锤,又偷偷坐公交车去银行取了钱给小熊仔包了红包。小熊仔奶奶也跟着小蜜瓜买了一个小靠椅送给小熊仔。

后记:

去影楼选照片时发现第二套服装仅拍了几张,影楼方面提出第二套可以重新拍摄。本以为小熊仔第二次去补拍效果会好一些,特意让小蜜瓜藏了起来,以免小熊仔看见后又黏着她不肯拍照。结果是,换好衣服放下来仍旧大哭不止,大家无计可施,只好搬出小蜜瓜这位救兵。然而小蜜瓜的出现也并没有改变小蜜瓜哭闹不肯拍照的局面,不得不中断下来,hillway看着痛哭中的小熊仔又着急又生气。

摄影师和hillway说,是不是平时都是家中老人带,总是抱着,怎么放不下来不肯坐呀?平时总是待在家里也不出去玩呀,都不和外人接触呀?怎么这么怕生呢?不能事事都顺着她,太过娇惯,要不然长大以后如何得了要什么买什么,不买就哭呀……应该把这个毛病改一改,把她放在那里不管她,任由她去哭,哭到不哭为止,这样做一两次就好了。

hillway一边听一边点头,“是的,是的,就是太娇惯太顺着她了,是需要好好管管了。”而我却不赞同摄影师的观点,他年纪轻轻没有任何带孩子的经验,也没有弄清小熊仔具体情况,书本网络道听途说的经验谁都可以充当一回“育儿专家”讲上一课,而实际和理论是有出入的。

在便秘事件之前将近一年的时间里,小熊仔一直是一个很乖很乖的宝宝,很少哭闹,连打预防针都没有哭过。小熊仔只会平躺不会翻身的时候,小蜜瓜心疼她躺着太久也不舒服,时不时会抱起来一会儿。再后来小蜜瓜为了锻炼小熊仔双手的灵活度,让她多看看周围的事物,不要总在一个地方待着,便抱着她到处走走用小手摸一摸。到了小熊仔会坐会站的时候,也是常常自己坐着或站着玩,小蜜瓜也是心疼她坐久了站久了便抱起来一会儿。小熊仔从来没有主动要求大家来抱她,只要有感兴趣的东西,总能乖乖地自己玩。至于待在家中不出门也并非事实,除了天气不好,小熊仔每天好多次被带出门玩,认识了好多小区里的小朋友,时常被陌生大妈抱着或是和小哥哥姐姐拉拉小手玩踢球之类也从来不哭,去医院看医生时也并不害怕,还用小手去拉医生的听诊器。至于太娇惯也有些牵强。小熊仔正处在求知欲和探索欲旺盛的时期,对周围的一切事物都充满了好奇,看到感兴趣的物品想去摸一摸看一看是很正常的事情,并非不正当要求,只有那些具有危险性和不干净的物品才不会给她玩,也并未见她被拒绝之后会哭闹。小熊仔便秘那会儿身体难受,小蜜瓜照料的时间最多,如今她会哭闹不止的唯一原因就是半夜闹瞌睡时找不到小蜜瓜,一直会大哭到小蜜瓜出来抱她为止。

摄影师那种任小熊仔哭闹的办法并未奏效,小熊仔根本没有停下来的意思,仍旧用力大哭,哭到最后不停抽泣后又嘶喊大哭起来,哭到咳嗽欲呕吐,我是不忍心任由小熊仔这样哭下去,照这样下去会把人哭坏的,我不愿意让小熊仔不断忍受着违背自己意愿心中带着害怕去拍照的痛苦,照片没有照成又有什么关系?换回自己的衣服,小熊仔便恢复了正常,穿着小鞋子在影楼到处走走玩玩,我们草草选完入册照片便离开了。

回家后在微信里看到一篇文章,名字叫做《就发生在山东,千万别给孩子玩这个,一沾上身狂脱皮》,讲的就是影楼用来逗孩子照相用的泡泡水,央视记者走访发现多是三无产品,含有烧碱成分,接触到皮肤有害。回忆小熊仔当时拍照的时候,光着上半身,只穿了一条小短裙,不知道被逗乐姐姐吹落在脸上和身上多少泡泡,幸好回家及时洗澡没有发现什么问题,看到图片上脱皮小孩的照片,不禁惊出一身冷汗。又回忆起当时拍照过程中,逗乐姐姐为了防止小熊仔哭闹就打算往她嘴里塞几颗潮汕地区俗称“老鼠屎”的消食糖,也不懂这么小的小孩子到底能不能吃。

2014年10月24日星期五

十二月记(9月21日-10月23日)

很久没有出远门了,距离最后一次和hillway去厦门旅游已经是两年之前的事情了。考虑到小蜜瓜每天照顾小熊仔十分辛苦,小熊仔出生后的周末和节假日里,我和hillway几乎整日待在家中,哄着抱着小熊仔玩。网友说,带娃辛苦,放假都盼着上班,上班才是休息呀,有娃的妈妈懂的。

本来打算利用国庆七天来一场只有我和hillway两人的“蜜月补习”之旅,结果考虑到费用等等因素又作罢了,若是讲到我在国庆七天的收获,就是驾校报名学开车。

仅仅是乘着假期最后一天带上小蜜瓜,抱着小熊仔去了绿梦湿地公园。hillway总结小熊仔这次出游的经历是:“上车睡觉,下车拍照。”小熊仔平日有午睡的习惯,担心她睡醒后天色渐晚,吃过午饭就抱着她出发了。去时小熊仔在公交车上睡着了,下车正想着找个地方坐下来等她睡醒了再逛,结果刚一进公园大门她就醒了过来,开始了走马观花的拍照的游园“旅行”。国庆过后,天气渐凉,留下满池的残荷,还有岸上的狮头鹅,已经不见荷花盛开的美景。公园里有几个很大的水塘,绿荫很少,像老家楼后的农场,整个过程几乎没有停歇,一路拍照一路慢走,半个多小时就出来了,回家等车的过程煞是辛苦。

小熊仔出生时在保温箱里的费用本来可以在半岁之前报销,可惜我和hillway消息太不灵通,又没有太用心,错过了报销期限。在同事的建议下,给小熊仔办理了一份城镇居民医保。听说hillway公司同事家宝宝应为早产两个月不得不送去保温箱,回想小熊仔当时的花费,算下又将是一笔巨额的费用,看来女孩富养真是不假,出生就要砸下这么多的银子了。

hillway仍旧半夜听到小熊仔发出“哼哼唧唧”声音,就努力克服困意起床喂奶。hillway不怕辛苦,不怕瞌睡,只要看到小熊仔乖乖听话大口喝奶就心满意足了。然而并非每次喂奶都十分顺利,小熊仔大多数情况下并不是很配合,半夜里有时候“嗯唧”几声,等到hillway把牛奶冲好,她又翻身睡去了,任凭hillway怎样把奶嘴塞进嘴里,就是不喝,闭着眼睛用哭声和叫声抗议着。之前看文章说宝宝应杜绝夜奶的习惯,就建议hillway不要在辛苦喂奶了,可他坚持认定小熊仔半夜肚子会饿,不然为什么会睡着了“嗯嗯”呢?为了让小熊仔喝奶,有时候要等上很长时间,甚至一个小时才行。当然,人总是有脾气和忍耐极限的。遇到小熊仔坚决不配合的情况,hillway不由站在婴儿床边看着睡着的小熊仔“奶奶的”“妈妈的”之类的“骂”起来。睡梦中的小熊仔任凭不绝于耳的“叫骂”和噼里啪啦声,或是打在屁屁上的巴掌,持续“抗战”之后只有乖乖喝完一瓶奶才能享受到完全宁静的睡眠。有时候我劝hillway去睡,由我来照看小熊仔,但是在绝大多数情况下,hillway还是独立主动承担着半夜喂奶的任务,为小熊仔的成长做出了很大的贡献和牺牲。

这个月,小熊仔被抱去医院看了三次医生。10月1日上午是因为大便太稀,10月17日上午是因为大便太干,10月18日晚上是因为大便太稀太频繁。

小熊仔的食量还是很小,辅食吃的也不多。上个月我们还给她喂些米饭、面条、馄饨之类的食物,再添加一些苹果、葡萄、柚子(小熊仔会将柚子的果肉一瓣一瓣揪下来放进嘴里)之类的水果。然而没过多久就出现了拉稀便便的情况,勤洗手防吹风,暂停辅食用了几天双歧杆菌并不见效,去医院化验便便结果一切正常,但为何看上去很稀很稀?医生考虑说是乳糖不耐受,建议更换奶粉。hillway疑惑地说,这个雀巢超级能恩有水解配方,当时也是医生建议更换的,喝了将近一年都没有问题,为何最近半个多月有问题呢?面对质疑,医生大妈的态度明显变差,“现在不是找不出原因,只能说明有这个可能吗?不然要怎么办?”建议换成雀巢L100奶粉,随后又开了那宁谷氨酰胺胶囊和维生素B1。

过了两三天,小熊仔的便便恢复了正常,大家很高兴地捧着纸尿裤研究,总算松下一口气,重新给她添加辅食。小蜜瓜每天用电炖锅煮一碗大米粥,再做一餐手擀面给小熊仔吃,看着小熊仔吃饭大口大口吃的香香的样子,心想长肉肉长胖胖也是指日可待的事情啦。可惜没过几天,小蜜瓜告诉我们,小熊仔已经有三天没有拉便便了,玩着玩着忽然哭了起来,哭了好几次也拉不出来,估计是便秘了。

之前小熊仔每天都喝苹果汁,总是拉稀便便就没有再喝了,平时喝水也很少,从每天喝奶到添加两顿饭,估计肠胃还不太适应。买来香蕉,小熊仔不肯吃,喂水也不喝,只是使劲,只是哭,就是拉不出便便。小区阿姨和网上都推荐用开塞露,我们便去药店买了两瓶。在小熊仔不断抗议和哭闹声中,只挤进去一点点,过了一会儿,拉出两坨很干很干的便便,并没有把剩下的便便继续拉出来,之后仍旧时不时哭闹并反抗把尿动作。第二天,小蜜瓜打来电话说,小熊仔还是哭闹,看样子很难受,便抱去看医生,希望有好的解决办法,结果医生只是说用开塞露或肥皂条,回家继续用了第二支开塞露,小熊仔哭着哭着睡着了,直到下午两三点才醒来,到晚上睡觉,一共拉了三四次,每次拉便便都会哭一场。小蜜瓜说抱了小熊仔一整天,她都没有精神,什么都不想玩,还有些低烧。第三天,小熊仔拉便便的次数达到六七次之多,屁屁也拉红了(抹了香油晾晒),每次想拉便便就哭,洗屁屁的时候更是哭得厉害。大家都很着急,而hillway对我们去医院的想法提出质疑,“去医院有什么用呢?医生又有什么办法呢?”到了晚上,大家实在放心不下,抱着小熊仔去挂了急诊。医生解释说,反复腹泻与用开塞露无关,哭闹是因为屁屁拉红了会痛,无需用药,回家过一两天自然都会好了。听了医生的解释,我们总算放心下来,虽然小熊仔还是会时不时哭起来,起码我们不再过于担心和害怕了。又过了一天,小熊仔拉便便的次数减少下来,红屁屁也渐渐好了,又恢复了以往精力旺盛的状态。悬着的心也可以落地了。

小熊仔自出生以来很少哭闹,一直是个乖宝宝,但是被便秘折腾的这几天,小熊仔因为身体难受时常哭起来,小蜜瓜便整天抱着她。几天下来,感觉她痛哭的次数加起来比一年来哭闹的次数还要多。本来小熊仔就很黏糊小蜜瓜,便便恢复正常之后尤甚,小蜜瓜躲起来看不见还好,若是看见了就只要小蜜瓜一人抱,我们一抱过来便用力拼命大哭,直到小蜜瓜过来抱她为止。不忍心看着她大哭,除了白天抱,晚上小蜜瓜也不得不带到哄睡为止。

小熊仔是小区会所摇摇车的“常客”,之前考虑到她太小坐不稳,仅仅单坐不摇。小蜜瓜看着她眼巴巴坐在不会摇晃的摇摇车里望着旁边的小哥哥小姐姐摇呀摇,小手抓住方向盘自己前后摇动着玩,也去买了三个游戏币。小熊仔坐在来回摇晃的摇摇车里,两只小手紧紧抓住方向盘,许是不太适应的缘故,并没有表现中我们想象的那种很兴奋很高兴的感觉。

小熊仔越来越结实,不仅可以自由变换卧姿、坐姿和站姿,时常跪在床上玩,听到音乐就前后摆动身体。虽然现有的玩具已经引起不了小熊仔太多的兴趣,然而她并不像以前那样乱丢东西,无论在家里还是逛超市,拿在手中的东西玩厌了就直接递给我们拿着。现在,小熊仔还喜欢模仿我们的样子打电话,先拿着手机用力按亮后再放到耳边,对着手机“哎哎哎”几声,很满意地再拿下来再递给我们。

小熊仔遇到不顺心意的事情就会反抗或哭叫,不幸“中伤”最多的就是小熊仔奶奶,揪头发是日常,有时被抓伤脸和脖子向我们“诉苦”:你看看我这里怎么这么疼呀?两天都没好,一干活出汗就疼得厉害……“诉苦”之后,还是抱着小熊仔一口一个“大宝贝蛋”地叫着。躺在床上的hillway也时常被小熊仔掀开衣角,“嚎叫”着忍受她拿指甲用力在自己肚皮上划上几个记号。

身为“天津大厨”的小熊仔奶奶厨艺高超,自从她来到汕头,我们的一日三餐也跟着丰富和有滋有味起来,特别是黄花菜滑肉汤更是做出了家乡的味道,百吃不厌。刚来那会儿本来和小蜜瓜结伴每晚去小区附近跳广场舞,虽说盛夏小蜜瓜害怕蚊虫叮咬,后来小熊仔奶奶因为出汗全身异痒便终止了。不再跳广场舞,三餐之外的时间,认识了很多小区里大妈级朋友,家长里短了如指掌,或相约逛街购物,或在家追电视剧。如果没有小熊仔奶奶一日三餐的帮助,我和hillway每日定当上班前下班后为了买菜做饭匆匆忙忙。

小蜜瓜自2013年2月来汕头过年,继而留下来照料怀孕的我,至今也未回老家。我怀孕时,小蜜瓜承担起家中买菜做饭做家务的工作。我和hillway有时候常常抱怨自从小熊仔出生以后,我们两人再也没有睡过一次整觉,周末节假日里也不能出去玩,只能闷在家中抱小熊仔。仔细想想,小蜜瓜何尝不是呢?小熊仔刚出生时,我们还住在出租房里。小蜜瓜本来睡眠质量不高,中午和晚上都需要休息,考虑到我们没有经验,担心我坐月子休养不好,一边忙着照料我坐月子养好身体,一边又因为我和hillway没有经验,在婴儿床旁边临时支起严重变形的折叠床上陪着我们在六楼照料小熊仔。我和hillway看着她每日白天又要去菜市场买菜又要照顾小熊仔,晚上也要跟着熬夜起床好几次,就劝她晚上不要陪着我们了,她坚持了半个多月,总算答应晚上去楼下和小熊仔奶奶一起睡。虽如此,每天晚上也是要忙到将近十二点钟才下楼,清晨五点便定了闹钟早早上楼换我们睡觉,着实辛苦。月子里,小熊仔奶奶总觉得待在这里仅做三顿饭无事又无聊,电视坏了也看不清楚,整天躺在床上睡不着觉就回天津去了。搬到新家以后,小蜜瓜每天仍旧在家中照料小熊仔,或是抱着她去小区或附近电影院和超市转转。我们和小蜜瓜相比,每天还可以出来上班换换环境与心情,而小蜜瓜每天在家中除了照顾小熊仔还是照顾小熊仔,几乎都没有出去游玩过。虽说我和hillway放假在家,小蜜瓜也还是时常主动提出帮着我们照顾小熊仔,给我们一段外出办事或跑步爬山的空闲时间。如果没有小蜜瓜帮助我们照顾小熊仔,我和hillway不可能每天安心工作和外出,在小熊仔哭闹不止或是半夜久哄不睡困到不行的时候可以休息下来。

这个月,小熊仔除了“爸爸”和“妈妈”,还学会了说“这”和“给”两个字。新长出了两颗小牙牙,总数达到了八颗。身长76厘米,头尾45厘米,体重16斤。

2014年10月23日星期四

瘦身行动(5)

9月1日,崭新的一月。清晨空腹体重136斤。

9月5日,下班公交上遇到老阿姨和小伙子两人同时给我让座,可是我不是孕妇呀!只是生完孩子没有恢复过来呀!

9月6日,中秋值班,头痛欲裂,躺着呼叫hillway来单位把我接回家了。停跑三天了。

9月9日,清晨空腹体重132斤。新买一套速干跑步套装,却一直不想去跑步。

9月18日,清晨空腹体重130斤。送走大姨妈,恢复跑步,再不跑,就对不起新买未穿过的跑步装啦。好久没运动,感觉好累,只坚持了二十分钟。

9月26日,hillway骑车下班回家,全身出现很多红疙瘩,据说是过敏性荨麻疹,吃了药吹了风渐渐消了,不敢再发热出汗,晚上我一人去跑步。

9月30日,阳历生日,下班去办会员卡的水果店领取一份生日水果篮。

10月7日,清晨空腹体重128斤。国庆假期感觉全身乏力仅跑步一次,放假在家就容易放松对自己的限制与要求,期间做了三次烧烤,鱿鱼、鸡腿、鸡翅、五花肉、香肠、骨肉相连……吃到肚子里好多肉,好多油呀……吃进去的,迟早是要还的……

10月23日,差不多有一个月没有去跑步,总觉得乏累不想动。小熊仔的生日蛋糕跟着吃了不少,变肥的节奏……

从2013年10月23日至今产后一年,体重从148斤涨至160斤再降至128斤,胸围从112cm降至98cm,也算知足了。然全身赘肉依旧顽固,瘦身之路漫漫且修远,革命尚未成功,仍需继续努力。

2014年10月22日星期三

宝宝吃辅食便秘用了开塞露

小熊仔到11个月才开始添加辅食,之前也试图添加过米粉、果肉泥、稀饭,但效果不是很好,宝宝不喜欢吃。总是吃了两口就吐掉,再喂她就扭头不干了。到了11个月发现她渐渐对食物产生了兴趣,我们在吃饭的时候她总是跃跃欲试。但是她依旧不喜欢吃稀饭,反而对白米饭很感兴趣,吃了一口又一口,熊仔的姥姥怕米饭太硬就给她做手擀面吃。没想到小熊仔吃起面条来很凶狠,一碗面很快就能吃完。我们一家人都很高兴,宝宝终于可以吃饭了。这样的话她的体重很快就会长起来的了。于是姥姥每天做两顿面条,熊仔都也能吃完。

过了几天姥姥反应说熊仔一天没有大便,以往每天都会拉一次大便的。第二天熊仔拉了大便,但很干。之后连续3天又没有拉大便了。到了第4天,她玩着玩着会突然哭起来,姥姥说可能是最近没有大便,肚子撑的疼。我们赶紧上网看有什么解决方法。网上说宝宝便秘,要多吃蔬菜水果、多喝水、多吃香蕉,还有教做香蕉泥的。我们学着网上的方法来做,可是熊仔根本不理睬,根本不吃香蕉。她没过多久又会肚子疼一次。Jasmine看着她如此难受建议我们去买开塞露。

熊仔第一次用开塞露很不配合,没有挤进去多少,不过也拉了2大坨便便疙瘩出来,看起来很硬。之后熊仔就睡着了。

第二天,熊仔还是会哭闹。姥姥带着她去看医生,医生的说法和网上一样,让多吃蔬菜,多喝水,然后用开塞露。于是姥姥又给她用了一瓶开塞露,可是刚用过她又哭睡着了。下午起来就开始拉屎,拉了三四次,每次拉一点点,而且每次拉的时候熊仔都哭哭嚷嚷的,看起来很难受。

第三天,熊仔从睡觉醒来就开始拉屎,每次拉的时候还是痛苦的呻吟,从早上到我们下班回家拉了五六次,有时候还比较稀,像拉肚子的样子。到晚上9点又拉了两次。而且拉的有点不正常,灰灰粘粘的。Jasmine说是肠粘膜液,说是开塞露渗透进肠道了。姥姥说是因为用了开塞露把熊仔的肚子给用坏了,坚持要去医院。

医生询问了情况、看了下大便,回答了我们的疑问:

1、灰灰的粘粘的大便是以前的积食,不是肠粘膜,不用担心。

2、开塞露不会对身体产生影响的,也不会渗透到肠道里,它的成分主要是豆油,起润滑作用。

3、拉屎的时候哭闹时因为屁屁疼,不是肚子疼(医生看了下熊仔的屁屁两边都有些通红),他说没关系,一般拉两三天都会红的 。

4、用了开塞露之后拉了三四天一般都会好的。

2014年10月13日星期一

防止文件被改写的简单实现方式

最近在写的一个小程序中有个配置文件,这个文件对整个程序来说是至关重要的,如果它被删除或者改写的话,整个程序无法运行,或者运行后无法关闭。所以我一直在寻找如果让手工无法改写文件的方法。

对于“删除”来说是很容易解决的,程序中查找配置文件的路径,若为空则创建,并给些默认值。VB的示例代码如下:

FileName = App.Path + "\CONFIG"
'如果文件不存在,则创建文件
If Dir(FileName) = "" Then
Open FileName For Output As #1 '打开顺序文件,我们可以使用Open语句
a = Encode("123") + vbCrLf + "10" + vbCrLf 'vbCrLf为回车
Print #1, a '写数据
Close #1 '关闭文件
End If


对于手工改写配置文件,我一直无能为力,我试图在程序中把该文件隐藏掉。VB的示例代码如下:


SetAttr FileName, vbSystem Or vbHidden '隐藏文件


但终归来说是治标不治本,文件仍然会被改写的。然后我想到修改配置文件后缀法,让人手工没那么容易打开文件,但是总是有方法打开的。最终让我想到一个简单的解决方法是,在程序中先打开配置文件,之后手工就无法打开了。VB的示例代码如下:


Open FileName For Binary As #99

只是记得程序在改写该文件时要先关闭打开的文件,不然改写会失败的。VB的示例代码如下:


Close #99 '关闭文件

总结一下,防止文件被改写的简单实现方式就是在程序中先打开该文件。完整的程序示例可参考这里

2014年10月12日星期日

屏幕锁PcLocker更新

最近把以前写的一个小程序PClock做了一次更新,以前的程序是程序运行后系统界面锁定,需输入密码方能解锁。这次更新后的效果是,程序运行以后在后台监视空闲的时间(键盘和鼠标无动作),当空闲的时间等于设定时间时Windows系统界面锁定。

就是这么一个小功能的更新,花了我3天的时间,主要原因是走了不少的弯路。在差不多要放弃的时候让我找到了解决的方法

程序的界面和功能没有太大的改变,以下是程序的ChangeLog:

1、程序的名称从PClock改为PcLocker

2、程序转为后台运行,当系统空闲时锁定Windows系统,类似于进入屏幕保护程序

3、改变了禁用任务管理器的方式

4、实现了手工无法修改配置文件

5、优化并精简了代码

6、程序适用于Windows XP、Windows 7,其他的系统没有测试

7、初始密码123,程序默认空闲启动时间为10分钟,默认随机自启动关闭

源程序的下载地址:点我

下面就是整个程序的源码,主要包括1个模块module1.bas,1个主程序窗口MainForm.frm,1个设置窗口setform.frm

主程序窗口MainForm.frm的代码如下,程序的主要功能集中在此。

'计算空闲时间
Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Declare Function EnableWindow Lib "user32" (ByVal hWnd As Integer, ByVal aBOOL As Integer) As Integer
Private Declare Function IsWindowEnabled Lib "user32" (ByVal hWnd As Integer) As Integer
Private Declare Function GetMenu Lib "user32" (ByVal hWnd As Integer) As Integer
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long

'常量声明
Const SWP_NOMOVE = &H2 '保持当前位置(x和y设定将被忽略)
Const SWP_NOSIZE = &H1 '保持当前大小(cx和cy会被忽略)
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const flags = SWP_NOMOVE Or SWP_NOSIZE

'使用GetLastInputInfo来检测键盘、鼠标无动作
Private Declare Function GetLastInputInfo Lib "user32" (plii As LASTINPUTINFO) As Boolean
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Type LASTINPUTINFO
cbSize As Long
dwTime As Long
End Type

Private Sub Form_Load()
If App.PrevInstance = True Then
'用APP对象的PrevInstance属性,防止同时运行屏幕保护程序的两个实例
Unload Me
Exit Sub
End If

Timer1.Interval = 1000
'读取配置信息
Call GetConfig
'打开配置文件,防止手工修改
FileName = App.Path + "\CONFIG"
Open FileName For Binary As #99
End Sub

Private Sub BntOk_Click()
If (Text1.Text = password) Then
' 卸载钩子
UnhookWindowsHookEx lHook

Timer1.Enabled = True
Me.Visible = False
Text1.Text = ""
Timer2.Enabled = False
Else
Label2.Visible = True
Label2.Caption = "输入密码不正确,请重新输入!"
Text1.Text = ""
Text1.SetFocus
End If
End Sub

Private Sub BntEmpty_Click()
Text1.Text = ""
End Sub

'显示主程序界面
Private Sub ShowForm()
' 安装钩子
lHook = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf CallKeyHookProc, App.hInstance, 0)

'如果更改的背景文件不存在,或者文件目录为空,则显示默认背景
If (filedir <> "" And Dir(filedir) <> "") Then
'开始的时候使用的是改变窗口的默认背景,这样的话这个背景不会被拉伸,只能保持默认大小,舍弃 Me.Picture = LoadPicture(filedir)
'现在使用image控件来实现
Image1.Width = Screen.Width
Image1.Height = Screen.Height

'这里把窗口设为全屏,因为image 要随着窗口变化
Top = 0
Left = 0
Me.Width = Screen.Width
Me.Height = Screen.Height

Me.Image1.Visible = False
Me.Image1.Picture = LoadPicture(filedir)
Me.AutoRedraw = True
Me.PaintPicture Image1.Picture, 0, 0, Me.ScaleWidth, Me.ScaleHeight
End If

Me.Show 'setFocus前面须有这个
'设置窗口在最上面
Dim Ok
Ok = SetWindowPos(Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, flags)
'设置全屏
Top = 0
Left = 0
Me.Width = Screen.Width
Me.Height = Screen.Height
'设置输入框的位置
Frame1.Top = Screen.Height - Frame1.Height
Frame1.Left = Screen.Width - Frame1.Width
Label2.Left = Frame1.Left
Label2.Top = Frame1.Top - Label2.Height
Label2.Width = Frame1.Width
Label2.Visible = False
Text1.SetFocus
'禁用alt+ctrl+delete
'Open Environ$("WinDir") & "\system32\taskmgr.exe" For Binary As #1
Timer1.Enabled = False
Timer2.Enabled = True
Text1.SetFocus
End Sub
'设置窗口
Private Sub BntSet_Click()
If (Text1.Text = password) Then
' 卸载钩子
UnhookWindowsHookEx lHook
Me.Visible = False
Text1.Text = ""
setform.Show
Timer1.Enabled = True
Else
Label2.Visible = True
Label2.Caption = "输入密码不正确,请重新输入!"
Text1.Text = ""
Text1.SetFocus
End If
End Sub

'回车之后的动作
Private Sub Text1_KeyPress(KeyAscii As Integer)
' Text1 响应回车键
If KeyAscii = 13 Then
If (Text1.Text = password) Then
' 卸载钩子
UnhookWindowsHookEx lHook
Me.Visible = False
Text1.Text = ""
Timer1.Enabled = True
Timer2.Enabled = False
Else
Label2.Visible = True
Label2.Caption = "输入密码不正确,请重新输入!"
Text1.Text = ""
Text1.SetFocus
End If
End If
End Sub
'当空闲时间大于IntervalTime时,调用ShowForm
Private Sub Timer1_Timer()
Dim lii As LASTINPUTINFO
lii.cbSize = Len(lii)
If GetLastInputInfo(lii) Then
If (GetTickCount - lii.dwTime)/60000 > IntervalTime Then
Call ShowForm
End If
End If
End Sub
'禁用任务管理器
Private Sub Timer2_Timer()
Shell ("cmd /c taskkill /f /im taskmgr.exe"), vbHide
End Sub

设置窗口setform.frm的代码,包括密码设置、背景图片设置、开机自启动设置和空闲启动时间设置。

Dim change As Boolean
Private Sub Command1_Click()

'先读出密码
passwordstr = password
FileName = App.Path + "\CONFIG" '配置文件路径
'验证密码
If Text1.Text = passwordstr And Text3.Text = Text2.Text Then
NewPassword = Encode(Text2.Text)
change = SetConfig(NewPassword, 0)
'设置以后重新读取配置文件
Call GetConfig
If (change = True) Then MsgBox "口令修改成功"
Else
If Text2.Text <> Text3.Text Then
MsgBox "两次口令输入不一致,请重新输入"
Else
MsgBox "旧口令错,请重新输入"
End If
End If
End Sub

Private Sub Command2_Click()
Unload Me
End Sub


Private Sub Command3_Click()
Set w = CreateObject("wscript.shell")
w.regwrite "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\" & App.EXEName, App.Path & "\" & App.EXEName & ".exe"
MsgBox "已经设置为开机自启动"
End Sub

Private Sub Command4_Click()
Set w = CreateObject("wscript.shell")
w.regdelete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\" & App.EXEName
MsgBox "已经取消开机自启动"
End Sub

Private Sub Command5_Click()

CommonDialog1.Filter = "jpg|*.jpg"
CommonDialog1.ShowOpen
filedir = CommonDialog1.FileName
If (filedir <> "") Then change = True

change = SetConfig(filedir, 2)
'设置以后重新读取配置文件
Call GetConfig
If (change = True) Then MsgBox "背景替换成功"
End Sub

Private Sub Command6_Click()
change = SetConfig("", 2)
'设置以后重新读取配置文件
Call GetConfig
If (change = True) Then MsgBox "已恢复为默认背景"
End Sub

Private Sub Command7_Click()
Unload Me
End Sub

Private Sub IntervalBnt_Click()
change = SetConfig(setform.IntervalTxt.Text, 1)
'设置以后重新读取配置文件
Call GetConfig
If (change = True) Then MsgBox "修改成功"
End Sub

模块module1.bas代码,主要是禁用键盘和加密函数。

Option Explicit

Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public Const HC_ACTION = 0
Public Const WM_KEYDOWN = &H100
Public Const WM_KEYUP = &H101
Public Const WM_SYSKEYDOWN = &H104
Public Const WM_SYSKEYUP = &H105
Public Const VK_TAB = &H9
Public Const VK_CONTROL = &H11
Public Const VK_ESCAPE = &H1B
Public Const VK_DELETE = &H2E
Public Const WH_KEYBOARD_LL = 13
Public Const LLKHF_ALTDOWN = &H20

'禁用键盘的功能键
Public Type KBDLLHOOKSTRUCT
vkCode As Long
scanCode As Long
flags As Long
time As Long
dwExtraInfo As Long
End Type
Public lHook As Long
Dim p As KBDLLHOOKSTRUCT
Dim key() As Byte
'全局变量
Public password As String
Public IntervalTime As Integer
Public filedir As String
Public FileName As String

'键盘钩子
Public Function CallKeyHookProc(ByVal ncode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim fEatKeystroke As Boolean

If (ncode = HC_ACTION) Then
If wParam = WM_KEYDOWN Or wParam = WM_SYSKEYDOWN Or wParam = WM_KEYUP Or wParam = WM_SYSKEYUP Then
CopyMemory p, ByVal lParam, Len(p)
fEatKeystroke = _
((p.vkCode = VK_TAB) And ((p.flags And LLKHF_ALTDOWN) <> 0)) Or _
((p.vkCode = VK_ESCAPE) And ((p.flags And LLKHF_ALTDOWN) <> 0)) Or _
((p.flags And LLKHF_ALTDOWN) <> 0) Or _
((p.vkCode = VK_ESCAPE) And ((GetKeyState(VK_CONTROL) And &H8000) <> 0)) Or _
((p.vkCode = 91) Or (p.vkCode = VK_ESCAPE) Or (p.vkCode = 92) Or (p.vkCode = 93))
'判断是否按下了:TAB+ALT、Esc+ALT、Alt(Alt+F4)、Esc+Ctrl、左右 Win 和徽标键\Esc
End If
End If

If fEatKeystroke Then
' 设置为 1 可以屏蔽按键
CallKeyHookProc = 1
Else
CallKeyHookProc = CallNextHookEx(0, ncode, wParam, ByVal lParam)
End If
End Function

Sub initkey() '这里为密匙,建议定义的复杂些,我这里仅仅是个示例
ReDim key(9)
key(0) = 12
key(1) = 43
key(2) = 53
key(3) = 67
key(4) = 78
key(5) = 82
key(6) = 91
key(7) = 245
key(8) = 218
key(9) = 190
End Sub

Function Encode(ByVal s As String) As String '加密
On Error GoTo myerr
initkey
Dim buff() As Byte
buff = StrConv(s, vbFromUnicode)
Dim i As Long, j As Long
Dim k As Long
k = UBound(key) + 1
For i = 0 To UBound(buff)
j = i Mod k
buff(i) = buff(i) Xor key(j)
Next
Dim mstr As String
mstr = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Dim outstr As String
Dim temps As String
For i = 0 To UBound(buff)
k = buff(i) \ Len(mstr)
j = buff(i) Mod Len(mstr)
temps = Mid(mstr, j + 1, 1) + Mid(mstr, k + 1, 1)
outstr = outstr + temps
Next
Encode = outstr
Exit Function
myerr:
Encode = ""
End Function
Function Decode(ByVal s As String) As String '解密
On Error GoTo myerr
initkey
Dim i As Long, j As Long
Dim k As Long, n As Long
Dim mstr As String
mstr = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Dim outstr As String
Dim temps As String
If Len(s) Mod 2 = 1 Then
Decode = ""
Exit Function
End If
Dim t1 As String
Dim t2 As String
Dim buff() As Byte
Dim m As Long
m = 0
For i = 1 To Len(s) Step 2
t1 = Mid(s, i, 1)
t2 = Mid(s, i + 1, 1)
j = InStr(1, mstr, t1)
k = InStr(1, mstr, t2)
n = j - 1 + (k - 1) * Len(mstr)
ReDim Preserve buff(m)
buff(m) = n
m = m + 1
Next
k = UBound(key) + 1
For i = 0 To UBound(buff)
j = i Mod k
buff(i) = buff(i) Xor key(j)
Next
Decode = StrConv(buff, vbUnicode)
Exit Function
myerr:
Decode = ""
End Function

'配置信息
'定义变量,password密码,IntervalTime空闲时间


Function GetConfig()
Dim s As String, t() As String, a As String
FileName = App.Path + "\CONFIG"
'如果文件不存在,则创建文件
If Dir(FileName) = "" Then
Open FileName For Output As #1 '打开顺序文件,我们可以使用Open语句
a = Encode("123") + vbCrLf + "10" + vbCrLf 'vbCrLf为回车
Print #1, a '写数据
Close #1 '关闭文件
'隐藏文件
'SetAttr FileName, vbSystem Or vbHidden
End If
Open FileName For Binary As #11
s = Input(LOF(11), #11)
Close #11
t = Split(s, vbCrLf)
password = Decode(t(0))
IntervalTime = t(1) '第三行是2,第四行是3,类推
filedir = t(2)
End Function

Function SetConfig(ByVal Value As String, ByVal Weizhi As Integer) As Boolean
Close #99 '关闭打开的配置文件
FileName = App.Path + "\CONFIG"
Dim s As String, t() As String
Open FileName For Binary As #123
s = Input(LOF(123), #123)
Close #123
t = Split(s, vbCrLf)
t(Weizhi) = Value '第三行是2,第四行是3,类推
s = Join(t, vbCrLf)
Kill FileName
Open FileName For Binary As #11
Put #11, , s
Close #11
SetConfig = True
Open FileName For Binary As #99 '打开配置文件,防止手工修改
End Function

2014年10月11日星期六

VB禁用Ctrl-Alt-Delete/任务管理器的方法

在Windows XP下禁用Ctrl-Alt-Delete的方法比较简单,因为Ctrl-Alt-Delete组合键的功能就是调用任务管理器,直接把任务管理器给禁用了,Ctrl-Alt-Delete的功能也就没有了,相当于也给禁用了。这个方法的简单的实现是用二进制 stream 形式先打开 C:\windows\system32\taskmgr.exe任务管理器程序,使后续无法手工正常打开任务管理器。代码如下:

Open "C:\WINDOWS\system32\taskmgr.exe" For Binary As #1

这种方法在XP上是可行的,但是在VISTA和WIN7上是无效的。我的解决方法是用taskkill命令来结束任务管理器程序taskmgr.exe。代码如下:

Shell ("cmd /c taskkill /f /im taskmgr.exe"), vbHide

在VB程序里实现的话,最好把上述语句放到Timer事件中,每隔一段时间执行一次,就能实现禁用任务管理器的目的了。代码如下:

Private Sub Timer1_timer()
Shell ("cmd /c taskkill /f /im taskmgr.exe"), vbHide
End Sub

2014年10月10日星期五

VB键盘鼠标无动作调用程序的尝试

我想要实现的功能是,当键盘无输入、鼠标无移动或点击动作时调用程序。首先想到的是用钩子HOOK来获取键盘或者鼠标的动作,如果无动作时调用程序。我尝试的结果是HOOK来HOOK去总是有问题。

后来想到Windows的屏幕保护程序就是当键盘鼠标无动作时进入屏幕保护的,于是改变思路,想把程序做成这样的形式,键盘鼠标无动作,系统进入屏幕保护,然后检测系统是否运行屏幕保护程序,如果运行的话则调用程序。这种方式就是以屏幕保护程序作为中介,把检测键盘鼠标动作的工作交给屏幕保护程序来完成了。SystemParametersInfo可以实现获取屏幕保护信息的函数。参考代码如下:

'API调用与常用定义:
Private Declare Function SystemParametersInfo _
Lib "user32" _
Alias "SystemParametersInfoA" _
(ByVal uiAction As Long, _
ByVal uiParam As Long, _
pvParam As Any, _
ByVal fWInIni As Long) As Boolean

Private Const SPI_GETSCREENSAVEACTIVE As Long = &H10 '屏保是否启用的常量
Private Const SPI_GETSCREENSAVERRUNNING As Long = &H72 '屏保是否运行的常量

Private Sub Timer1_Timer()
Dim bRunning As Boolean '屏保是否运行的变量,当然你可以定义全局变量
SystemParametersInfo SPI_GETSCREENSAVERRUNNING, 0, bRunning, False '调用API,bRunning返回屏保运行状态
Debug.Print Time; "屏保运行="; bRunning '演示:打印屏保是否运行的信息
End Sub

'另外,查看屏保是否启用,也可以用下面方法:
SystemParametersInfo SPI_GETSCREENSAVEACTIVE, 0, bActive, False 'bActive为返回值(逻辑型)


可是不知道为什么我在WIN7下调试还是有问题,提示SystemParametersInfo SPI_GETSCREENSAVERRUNNING, 0, bRunning, False
中的bRunning类型错误,只能作罢。

最后来说一下最终实现的方案是使用GetLastInputInfo函数获取系统的空闲时间,参考代码如下:

Option Explicit
Private Declare Function GetLastInputInfo Lib "user32" (plii As LASTINPUTINFO) As Boolean
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Type LASTINPUTINFO
cbSize As Long
dwTime As Long
End Type

Private Sub Form_Load()
Timer1.Interval = 1000
End Sub

Private Sub Timer1_Timer()
Dim lii As LASTINPUTINFO
lii.cbSize = Len(lii)
If GetLastInputInfo(lii) Then
If (GetTickCount - lii.dwTime) / 60000 >= 15 Then
Call MsgBox("由于本机15分钟没有操作,如果3分钟后没有反应,系统将强制关机", vbYesNo + vbExclamation + vbDefaultButton2, "提示")
End If
End If
End Sub

2014年10月8日星期三

学车记(1)

很久很久以前,听到他人学车考驾照的事情,觉得和自己很无关,既没有想过开车谋生,也没有想过有生之年会买车。在学费便宜又有假期的时候,错过很多次学车机会。

hillway总在强调有车比无车的种种好处与便利。好处肯定是有的,最起码不用像我去年那样怀孕大着肚子去挤公交车上下班,周末偶尔开车带着家人出去转悠转悠,春运回老家可以选择自驾……万事有利有弊,从心里我却不赞成买车。首先停车难,没有车位。其次费用大,使用次数少,平均下来比坐出租车还贵。再次危险多,开车既要专心,更要操心。

hillway又说,你可以不开车,不买车,但是作为一门技能,掌握了总有好处,万一到急需的时候你就知道了。就这样,从去年一直“游说”到今年,总是催着我去学车,逼得太紧,实在没有办法,想想也有一定道理,虽然手头不甚宽裕,还是趁着十一假期去找教练报了名。

不愿意去学车的另一个原因是害怕。传闻如今考驾照越来越难了,自己从未接触过汽车,相关知识知之甚少,交通事故那么多,听说碰掉一块儿车漆就要几百块钱……想想这些,就觉得紧张的厉害。

害怕归害怕,紧张归紧张,既然报名交费了,hillway一直把送我到驾校大门口,我只好硬着头皮去学。

前两天在模拟教室,主要学习转方向盘。首先是观看一段年代久远模糊不清的视频,内容是史光辉教练讲解驾车基础知识。大概半个小时后,模拟教室的小哥把我们叫到一起,在模拟驾驶台上传授转方向盘的技能,并逐个纠正。那位小哥身材虽说瘦瘦小小,脾气挺大耐心很小。为了防止被训,我在心里模拟N遍才上机,一边想动作一边慢慢转方向盘。

那段史光辉视频讲到握方向盘是十点二十的位置,而模拟教室的小哥教的是九点和三点的位置。有位大姐坚持使用视频里十点二十的手势,换手速度比较快,又频繁犯错,被小哥作为炮火主攻对象,噼噼啪啪训了一通。还有一位农民工大哥,衬衣的领口袖口都扣的紧紧的,刚学习转方向盘时,比较生疏,双手配合不太好,小哥便手把手指导他,可惜又不够耐心,语气也不太好,那位大哥在这种情况下,变得更加拘谨和紧张,指导成效自然并不明显。那位小哥留下一句“我都要被你气到吐血了,是一大滩血!”就不管他了。

会者不难,对于初学者来说总要有一段适应和熟练的过程,哪有刚开始就很流利的呢?为何就不能多一些理解和耐心?大家花几千块钱学费,抽出时间来学习,就不能好好教吗?

接下来的两天跟着教练学开真正的车。如同报名时的等待,而且等待的时间更长,从上午九点到驾校一直等到十一点钟,教练招呼我上车,刚开始还是有些紧张,幸亏hillway提前在家里教我起步、停车和换挡的动作和原理,虽说不熟练,但总算可以缓慢地开着车前进和后退了。仅仅按着套路还好,面对那些忽然而来的指令还是会乱了手脚。

这两天的开车经历消除了我十分紧张和害怕的情绪,感觉开车并没有想象的那般艰难与复杂,渐渐地有了信心。十一长假结束了,接下来就是利用上班空余时间学习相关知识,准备科目一的考试啦。

游汕头的湿地公园

在网上看到汕头北郊新开了一家湿地公园,我并不知道所谓的“湿地公园”是怎么回事,在我头脑中浮现出滩涂水草和丹顶鹤的景象。

促使我去这家湿地公园的动力是那几张荷叶田田的照片,为了这些荷叶去看看也无妨,说不定会让我产生荷塘日色的意境来。

进了公园,四通八达的柏油路分割开来大大小小的水塘,路旁种着人头高的细树——日光强烈的天气最好多带几把遮阳伞。

我们接下来就开始从事压马路的活动,游览了水塘中颓败了的荷叶,路过了烧烤区饮茶区喧闹的的人群,观赏了儿童游乐场和成人垂钓区,然后就打道回府了。

总体来说,整个水塘园没什么好玩,而且远离市区交通不便,如果没见过水塘和荷叶的话去看看也不错嘀。

2014年10月3日星期五

泡汤的十一长假游玩

5月1日劳动节的时候就计划要利用10月的7天长假出去游玩。

问Jasmine想去哪里。她不假思索地说,成都!问她为啥想去。她说,成都有好多小吃呀。

也许是天公作美,汕头在今年9月开通了到重庆的火车。我把这个消息告诉Jasmine,她也很是激动。于是抓紧进行旅行计划,先去重庆,再去成都。

离10月越来越近,Jasmine却变卦了。她说,去重庆不划算,坐火车卧铺一个人要400多,2个人来回路费将近两千块。加上住宿和景点门票可能要4千块钱,太贵了不去了。于是,她建议我们去周边游,什么潮州梅州漳州惠州。

眼看就十一了,Jasmine再次变卦了。她说,去周边游本来就两三天,十一期间去不划算,住宿太贵,还不如周末去。

我是看出来了,Jasmine想去一个好玩又不舍得花钱的地方,这个地方地球上真的很少。最终,我们今年的十一哪都没去成,呆在家里睡大觉最省钱。

2014年10月1日星期三

开药清单(更新)

一、新生儿科出院
思连康双歧杆菌四联活菌片
唯康乐多维铁口服液
贝特令维生素AD滴剂【后改为:伊可新维生素AD滴剂(0-1岁)】

二、脐带护理
酒精(浓度75%)
医用棉签

三、大便颜色异常
妈咪乐
头孢克肟颗粒

四、苹果卡到呕吐(疑吸入性肺炎)
思连康双歧杆菌四联活菌片
希刻劳头孢克洛干混悬剂
扑尔敏马来酸氯苯那敏片

五、耳朵发脓
金霉素眼膏

六、咳嗽
(1)小儿消积止咳口服液
吗丁啉多潘立酮混悬液
(2)叶酸片
开瑞坦氯雷他定片
酪酸俊菌二连活菌胶囊
(3)沐舒坦盐酸氨溴索片
顺尔宁孟鲁司特钠咀嚼片

七、大便稀
(1)那宁谷氨酰胺胶囊
(2)维生素B1

宝宝能不能吹空调

夏天到了,一天比一天热,对平常人来说吹吹电扇和空调是最直接的降温方式了。可是对万事都要特殊对待的宝宝来说,事前都要仔细考虑一番。针对宝宝是否能吹空调的事情,家里展开了辩论,姥姥和奶奶是反对派,我自己是支持派,Jasmine搞中立。

反对派说,小孩子哪能受得了空调?!

支持派说,夏天不吹空调孩子才受不了,孩子的皮肤调节能力比成人差,容易出汗,很容易起痱子。

反对派说,小孩子出点汗怕什么,你们要是让她吹空调也行,吹出事儿来我可不管。

支持派无言以对,只好让宝宝忍受闷热,不能吹空调,不能吹电风扇。

看着宝宝额头和颈部的痱子一天比一天多,我还是趁着夜里开了空调,反对派早上知道后会反问,你们夜里开空调了?!

如此几天,反对派看到宝宝没出事,额头的痱子慢慢减少,也没说什么了。之后会叮嘱,夜里空调不要打太低,多给宝宝穿条裤子。

眼看夏天就快过去了,宝宝吹了一个夏天的的空调也没出什么事,有空调的夜里睡得很好。只是有次咳嗽两个星期才好把我们都吓到了,同事说空调房间太干燥建议买台加湿器。之后我们赶紧就买了,只要夜里开空调就把加湿器打开。

总结一下:(1)宝宝是可以呆在空调房间的,温度要适宜;(2)不要让空调出风口直接对着宝宝吹;(3)每天空调房要开窗换气;(4)空气干燥要人工加湿。