ccxw1983 发表于 2012-12-14 00:26:02

分享我的一次写脚本挣外快的不愉快的经历,并总结宝贵经验

本帖最后由 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)

lpxx 发表于 2012-12-14 02:11:46

生虎犹可近,熟人不可亲。 寒门出孝子,国破识忠臣。耕牛无宿草,仓鼠有余粮。遍身罗绮者,不是养蚕人。凌霄羽毛轻无力,掷地金石自有声。

pighead456 发表于 2012-12-14 02:51:36

你开 3000价

拖延时间 加注册码

邪恶海盗 发表于 2012-12-14 11:51:05

源码打死不给,你看现在哪人家软件都是授权的,只给注册码...

魔导 发表于 2012-12-14 23:44:13

忘了欺骗和愚弄    尽力帮助 身边的人吧   即便他做了你不喜欢的事
缘起缘落    静心看待你我他 本是一物本无一物   何必这样对待自己呢?

xx44t10 发表于 2012-12-15 00:08:54

花掉这么多的精力和时间.就当吸取教训,总结经验了.

小凯 发表于 2012-12-15 11:49:46

{:face (394):}
回想我到猪八戒给别人做的一个程序,自动上传指定目录下的视频文件到youku才300..其实我也不知道值不值这么多..关键自己编的高兴就可以....事后请几个朋友一顿就完事的..编这程序花了我两个星期!!!

不过......我没给源码...LZ用一个小程序看透了一个人很划算嘛...下次别和那孙子勾搭了!!!

javarike 发表于 2012-12-16 01:11:34

我想知道后来LZ拿到钱了没有?500吗?坑爹啊,以后注意了

ccxw1983 发表于 2012-12-18 22:17:18

后来在约定的那天没有打钱给我,我就给他下了通谍,然后他第二天打钱给我了:
如果超过2012-12-15 23点,我就当是你不打算给了,权当我吃亏,信错人了。这点钱,谁可以要到,送给谁要去好了。

ccxw1983 发表于 2012-12-18 22:21:12

想过如何报复:
1.发帖批评这种以代码数量定价钱,答应给却少给的。
2.发帖求人批评之,谴责不道德行为,公布qq、银行帐号、电话号码、姓名、照片;
3.发帖,放弃自己追讨,谁可以讨到给谁。

ccxw1983 发表于 2012-12-18 22:28:01

整个事情表面就是如此了,至于后来压价、拖延是否做中介的这个同事搞的还是他的同事那边搞的都不晓得了,反正做中介也挺不好的,搞不好失去了两边的朋友,所以不要随便好心做牵线搭桥的事情。

jtzxgfy 发表于 2012-12-19 22:07:38

这个要顶一下~~
页: [1]
查看完整版本: 分享我的一次写脚本挣外快的不愉快的经历,并总结宝贵经验