2012-11-03 49 views
0

我編輯了一個名爲TF2idle程序,可以在這裏看到的OS默認動作: http://facepunch.com/showthread.php?t=1161862打開一個URL與Python的

我加入一個按鈕來進行碎片整理的任何正在使用選擇的賬戶他有可用的人的來源。

我在python文件中發現,這是所有魔法發生的地方,也是我需要編輯來添加碎片整理按鈕的地方。

http://pastebin.com/9PjzqU5u

線136 - 142和328-337我加入自己。這些線以下:

startDefragIcon = QtGui.QIcon() 
      startDefragIcon.addPixmap(QtGui.QPixmap(returnResourcePath('images/defrag.png')), QtGui.QIcon.Normal, QtGui.QIcon.Off) 
      self.startDefragAction = self.mainwindow.htoolBar.addAction(startDefragIcon, 'Defrag Accounts') 
      QtCore.QObject.connect(self.startDefragAction, QtCore.SIGNAL('triggered()'), curry(self.startUpAccounts, action='start_Defrag')) 

if action == 'start_Defrag': 
            command = r'"%s/Steam.exe" -login %s %s' % (sandbox_install, username, password) 
            if easy_sandbox_mode == 'yes' and self.settings.get_option('Account-' + account, 'sandbox_install') == '': 
              self.commandthread.addSandbox('TF2Idle' + username) 
              self.createdSandboxes.append(username) 
              command = r'"%s/Start.exe" /box:%s %s' % (sandboxielocation, 'TF2Idle' + username, command) 
            else: 
              command = r'"%s/Start.exe" /box:%s %s' % (sandboxielocation, sandboxname, command) 
            #Right here add script to launch steam://defrag/440 

的方式程序可以進行碎片整理賬目是推出「蒸汽://碎片整理/ 440」,並且會自動執行。舉例來說,我可以在我的谷歌瀏覽器地址欄中輸入地址,它會告訴蒸汽用ID 440(TF2)對程序進行碎片整理。

事情是,我不知道如何將其添加到腳本。我正在考慮添加一個BAT文件,該文件裏面會有「steam:// defrag/440」,並添加一行可以在336行啓動所述BAT文件的線。

我希望這裏有人知道我可以如何做到這一點。

第二個問題是,我不知道如何在完成編輯到.EXE後如何打開所有這些源文件。我知道這對我來說都是先進的,但是如果我想上大學獲得計算機科學,我就要開始學習了,這對於許多使用這個工具的用戶來說確實有幫助。

+2

您需要在此發佈*相關的*代碼,而不是鏈接到其他地方。期望人們離開這個網站,閱讀你的代碼,然後回到這裏回答是不合理的,如果沒有代碼在這裏意味着你的問題是沒有意義的,如果外部網站由於某種原因不可用。這也意味着它無法爲未來的讀者搜索。請編輯和包含*與您遇到的問題相關的部分*。謝謝。 –

+0

構建exe文件:[_ codedescribed](https://github.com/Moussekateer/TF2IdleGUI/blob/master/TF2Idle.spec) – Eric

回答

3

我懷疑你想要的webbrowser module

import webbrowser 
webbrowser.open_new('steam://defrag/440') 
+0

沒想到那麼簡單。我通過IDLE運行它,它完美的工作!謝謝! – user1797293

1

如果你想要做的只是對該地址的請求,python會提供簡單的模塊來處理它。

from httplib2 import Http 
h = Http 
h.request('steam://defrag/440', 'GET') 
+1

對我來說這似乎不太可能奏效,因爲您需要使用平臺配置「蒸汽:」協議方案的處理程序。除非Python比我想象的更具魔力,否則httplib2將不知道該方案。 –

+0

是的,它不。我正在尋找另一種解決方案,否則我會刪除答案。 – Aesthete

+0

我沒有運行Windows;如果你準備測試這個,也許你可以看到我發佈的答案是否有效? –

1

這可能不符合作爲一個答案本身,而是因爲你的問題並沒有真正有資格作爲一個問題提出(:-P)這裏有一些提示:

  • Steam客戶端自己註冊爲steam://協議的URL處理程序。
  • 您應該能夠實現您使用webbrowser模塊建議的工作流程。
  • 您可以在BAT文件中執行任何操作,您可以在Python腳本中執行任何操作。
  • 一般而言,Python腳本不會被編譯(例如爲.exe文件)。也就是說,py2exe它將解釋器,代碼和依賴項封裝到.exe文件包中。

編輯:請參閱埃裏克關於您最後一點的問題的評論。

+0

謝謝,這有助於一個:) – user1797293