【備忘録】ちょっとしたメモ書き【備忘録】

自分でやったこと調べてみた事とのメモ書きブログです
主に周辺機器の翻訳した取り説や故障修理の手順を記録しています。

マウスアクション1(定期的にマウスを特定座標に動かす)

2023年05月31日 | python?

import time
import ctypes
import threading
import msvcrt

# マウスカーソルの移動を実行する関数
def move_mouse(x, y):
    ctypes.windll.user32.SetCursorPos(x, y)

# 実行中の表示と終了のためのキーを表示する関数
def show_status():
    print("マウスイベント実行中です。終了するには Ctl+Cキーで中断して'Q'キーを押してください。")

# キーボード入力を待機して終了する関数
def wait_for_exit():
    while True:
        if msvcrt.kbhit() and msvcrt.getwch() == 'q':
            break

# メインの処理
thread = threading.Thread(target=wait_for_exit)
thread.start()

while thread.is_alive():
    # マウスカーソルの移動先の座標を指定してください
    x = 200
    y = 200
    move_mouse(x, y)
    show_status()
    time.sleep(1 * 60)

print("プログラムを終了します。")

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

とりあえず時間が表示されるもの

2023年05月29日 | python?

 

from tkinter import *

from datetime import datetime

import time

c = Canvas(width = 700, height = 300, background = '#00ffff')

c.pack()

try:

    while True:

        now = datetime.now()

        s = '{0:0>2d}:{1:0>2d}:{2:0>2d}'.format(now.hour, now.minute, now.second)

        c.create_rectangle(0, 0, 700, 300, outline = '#808080', fill = '#808080')

        c.create_text(350, 150, text = s, font = ('Comic Sans MS', 100), fill = 'yellow')

        c.update()

        time.sleep(0.1)

except:

    pass

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ちょっとしたランチャー

2023年05月29日 | python?

#-------------------------------------------------------------------------------------------------------

#つみれランチャー デスクトップを清掃するためにツール群をランチャー化します

#後日装備で自動化の判定表示を組み込む予定です

#拡張子.pyにするとコンソール表示 拡張子pywに変更するとコンソール非表示 運用時は消す

#-------------------------------------------------------------------------------------------------------

#標準GUIライブラリをインポート tkinter as tkフォーム関連 subprocessアプリケーション実行制御ライブラリ

import tkinter as tk

import subprocess

#フォーム定義 単純にフォームを作成する 3行目がサイズ-----------------------------------------------------

root = tk.Tk()

root.title("操作パレット")

root.geometry("400x200")

 

#--------------------------------------------------------------------------------------------------------

#ボタン押したときの実処理

#--------------------------------------------------------------------------------------------------------

#ボタンに設定する,ボタン押すとコンソール上にプリントアウトされるユーザー操作がわかるようにテキストボックス出力される

#ボタン1つ目の処理

def push1():

  print("push1")

#一行テキストボックスにも反映(確認表示

  textBox.delete(0, tk.END)

  textBox.insert(tk.END,"そのまま生起動")

#単純に起動する処理枠外のrは削除するとめんどーだから消さないで

  subprocess.Popen(r"C:\Users\Evernote.exe")

#ボタン二つ目の処理

def push2():

  print("push2")

  textBox.delete(0, tk.END)

  textBox.insert(tk.END,"ログインマクロ発動!!")

#単純に起動する処理ファイルも開きたいときの書き方

  subprocess.Popen([r"C:\Program Files (x86)\teraterm\ttpmacro.exe",r"C:\Users\Desktop\簡易ログイン.TTL"])

#ボタン3つ目の処理

def push3():

  print("push3")

  textBox.delete(0, tk.END)

  textBox.insert(tk.END,"短縮発動")

#単純に起動する処理 WINコマンドプロンプト活用版 端末でファイルの関連付けが終わってるの前提、DOSのstartコマンドで起動

  KANILOGIN = r'C:\Users\Desktop\簡易ログイン.TTL'

  subprocess.Popen(['start', KANILOGIN], shell=True)

#ボタン4つ目の処理

def push5():

  print("push5")

  textBox.delete(0, tk.END)

  textBox.insert(tk.END,"pyスクリプト")

 

#同じ流れで増設は可能 

#-----------------------------------------------------

#終了処理 ボタンを押したら終了して閉じる処理  sysライブラリで制御 例外処理未実装なので出力はとってない

#-----------------------------------------------------

import sys

def push4():

  print("終了します")

  textBox.delete(0, tk.END)

  textBox.insert(tk.END,"終了します")

  sys.exit() 

#----------------------------------------------------------------------------------------------------------

#表示に関する処理主にボタン類

#----------------------------------------------------------------------------------------------------------

#ボタン表示を定義 comanandで機能で定義した物を呼び出す、ボタンを押すと文字列が表示される仕組み

btn1 = tk.Button(root, text="Evノート開いてみた", width="20", command=push1)

btn1.place(x=10, y=10)

btn2 = tk.Button(root, text="簡易ログイン", width="20", command=push2)

btn2.place(x=10, y=40)

btn3 = tk.Button(root, text="短縮発動ログイン", width="20", command=push3)

btn3.place(x=10, y=70)

btn5 = tk.Button(root, text="pyスクリプト", width="20", command=push5)

btn5.place(x=10, y=100)

#終了ボタンををフォームに定義---------------------------------------------------------------------

btn4 = tk.Button(root, text="人生終了", width="10", command=push4)

btn4.place(x=310, y=70)

#一行テキストボックスをフォームに定義---------------------------------------------------------------------

textBox = tk.Entry(root)

textBox.place(x=200, y=10)

# ウィジェット作成ラベル表記方法-------------------------------------------------------------------------

import tkinter

lbl = tkinter.Label(text='実行')

lbl.place(x=165, y=10)

#---------------------------------------------------------------------------------------------------------

root.mainloop()

#---------------------------------------------------------------------------------------------------------

#↓機能追加用メモ↓

#subprocess.Popen([‘explorer‘, フォルダ])を開きたいときの用例   プログラムファイルにexplorerを指定しフォルダパス

#EXCEL = r'C:\Users\Dropbox\desktop\Book1.xlsm'

#FOLDER = r'C:\Users\Dropbox\desktop'

#import subprocess

#subprocess.Popen(['start', EXCEL], shell=True)

#subprocess.Popen(['explorer', FOLDER])みたいな感じで作るとよい

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

タイムスケジューラーを使うとBATが起動しない、しかし手動で叩くと動く場合の対処

2023年05月29日 | 趣味レベル簡単プログラム系

 

対策案1

cd %~dp0 

BATの先頭にカレントへの移動を記述する callで呼びだしているときの失敗はこれが多い

 

対策案その2

BAT中のパス指定を絶対パスに変更する(保守めんどくせー)

 

対策案その3

タスクスケジューラの開始オプションに対象のデレクトリパスを記入する(これで対策案1と同等の効果)

 

 

 

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PowerShellで特定のIPの死活監視をする

2023年05月29日 | Windows PowerShell

簡単ですがコードはこんな感じです。

$hostAD = Read-Host "監視するホストのIPアドレスを入力してください,
終了させるにはQボタンを押してください"
$ping = New-Object System.Net.NetworkInformation.Ping
$timeout = 1000
while ($true) {
  $result = $ping.Send($hostAD, $timeout)
  if ($result.Status -eq "Success") {
    Write-Host "Ping succeeded"
  } else {
    Write-Host "Ping failed"
  }
  if ([System.Console]::KeyAvailable) {
    $key = [System.Console]::ReadKey($true)
    if ($key.Key -eq "Q") {
      break
    }
  }
  Start-Sleep -Seconds 6
}

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする