分享我的一次写脚本挣外快的不愉快的经历,并总结宝贵经验
本帖最后由 ccxw1983 于 2012-12-18 22:20 编辑前段时间,刚好是新入职一家公司不久就开始布置了很紧的任务,工作很紧张,突然某晚上,以前一个比较熟的同事突然打电话过来,说要用我熟悉的autoit语言写个脚本,他们不会写,希望我帮忙,我觉得工作累,本来是拒绝了的,同事说事情很急,又很简单的,加上主动打的上门找我先看看,也就答应了。
写一个脚本实现几个功能:
1.自动3g拨号;
2.自动vpn拨号;
3.自动在某程序的系统托盘上右键,并点击某个菜单;
4.打开ie指定网站,第一次登录的时候会自动出现一个窗口,要输入密码。
当天晚上,他拿着win7的小平板过来,当晚只说了做1、2、因为窗口是个性化图片的,不知道到底好实现不,我就说先试试吧。
因为平板很不方便,我就想看看设置无线网络再用远程桌面连接去编程,设置了好久不行,
最后想到看看把里面的2个程序拷贝出来能否运行,拷到本机测试发现很顺利就实现了。
第二天晚上拿去演示,又说了后面的功能,问我开价1000可以不,还会帮我往高里开(其实这话我当时就知道只是说的好听了),觉得不错的。
功能貌似不难,但第3点的代码还是研究了好一会儿,想看明白再改造,当晚开发测试搞到凌晨5点,基本搞定。
第三天上午,短信说,人家只愿意给700,好吧,那就700吧,不算太亏。
这位同事说他的其他部门的同事去找我拿机器。当天我给他们演示并修改到一切ok。
我给他的同事演示了代码,讲解了代码。(这一步骤很蠢,生意就是这样没了的,要制造壁垒!)
但是说好的当天给钱的事情,当天没给钱。打电话问了,说没问题的。交接完,以为就OK了。
等到晚上,打电话去问同事,说当天财务的不在。
再等下周,又说等2天,还没去公司总部。
又等1天,说他的同事看了代码,就几行而已,不值那么多,抱怨一番,毫无意义,没办法,代码都给人家了,压价到500也只能认了。
我知道这些功能,对于诸位天天写各种神X代码的,不在话下,200都不值。
功能虽然不算复杂,不过确实花了我不少时间,很久没搞这个脚本了。
等人,等机器,客户的win7的平板机器不方便调试(没鼠标、键盘),前后花了10个小时。
还是晚上加班到3点5点的2个晚上。
我一个高程,月薪上万的,加班搞这个,又是在本来就工作很辛苦的情况下,时间上就不划算。
还没一而再再而三的压价、拖延,事后反悔,搞得很不爽。
回头想想,还是我太君子了。
总结:
和人交往,多一份小人之心,少一些君子胸怀(陌生人尤其注意,熟人犯案的也常有,还出其不意)。
交易东西,一手交钱,一手交货,并且尽可能的制造壁垒(代码不要给人看,程序未交钱前有严重的妨碍,仅适合演示用)。
对待小人,坐地起价以牙还牙也未尝不可。
再就是做事情,要注意控制过程,保护自己的利益:
1.时间紧,当时代码没经过全面的测试,导致演示的时候还进行了修改,所以提供了源代码,其实时间紧可以拖后嘛,先自己测试好了,再打包为exe,这样就不存在后面的给了代码,没讨价还价的余地,反正人家也承认了,他们自己搞,可能二周时间都完成不了;
2.严格按照一手交钱,一手交货,没钱免谈,也不会后来一拖再拖,钱不到手,还被砍价;
3.开价1000,人家还到700,其实那时候就应该警惕的注意到,人家可能会得寸进尺,而当时代码还在手上,应该坐地起价,并且注意到后面的交易控制。
4.对于软件的定价,应该根据软件的价值和自己的付出来权衡。这个软件,他们要的很急,那么就应该有加班费,加急费。否则就跟他们说,要便宜,那我用正常的时间慢慢搞吧。这个软件,他们也说了,因为一窍不通,自己搞,可能要一到两周,等不起。
价钱的事情就不去多计较了,吃一堑长一智吧。
最后贴贴源码吧。Opt("WinTitleMatchMode", 2) ;1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Nocase
#include "_ClickSysTray.au3"
#include <IE.au3>
;---------part 1-------------------------------
dim $process1 = "Mobile Partner.exe"
dim $title1 = "Mobile Partner"
dim $linkbtntxt_wait_link = "连接"
dim $linkbtntxt_link_ok = "断开"
dim $p1win2_title = "网络连接提示"
;wait for 60 seconds at most
TrayTip("", "等待拨号连接程序", 5, 1)
$w1wh = WinWait($title1, $linkbtntxt_wait_link, 60)
If NOT ProcessExists($process1) Then
MsgBox(0, "请检查", "【3G拨号程序" & $title1 & "】还没启动么?请先启动再运行该脚本。")
Exit
EndIf
if $w1wh <> 0Then
$wintext = WinGetText($title1)
;do nothing when is online
If StringInStr($wintext,$linkbtntxt_wait_link)>0 Then
;等拨号窗口稳定点
TrayTip("", "3G网络拨号准备", 5, 1)
Sleep(5000);5 secs
;active window, make sure focuse it
WinActivate($title1, $linkbtntxt_wait_link)
Sleep(1000)
;open menu: File
Send("!f");alt + f
Sleep(200)
;chose menu:link
Send("c")
;wait linking small window
;wait until it dispear
Do
Sleep(2500)
TrayTip("", "3G网络已拨号,等待反馈……", 5, 1)
Until not WinExists($p1win2_title)
;While WinExists($p1win2_title)
; TrayTip("", "3G网络已拨号,等待反馈……", 5, 1)
; Sleep(1000)
;WEnd
;等窗口更新状态
Sleep(1000)
;MINIMIZE the window
TrayTip("", "连接成功后最小化窗口", 5, 1)
Sleep(1000)
;WinSetState($title1, $linkbtntxt_link_ok, @SW_MINIMIZE);多点参数不可靠
WinSetState($title1, "", @SW_MINIMIZE)
Else
TrayTip("", "拨号已经连接", 5, 1)
WinSetState($title1, "", @SW_MINIMIZE)
Sleep(1000)
EndIf
EndIf
;---------part 2-------------------------------
dim $process2 = "TCCWatcher.exe"
dim $title2 = "移动警务安全接入VPN客户端"
If NOT ProcessExists($process2) Then
;MsgBox(0, "请检查", "【" & $title2 & "】还没启动么?请先启动再运行该脚本。")
;Exit
TrayTip("请检查", "【" & $title2 & "】还没启动么?请先启动再运行该脚本。", 5, 1)
Sleep(3000)
Else
;active window, make sure focuse it
TrayTip("", "自动接入VPN", 5, 1)
WinActivate($title2)
Sleep(1000)
Send("111111");pwd
Sleep(200)
Send("{ENTER}");do link
Sleep(8000);拨号后多等一会儿
dim $logintimeslitmit=5
While $logintimeslitmit>0
TrayTip("", "已经拨号VPN,等待反馈……", 5, 1)
Sleep(3500)
$wintext = WinGetText($title2,"")
;if faild to login ,retry it
ConsoleWrite($wintext & @CRLF )
If StringInStr($wintext,"失败")>0 Then
Send("{ENTER}");do link
TrayTip("", "拨号VPN失败,再试试……", 5, 1)
Sleep(2000)
$logintimeslitmit=$logintimeslitmit-1
if $logintimeslitmit<1 Then
;MsgBox(0, "请检查", $title2 & "已经连续尝试几次了,还是连不上。")
;Exit
TrayTip("请检查", $title2 & "已经连续尝试几次了,还是连不上。", 5, 1)
$logintimeslitmit=$logintimeslitmit-1
ExitLoop
EndIf
ElseIf StringInStr($wintext,"成功")>0 OR WinActive($title2)==0 or WinGetState($title2)==5 or StringInStr($wintext,"稍后")<1 Then;
TrayTip("", "拨号VPN完成。", 5, 1)
Sleep(1200)
$logintimeslitmit=$logintimeslitmit-1
ExitLoop
;MsgBox(0, "恭喜", "拨号、连接VPN都OK啦!")
;Exit
EndIf
WEnd
EndIf
Sleep(8000);等久点安全点
;---------part 3-------------------------------
TrayTip("", "移动应用管理与代理,启动安全服务。", 5, 1)
Sleep(200);等太久,夜长梦多
_ClickSysTrayIcon("移动应用管理与代理","Right")
Sleep(200)
Send("r")
Sleep(6000);等久点安全点
;---------part 4-------------------------------
TrayTip("", "打开网页", 5, 1)
$oIE = _IECreate ("http://www.gd",0,1,0)
Sleep(6000)
$title4="输入口令"
$txtwin4= "请输入设备的用户口令"
TrayTip("", "等待“输入设备的用户口令”的窗口", 5, 1)
$w4wh = WinWait($title4, $txtwin4, 20)
if $w4wh <> 0Then
TrayTip("", "自动输入设备的用户口令", 5, 1)
;active window, make sure focuse it
WinActivate($title4, $txtwin4)
Sleep(200)
Send("111111");pwd
Sleep(200)
Send("{ENTER}");do link
Sleep(1200)
Else
TrayTip("", "等待“输入设备的用户口令”的窗口,超时退出。", 5, 1)
Sleep(2000)
EndIf
;确保最小化
WinSetState($title1, "", @SW_MINIMIZE) 生虎犹可近,熟人不可亲。 寒门出孝子,国破识忠臣。耕牛无宿草,仓鼠有余粮。遍身罗绮者,不是养蚕人。凌霄羽毛轻无力,掷地金石自有声。 你开 3000价
拖延时间 加注册码 源码打死不给,你看现在哪人家软件都是授权的,只给注册码... 忘了欺骗和愚弄 尽力帮助 身边的人吧 即便他做了你不喜欢的事
缘起缘落 静心看待你我他 本是一物本无一物 何必这样对待自己呢? 花掉这么多的精力和时间.就当吸取教训,总结经验了. {:face (394):}
回想我到猪八戒给别人做的一个程序,自动上传指定目录下的视频文件到youku才300..其实我也不知道值不值这么多..关键自己编的高兴就可以....事后请几个朋友一顿就完事的..编这程序花了我两个星期!!!
不过......我没给源码...LZ用一个小程序看透了一个人很划算嘛...下次别和那孙子勾搭了!!! 我想知道后来LZ拿到钱了没有?500吗?坑爹啊,以后注意了 后来在约定的那天没有打钱给我,我就给他下了通谍,然后他第二天打钱给我了:
如果超过2012-12-15 23点,我就当是你不打算给了,权当我吃亏,信错人了。这点钱,谁可以要到,送给谁要去好了。 想过如何报复:
1.发帖批评这种以代码数量定价钱,答应给却少给的。
2.发帖求人批评之,谴责不道德行为,公布qq、银行帐号、电话号码、姓名、照片;
3.发帖,放弃自己追讨,谁可以讨到给谁。 整个事情表面就是如此了,至于后来压价、拖延是否做中介的这个同事搞的还是他的同事那边搞的都不晓得了,反正做中介也挺不好的,搞不好失去了两边的朋友,所以不要随便好心做牵线搭桥的事情。 这个要顶一下~~
页:
[1]